Luxar Viewer API Documentation - v2026.10.19
    Preparing search index...

    Module rendering/materials/gsplat/projection-glsl

    GLSL gsplat projection — ONE source for the visual vertex stage (./shader-glsl.ts) and the pick vertex stage (picking/gsplat/shaders.ts), so the two cannot place, size or cull a splat differently: the camera-space covariance, the screen-coverage fade, the projected 2D covariance (general projection Jacobian), the sum projection's ray sigma, the Σ_2D eigen-axes and the max-extent-clamped quad extents. TSL twins: the gsplat*TSL builders in ./shader-tsl.ts. CPU mirror of the projection terms: ../_shared/projection-math.ts.

    The 2D Cholesky of Σ_2D is NOT here on purpose: the visual one sanitizes and floors at 1e-6 (a fragment-stage falloff must never see NaN), the pick one keeps its historical 1e-8 floors; sharing it would move pick footprints.

    REQUIRED GLOBALS — include AFTER them (GLSL resolves names top-down): uResolution, uMaxExtentFactor, modelViewMatrix, projectionMatrix, luxarProjectionSizeScale() (GLSL_PROJECTION_FUNCTIONS) and isInvalidFloat (GLSL_SANITIZE_FUNCTIONS).

    GLSL_GSPLAT_PROJECTION