| 932 | } |
| 933 | |
| 934 | void ReflectionProbe::_onRenderViz(ObjectRenderInst *ri, |
| 935 | SceneRenderState *state, |
| 936 | BaseMatInstance *overrideMat) |
| 937 | { |
| 938 | if (!RenderProbeMgr::smRenderReflectionProbes) |
| 939 | return; |
| 940 | |
| 941 | GFXDrawUtil *draw = GFX->getDrawUtil(); |
| 942 | |
| 943 | GFXStateBlockDesc desc; |
| 944 | desc.setZReadWrite(true, false); |
| 945 | desc.setCullMode(GFXCullNone); |
| 946 | desc.setBlend(true); |
| 947 | //desc.fillMode = GFXFillWireframe; |
| 948 | |
| 949 | // Base the sphere color on the light color. |
| 950 | ColorI color = ColorI(255, 0, 255, 63); |
| 951 | |
| 952 | const MatrixF worldToObjectXfm = mObjToWorld; |
| 953 | if (mProbeShapeType == ProbeInfo::Sphere) |
| 954 | { |
| 955 | draw->drawSphere(desc, mRadius, getPosition(), color); |
| 956 | } |
| 957 | else |
| 958 | { |
| 959 | Point3F tscl = worldToObjectXfm.getScale(); |
| 960 | |
| 961 | Box3F projCube(-mObjScale/2, mObjScale / 2); |
| 962 | projCube.setCenter(getPosition()); |
| 963 | draw->drawCube(desc, projCube, color, &worldToObjectXfm); |
| 964 | } |
| 965 | |
| 966 | Point3F renderPos = getRenderTransform().getPosition(); |
| 967 | |
| 968 | Box3F refCube = Box3F(-mProbeRefScale / 2, mProbeRefScale / 2); |
| 969 | refCube.setCenter(renderPos + mProbeRefOffset); |
| 970 | color = ColorI(0, 255, 255, 63); |
| 971 | draw->drawCube(desc, refCube, color, &worldToObjectXfm); |
| 972 | } |
| 973 | |
| 974 | void ReflectionProbe::setPreviewMatParameters(SceneRenderState* renderState, BaseMatInstance* mat) |
| 975 | { |
nothing calls this directly
no test coverage detected