From e914f024450c817adf9b2eb29b6b76dd40a4ccec Mon Sep 17 00:00:00 2001 From: Zach Pomerantz Date: Fri, 15 Jan 2016 10:28:52 -0800 Subject: [PATCH] Use near/far in LightStage setFrustum --- libraries/render-utils/src/LightStage.cpp | 8 ++++---- libraries/render-utils/src/LightStage.h | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/libraries/render-utils/src/LightStage.cpp b/libraries/render-utils/src/LightStage.cpp index d2b76a279a..0ff83ca93e 100644 --- a/libraries/render-utils/src/LightStage.cpp +++ b/libraries/render-utils/src/LightStage.cpp @@ -18,7 +18,7 @@ LightStage::Shadow::Shadow(model::LightPointer light) : _light{ light}, _frustum map = framebuffer->getDepthStencilBuffer(); } -void LightStage::Shadow::setKeylightFrustum(ViewFrustum* viewFrustum, float zBack, float zFront) { +void LightStage::Shadow::setKeylightFrustum(ViewFrustum* viewFrustum, float near, float far) { // Orient the keylight frustum const auto& direction = glm::normalize(_light->getDirection()); glm::quat orientation; @@ -32,7 +32,7 @@ void LightStage::Shadow::setKeylightFrustum(ViewFrustum* viewFrustum, float zBac _frustum->setOrientation(orientation); // Position the keylight frustum - _frustum->setPosition(viewFrustum->getPosition() - 21.0f * direction); + _frustum->setPosition(viewFrustum->getPosition() - (glm::abs(near) + glm::abs(far))*direction); _view = _frustum->getView(); const Transform viewInverse{ _view.getInverseMatrix() }; @@ -40,8 +40,8 @@ void LightStage::Shadow::setKeylightFrustum(ViewFrustum* viewFrustum, float zBac viewFrustum->calculate(); //const auto nearCorners = viewFrustum->getCorners(0); const auto nearClip = viewFrustum->getNearClip(); - const auto nearCorners = viewFrustum->getCorners(nearClip - 1); - const auto farCorners = viewFrustum->getCorners(nearClip + 20); + const auto nearCorners = viewFrustum->getCorners(near); + const auto farCorners = viewFrustum->getCorners(far); vec3 min{ viewInverse.transform(nearCorners.bottomLeft) }; vec3 max{ min }; diff --git a/libraries/render-utils/src/LightStage.h b/libraries/render-utils/src/LightStage.h index 28ffd2ca0f..d95f82230d 100644 --- a/libraries/render-utils/src/LightStage.h +++ b/libraries/render-utils/src/LightStage.h @@ -27,7 +27,7 @@ public: Shadow(model::LightPointer light); - void setKeylightFrustum(ViewFrustum* viewFrustum, float zBack, float zFront); + void setKeylightFrustum(ViewFrustum* viewFrustum, float near, float far); const std::shared_ptr getFrustum() const { return _frustum; } const glm::mat4& getProjection() const { return _projection; }