account for fov change (also, internal docs)

This commit is contained in:
Azaezel 2016-11-29 15:57:41 -06:00
parent 01419d7935
commit 55b26be9ba
2 changed files with 5 additions and 2 deletions

View file

@ -228,12 +228,14 @@ void ShadowMapPass::render( SceneManager *sceneManager,
//force an update if we're jumping around (respawning, ect)
MatrixF curCamMatrix = control->getTransform();
if (((curCamMatrix.getPosition() - mPrevCamPos).lenSquared() > mPow(smShadowsTeleportDist, 2)) ||
((curCamMatrix.getForwardVector() - mPrevCamRot).lenSquared() > mPow(smShadowsTurnRate*M_PI_F / 180, 2)))
if (((curCamMatrix.getPosition() - mPrevCamPos).lenSquared() > mPow(smShadowsTeleportDist, 2)) || //update if we're teleporting
((curCamMatrix.getForwardVector() - mPrevCamRot).lenSquared() > mPow(smShadowsTurnRate*M_PI_F / 180, 2)) || //update if we're turning too fast
(control->getCameraFov()) != mPrevCamFov) //update if we're zooming or unzooming
forceUpdate = true;
mPrevCamRot = curCamMatrix.getForwardVector();
mPrevCamPos = curCamMatrix.getPosition();
mPrevCamFov = control->getCameraFov();
// 2 Shadow Maps per Light. This may fail.
for ( U32 i = 0; i < shadowMaps.size(); i += 2 )

View file

@ -114,6 +114,7 @@ private:
ShadowMapManager* mShadowManager;
Point3F mPrevCamPos;
Point3F mPrevCamRot;
F32 mPrevCamFov;
};
class ShadowRenderPassManager : public RenderPassManager