ReadonlynameHuman-readable identifier used in graph node labels and error messages.
StaticcreateUpload per-cascade cull + draw uniforms for this frame's cascades.
Upload per-light-view cull + draw uniforms (one entry per viewProjs). Each
view is frustum-only (cone off, near plane skipped), LOD off (a DAG draws
LOD 0). Call before addCullPasses / addToGraph / drawView.
Add one compute cull pass per prepared view; returns the per-view
visible-cluster list + indirect-args handles (for an external depth draw, e.g.
into the VSM clipmap scratch). Order any consuming render pass after these via
b.read(visibleList,'storage-read') + b.read(drawArgs,'indirect').
OptionalpageTable: ResourceHandleIssue the depth-only cluster drawIndirect for one view into the CURRENT
render pass (sets its own pipeline + bind group). For injecting cluster depth
into an external depth target — e.g. the VSM clipmap scratch.
CSM / non-virtual-clipmap path: cull per view + draw depth into each shadow-map layer.
Release every long-lived GPU resource owned by the pass (pipelines, persistent uniform buffers, samplers, BGLs). Called by the factory or application during teardown. Default implementation is a no-op.
Renders a ClusteredMesh into a directional shadow map's cascades — one compute cull (frustum only; cone culling OFF and the near plane skipped, since back-facing / in-front casters still shadow) + one depth-only vertex-pulling
drawIndirectper cascade, loading into each layer. Lets clustered geometry cast CSM shadows alongside regular meshes.Self-contained (owns its cull + depth pipelines and per-cascade uniform/counter buffers); drives a DAG mesh at LOD 0 (full-res) for stable shadows.