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);  }  | 
