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 One Copyright Update to rule them all 2023-01-10 15:26:54 +01:00
rasterizer.cpp Fix Polygon2D skinned bounds (for culling) 2023-04-12 10:17:02 +01:00
rasterizer.h CPUParticles2D - fix interpolated transforms and culling 2023-08-22 12:57:54 +01:00
SCsub Portal occlusion culling 2021-07-14 11:43:23 +01:00
shader_language.cpp One Copyright Update to rule them all 2023-01-10 15:26:54 +01:00
shader_language.h One Copyright Update to rule them all 2023-01-10 15:26:54 +01:00
shader_types.cpp One Copyright Update to rule them all 2023-01-10 15:26:54 +01:00
shader_types.h One Copyright Update to rule them all 2023-01-10 15:26:54 +01:00
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 MultiRect - Fix flushing in TextEdit 2023-07-15 14:02:21 +01:00
visual_server_canvas_helper.h MultiRect - Fix flushing in TextEdit 2023-07-15 14:02:21 +01:00
visual_server_constants.h Canvas item hierarchical culling 2023-04-25 20:17:33 +01:00
visual_server_globals.cpp One Copyright Update to rule them all 2023-01-10 15:26:54 +01:00
visual_server_globals.h One Copyright Update to rule them all 2023-01-10 15:26:54 +01:00
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 2D Fixed Timestep Interpolation 2023-08-01 16:07:48 +01:00
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 2D Fixed Timestep Interpolation 2023-08-01 16:07:48 +01:00
visual_server_viewport.h One Copyright Update to rule them all 2023-01-10 15:26:54 +01:00
visual_server_wrap_mt.cpp 2D Fixed Timestep Interpolation 2023-08-01 16:07:48 +01:00
visual_server_wrap_mt.h CPUParticles2D - fix interpolated transforms and culling 2023-08-22 12:57:54 +01:00