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

    Pick materials with a switchable depth convention (both gsplat pick wrappers implement it; points/lines don't — their brightness-as-depth is unconditional). The picking system's per-render mode sync detects the capability via isSurfacePickAwareMaterial, mirroring the CameraAwareMaterial guard idiom.

    Hierarchy

    • NodeMaterial
      • GSplatPickingTSLMaterial

    Implements

    Index
    uniforms: Record<string, THREE.IUniform>
    tslNodes: {
        uSplatTex: any;
        uResolution: any;
        uPixelRatio: any;
        uTruncate: any;
        uTruncateSq: any;
        uShiftC: any;
        uInvOneMinusC: any;
        uNearCull: any;
        uMaxExtentFactor: any;
        uCov2DDilation: any;
        uSurfaceDepth: any;
        uNodeId: any;
        uSortedIndexSlot: any;
        uDensityDrop: any;
        uLabelFilterIndex: any;
    }
    • Rebind the splat data texture. Same node-identity lifecycle as the visual TSL wrapper: fresh texture node + factory re-run on an identity change, no-op otherwise.

      Parameters

      • tex: DataTexture | null

      Returns void

    • Select the pick depth convention. true = surface ('normal') blending: write the real fragment depth so the FRONT-MOST splat wins — matching the depth-sorted occluding surface the user sees. false (default) = brightness-as-depth so the BRIGHTEST splat wins — correct for the commutative modes (additive/max/luminous). Mirrors the GLSL wrapper's method one-for-one; synced per pick render by PickingSystem.renderPickBuffer().

      Parameters

      • on: boolean

      Returns void

    • Clone this picking material. Mirrors the GLSL wrapper's explicit clone (the inherited Material.clone() calls the constructor with no config and would throw; NodeMaterial.copy would alias the source's node graph instead of this instance's own uniform nodes).

      Returns this

    • Update camera-dependent uniforms (viewport, projection kind, near cull).

      Push again after a resize, a projection-kind flip, a near-cull change or a pixel-ratio change. An FOV or ortho-zoom change needs no push.

      Parameters

      • resolution: Vector2

        Viewport resolution in pixels

      • _isOrtho: boolean = false
      • OptionalnearCull: number

        Near-fade start distance in world units (consumed by all four geometry materials via the shared perspectiveNearFade)

      • pixelRatio: number = 1

        Physical render-target pixels per CSS pixel; screen-space appearance constants scale with it above 1×

      Returns void