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

    Module rendering/materials/gsplat/material-tsl

    TSL / NodeMaterial counterpart to GSplatMaterial.

    Mirrors the GLSL GSplatMaterial wrapper one-for-one — same constructor signature (GSplatMaterialConfig), same update methods (opacity / gamma / intensity / offset / truncationRadius / maxExtentFactor / colormapTexture / scalarRange), same applyBlendingMode + clone semantics, same CameraAwareMaterial / ColormapAwareMaterial interfaces.

    GSplat-specific behaviours:

    • applyBlendingMode selects the projection model: PEAK (2D-projected) for surface modes (max/normal/opaque — usesPeakProjection), SUM (ray-integral) for emissive (additive/luminous/volumetric). In TSL the graph JS-branches on the mode at build time; the uProjectionMode uniform is decorative (clone/telemetry parity). The GLSL twin drives the same split via the uniform.
    • Blending state is fully unified with the GLSL wrapper: the shared getCompleteBlendingState for additive / luminous / max / opaque (AdditiveBlending's SrcAlpha factor is identity under the shader's alpha = 1.0 contract) and getGSplatNormalBlendingState for normal (premultiplied coverage alpha). No separate alpha-channel blend state anywhere — it trips gl.getError() under the WebGPU→WebGL2 bridge, and its historical overflow-guard purpose is now handled by the raw-scene-hdr capture sanitization.

    Mechanics identical to PointTSLMaterial for the uniforms-by-reference binding pattern.

    GSplatTSLMaterial