diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-03-10 02:12:16 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-03-11 01:13:59 +0000 |
commit | 194148abd9ab89a5a514a37b7717b7c4de6aa758 (patch) | |
tree | 5163df40e57c4c55b4a6035e699572bd55b0d7cf /gfx/gl/shadowMapper.cpp | |
parent | Simplify ShadowMapper with AxisAlignedBoundingBox (diff) | |
download | ilt-194148abd9ab89a5a514a37b7717b7c4de6aa758.tar.bz2 ilt-194148abd9ab89a5a514a37b7717b7c4de6aa758.tar.xz ilt-194148abd9ab89a5a514a37b7717b7c4de6aa758.zip |
Pass a Frustum to shadow renderers
The frustum might not be correct at this stage.
Diffstat (limited to 'gfx/gl/shadowMapper.cpp')
-rw-r--r-- | gfx/gl/shadowMapper.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/gfx/gl/shadowMapper.cpp b/gfx/gl/shadowMapper.cpp index 231f203..dc461e0 100644 --- a/gfx/gl/shadowMapper.cpp +++ b/gfx/gl/shadowMapper.cpp @@ -118,7 +118,14 @@ ShadowMapper::update(const SceneProvider & scene, const LightDirection & dir, co &landmess, &dynamicPoint, &dynamicPointInst, &dynamicPointInstWithTextures, &stencilShadowProgram}) { p->setView(out, sizes, lightViewPoint); } - scene.shadows(*this); + ExtentsBoundingBox extents; + for (const auto & point : bandViewExtents.back()) { + extents += point; + } + const auto lightProjection + = glm::ortho(extents.min.x, extents.max.x, extents.min.y, extents.max.y, -extents.max.z, -extents.min.z); + Frustum frustum {lightViewPoint, lightViewDir, lightProjection}; + scene.shadows(*this, frustum); glCullFace(GL_BACK); |