mirror of
https://github.com/overte-org/overte.git
synced 2025-04-20 03:44:02 +02:00
Use near/far in LightStage setFrustum
This commit is contained in:
parent
710fb5df53
commit
e914f02445
2 changed files with 5 additions and 5 deletions
|
@ -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 };
|
||||
|
|
|
@ -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<ViewFrustum> getFrustum() const { return _frustum; }
|
||||
const glm::mat4& getProjection() const { return _projection; }
|
||||
|
|
Loading…
Reference in a new issue