diff --git a/Components/PlanarReflections/src/OgrePlanarReflections.cpp b/Components/PlanarReflections/src/OgrePlanarReflections.cpp index 1f06c4b0f88..1f256a381bc 100644 --- a/Components/PlanarReflections/src/OgrePlanarReflections.cpp +++ b/Components/PlanarReflections/src/OgrePlanarReflections.cpp @@ -887,8 +887,11 @@ namespace Ogre memset( passBufferPtr, 0, (mMaxActiveActors - mActiveActors.size()) * 4u * sizeof(float) ); passBufferPtr += (mMaxActiveActors - mActiveActors.size()) * 4u; - Matrix4 reflProjMat = PROJECTIONCLIPSPACE2DTOIMAGESPACE_PERSPECTIVE * projectionMatrix; - for( size_t i=0; i<16; ++i ) + // We call getProjectionMatrixWithRSDepth directly because + // it must NOT account for requiresTextureFlipping. + Matrix4 reflProjMat = + PROJECTIONCLIPSPACE2DTOIMAGESPACE_PERSPECTIVE * camera->getProjectionMatrixWithRSDepth(); + for( size_t i = 0; i < 16; ++i ) *passBufferPtr++ = (float)reflProjMat[0][i]; *passBufferPtr++ = static_cast( mInvMaxDistance );