diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-03-11 00:56:37 +0000 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-03-11 01:13:59 +0000 |
commit | b992bc4902feb22666407067ece3fb4acbcb8d6a (patch) | |
tree | dc0b35623d439c0bb4d84a4c26a68e403520d9c1 /game | |
parent | Add a spike of terrain in test-render (diff) | |
download | ilt-b992bc4902feb22666407067ece3fb4acbcb8d6a.tar.bz2 ilt-b992bc4902feb22666407067ece3fb4acbcb8d6a.tar.xz ilt-b992bc4902feb22666407067ece3fb4acbcb8d6a.zip |
Cull terrain meshes from render that don't cast a shadow into the frustum
Diffstat (limited to 'game')
-rw-r--r-- | game/terrain.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/game/terrain.cpp b/game/terrain.cpp index e9e9463..d3c1d1a 100644 --- a/game/terrain.cpp +++ b/game/terrain.cpp @@ -128,12 +128,14 @@ Terrain::render(const SceneShader & shader, const Frustum & frustum) const } void -Terrain::shadows(const ShadowMapper & shadowMapper, const Frustum &) const +Terrain::shadows(const ShadowMapper & shadowMapper, const Frustum & frustum) const { shadowMapper.landmess.use(); for (const auto & [surface, sab] : meshes) { - glBindVertexArray(sab.vertexArray); - glDrawElements(GL_TRIANGLES, sab.count, GL_UNSIGNED_INT, nullptr); + if (frustum.shadedBy(sab.aabb)) { + glBindVertexArray(sab.vertexArray); + glDrawElements(GL_TRIANGLES, sab.count, GL_UNSIGNED_INT, nullptr); + } } glBindVertexArray(0); } |