virtualx-engine/servers/visual
lawnjelly 8ca631a466 Shadow volume culling and tighter shadow caster culling
Existing shadow caster culling using the BVH takes no account of the camera. This PR adds the highly encapsulated class VisualServerLightCuller which can cut down the casters in the shadow volume to only those which can cast shadows on the camera frustum.

This is used to:
* More accurately defer dirty updates to shadows when the shadow volume does not intersect the camera frustum.
* Tighter cull shadow casters to the view frustum.

Lights dirty state is now automatically managed:
* Continuous (tighter caster culling)
* Static (all casters are rendered)
2023-11-14 14:17:57 +00:00
..
portals
rasterizer.cpp
rasterizer.h CPUParticles2D - fix interpolated transforms and culling 2023-08-22 12:57:54 +01:00
SCsub
shader_language.cpp
shader_language.h
shader_types.cpp
shader_types.h
visual_server_canvas.cpp CPUParticles2D - fix interpolated transforms and culling 2023-08-22 12:57:54 +01:00
visual_server_canvas.h CPUParticles2D - fix interpolated transforms and culling 2023-08-22 12:57:54 +01:00
visual_server_canvas_helper.cpp
visual_server_canvas_helper.h
visual_server_constants.h
visual_server_globals.cpp
visual_server_globals.h
visual_server_light_culler.cpp Shadow volume culling and tighter shadow caster culling 2023-11-14 14:17:57 +00:00
visual_server_light_culler.h Shadow volume culling and tighter shadow caster culling 2023-11-14 14:17:57 +00:00
visual_server_raster.cpp
visual_server_raster.h CPUParticles2D - fix interpolated transforms and culling 2023-08-22 12:57:54 +01:00
visual_server_scene.cpp Shadow volume culling and tighter shadow caster culling 2023-11-14 14:17:57 +00:00
visual_server_scene.h Shadow volume culling and tighter shadow caster culling 2023-11-14 14:17:57 +00:00
visual_server_viewport.cpp
visual_server_viewport.h
visual_server_wrap_mt.cpp
visual_server_wrap_mt.h CPUParticles2D - fix interpolated transforms and culling 2023-08-22 12:57:54 +01:00