From ab264cdca7cfb9b47a7ff1f28cd843aab0eda96f Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Thu, 22 Dec 2022 20:56:28 +0000 Subject: No need for the range hack, the shadow box is just centred around the origin --- gfx/gl/shadowMapper.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'gfx/gl') diff --git a/gfx/gl/shadowMapper.cpp b/gfx/gl/shadowMapper.cpp index 65c77c5..5691de9 100644 --- a/gfx/gl/shadowMapper.cpp +++ b/gfx/gl/shadowMapper.cpp @@ -36,8 +36,6 @@ ShadowMapper::ShadowMapper(const glm::ivec2 & s) : size {s} glm::mat4x4 ShadowMapper::update(const SceneProvider & scene, const glm::vec3 & dir, const Camera & camera) const { - constexpr auto BACK_OFF = 3600.f; - const glm::vec3 range = glm::normalize(dir) * BACK_OFF; auto viewExtents = camera.extentsAtDist(1) + camera.extentsAtDist(1000); const auto extents_minmax = [&viewExtents](auto && comp) { const auto mm = std::minmax_element(viewExtents.begin(), viewExtents.end(), comp); @@ -48,7 +46,7 @@ ShadowMapper::update(const SceneProvider & scene, const glm::vec3 & dir, const C return glm::vec3 {midpoint(x), midpoint(y), midpoint(z)}; }(extents_minmax(CompareBy {0}), extents_minmax(CompareBy {1}), extents_minmax(CompareBy {2})); - const auto lightView = glm::lookAt(centre, centre + range, up); + const auto lightView = glm::lookAt(centre, centre + dir, up); for (auto & e : viewExtents) { e = lightView * glm::vec4(e, 1); } -- cgit v1.2.3