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

    Pre-created TSL leaf nodes supplied by a wrapper class. Same pattern as LineTSLNodes / PointPickTSLNodes: consumers own the UniformNodes and the factory references them directly, which avoids the .onUpdate('render') callback bridge that the old uniform-record-based path used. Mutations on the wrapper's material.uniforms.X.value (proxied via proxyIUniform) land directly on node.value.

    Keys match the public PointMaterial.uniforms names (uOpacity / uInvGamma were historically the un-prefixed opacity / invGamma; renamed for three-geometry naming symmetry) so the wrapper proxy table maps 1:1.

    Colormap nodes are optional and bound only when the consumer is built with config.useColormap === true. The factory throws if the config says yes but the colormap nodes are missing.

    The colormap AND point texture nodes are factory-time bound (TSL texture(...) captures the THREE.Texture at call time); the wrapper rebuilds the graph when either texture's identity changes (see setColormapTexture / updatePointTexture in the wrapper).

    interface PointTSLNodes {
        uPointTex: any;
        maxPointSize: any;
        radiusScale: any;
        uSortedIndexSlot: any;
        uDensityDrop: any;
        uGlassPartition: any;
        uGlassDepth: any;
        uNearCull: any;
        uPixelRatio: any;
        uResolution: any;
        uOpacity: any;
        uInvGamma: any;
        uIntensity: any;
        uOffset: any;
        uAbsorption: any;
        uHasElementAlpha: any;
        uColormapTex?: any;
        uScalarMin?: any;
        uScalarScale?: any;
    }
    Index
    uPointTex: any

    Point data texture node (RGBA32F, 3 texels/point). Every point material has one; the pool commit rebinds it per node via updatePointTexture.

    maxPointSize: any
    radiusScale: any
    uSortedIndexSlot: any

    Active ordering buffer: 0 = aSortedIndex, 1 = aSortedIndexB.

    uDensityDrop: any
    uGlassPartition: any

    Refraction split (glass-partition-tsl.ts): mode + shared glass depth texture.

    uGlassDepth: any
    uNearCull: any
    uPixelRatio: any
    uResolution: any
    uOpacity: any
    uInvGamma: any
    uIntensity: any
    uOffset: any
    uAbsorption: any

    κ — composed node absorption (volumetric mode). Read only when the graph was built with blendingMode: 'volumetric'; a plain runtime uniform otherwise (mirrors the gsplat factory).

    uHasElementAlpha: any

    1.0 when the committed colors carry a real alpha column (RGBA), 0 otherwise. Gates ONLY the volumetric w(a) optical-depth map — the identity alpha 1.0 written for RGB data must not map to w ≈ 6.24. Deliberately a uniform, not a config flag: toggling it never rebuilds the graph.

    uColormapTex?: any

    Set only when colormap mode is active.

    uScalarMin?: any
    uScalarScale?: any