From 3d082505f7ca720bd34b1311a2ae7bca5e20a5f0 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Tue, 4 Mar 2025 20:15:43 +0000 Subject: Have Camera keep an array of frustum plane definitions Based on code from https://ktstephano.github.io/rendering/stratusgfx/aabbs --- gfx/gl/camera.cpp | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'gfx/gl/camera.cpp') diff --git a/gfx/gl/camera.cpp b/gfx/gl/camera.cpp index f03e85b..9e165fa 100644 --- a/gfx/gl/camera.cpp +++ b/gfx/gl/camera.cpp @@ -29,6 +29,11 @@ Camera::updateView() view = glm::lookAt({}, forward, up); viewProjection = projection * view; inverseViewProjection = glm::inverse(viewProjection); + static constexpr auto PLANES = std::array {0, 1, 2} * std::array {1.F, -1.F}; + std::ranges::transform(PLANES, frustumPlanes.begin(), [vpt = glm::transpose(viewProjection)](const auto & idxs) { + const auto [idx, sgn] = idxs; + return vpt[3] + (vpt[idx] * sgn); + }); } Direction3D -- cgit v1.2.3