simvx.graphics.renderer.shadow_pass

Cascaded Shadow Map (CSM) rendering pass.

Module Contents

Classes

ShadowPass

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.