simvx.graphics.renderer.shadow_pass¶
Cascaded Shadow Map (CSM) rendering pass.
Module Contents¶
Classes¶
Renders depth from directional light’s POV into a cascaded shadow map atlas. |
Data¶
API¶
- simvx.graphics.renderer.shadow_pass.__all__¶
[‘ShadowPass’]
- simvx.graphics.renderer.shadow_pass.log¶
‘getLogger(…)’
- simvx.graphics.renderer.shadow_pass.CASCADE_COUNT¶
3
- simvx.graphics.renderer.shadow_pass.SHADOW_MAP_SIZE¶
2048
- simvx.graphics.renderer.shadow_pass.DEPTH_FORMAT¶
None
- class simvx.graphics.renderer.shadow_pass.ShadowPass(engine: Any)¶
Renders depth from directional light’s POV into a cascaded shadow map atlas.
Atlas layout: CASCADE_COUNT images side-by-side horizontally. Total size: SHADOW_MAP_SIZE * CASCADE_COUNT × SHADOW_MAP_SIZE.
Initialization
- setup(ssbo_layout: Any) None¶
Initialize shadow map resources.
- property shadow_texture_index: int¶
Bindless index of the shadow map atlas texture.
- compute_cascades(view: numpy.ndarray, proj: numpy.ndarray, light_dir: numpy.ndarray, near: float = 0.0, far: float = 0.0) None¶
Compute cascade split distances and light-space VP matrices.
Uses practical split scheme (logarithmic + linear blend). If near/far are 0, they are extracted from the projection matrix.
- render(cmd: Any, instances: list, ssbo_set: Any, mesh_registry: Any) None¶
Record shadow depth rendering commands.
- cleanup() None¶
Release all GPU resources.