GSplat material TSL factory — NodeMaterial counterpart to the
GLSL3 shaders in shader-glsl.ts.
Renders each Gaussian splat as an oriented quad in screen space.
Per-vertex aQuadCorner (±1) scaled by the 2D covariance eigen-
vectors gives an axis-aligned bounding quad of the Gaussian's
truncation extent.
Per-splat data comes from the RGBA32F splat texture (uSplatTex,
4 texels/splat — layout in rendering/element-texture-layout.ts),
fetched in the vertex stage via textureLoad and indexed by the
ordering attributes (double-buffered pair):
aSortedIndex (uint) — draw-slot → storage-slot mapping
(identity in Phase 1; the sort worker permutes it in Phase 2+)
Vertex pipeline:
0. Fetch center/cholesky/amplitude/color from the splat texture.
Project centre to camera space.
Reject splats behind camera (gl_Position = -2 NDC).
Rotate 3D Cholesky to camera space; Σ_cam = L_cam·L_camᵀ.
GSplat material TSL factory — NodeMaterial counterpart to the GLSL3 shaders in
shader-glsl.ts.Renders each Gaussian splat as an oriented quad in screen space. Per-vertex
aQuadCorner(±1) scaled by the 2D covariance eigen- vectors gives an axis-aligned bounding quad of the Gaussian's truncation extent.Per-splat data comes from the RGBA32F splat texture (
uSplatTex, 4 texels/splat — layout inrendering/element-texture-layout.ts), fetched in the vertex stage viatextureLoadand indexed by the ordering attributes (double-buffered pair):Vertex pipeline: 0. Fetch center/cholesky/amplitude/color from the splat texture.
Fragment pipeline: