Führt diesen Pass aus.
Der ausführende WebGL-Renderer (WebGL1 oder WebGL2).
View-Projection Matrix.
Kamera-Position.
Die extrahierten Lichter der Szene.
Kamera-Near-Plane.
Kamera-Far-Plane.
OptionalprojMatrix: Float32Array<ArrayBufferLike>
Die rohe (nicht mit der View kombinierte) Projektionsmatrix dieses Frames --
explizit statt über ein public Renderer-Feld, s. WebGLClusterCullPass.
CPU-side clustered light culling for WebGL2 (fixed-capacity-per-cluster, no atomics -- see docs/adr/0007-clustered-lighting-webgl2-webgpu-only.md). For each of the (up to 16) point/spot lights, computes its screen-space + radial-distance coverage range via
lightClusterCoverage()-- the same formulacluster_cull.wgsluses on WebGPU -- and only visits the cluster cells within that range, instead of testing every cell against every light.Only WebGL2 has clustered lighting -- the
renderer instanceof WebGL2Rendererguard below is real, not decorative: this pass is typed against the sharedAbstractWebGLRendererinterface (soWebGL1Renderer.addPass()would reject it at the type level if ever attempted by mistake, unlike the previousexecute(renderer: WebGL2Renderer, ...)signature, which TypeScript's method-parameter bivariance let slide silently).