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

    How the split is built (all from the orchestrator).

    interface DataRefractionSplitOptions {
        width: number;
        height: number;
        transmissionResolutionScale: number;
        apiSurface: "webgl2" | "webgpu";
        collectRefractingGlass: (
            out: Mesh<
                BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>,
                Material<MaterialEventMap> | Material<MaterialEventMap>[],
                Object3DEventMap,
            >[],
        ) => Mesh<
            BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>,
            Material<MaterialEventMap> | Material<MaterialEventMap>[],
            Object3DEventMap,
        >[];
        collectUnpartitionedMeshes: (
            out: Mesh<
                BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>,
                Material<MaterialEventMap> | Material<MaterialEventMap>[],
                Object3DEventMap,
            >[],
        ) => Mesh<
            BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>,
            Material<MaterialEventMap> | Material<MaterialEventMap>[],
            Object3DEventMap,
        >[];
        setGlassPartition: (mode: GlassPartition) => void;
    }
    Index
    width: number

    Physical width of the HDR target the copy and depth targets must match.

    height: number

    Physical height of the HDR target the copy and depth targets must match.

    transmissionResolutionScale: number

    Pass B's renderer.transmissionResolutionScale, in (0, 1] (WebGL only).

    apiSurface: "webgl2" | "webgpu"

    Which renderer owns the split: three's WebGLRenderer ('webgl2', whose transmission pass needs the copy + quad) or WebGPURenderer ('webgpu', which samples the live framebuffer).

    collectRefractingGlass: (
        out: Mesh<
            BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>,
            Material<MaterialEventMap> | Material<MaterialEventMap>[],
            Object3DEventMap,
        >[],
    ) => Mesh<
        BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>,
        Material<MaterialEventMap> | Material<MaterialEventMap>[],
        Object3DEventMap,
    >[]

    The visible refracting glass this frame, into a caller-owned array (the depth-sort coordinator's collectRefractingGlass). Injected so the split owns no scene knowledge and a unit test can hand it any list.

    collectUnpartitionedMeshes: (
        out: Mesh<
            BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>,
            Material<MaterialEventMap> | Material<MaterialEventMap>[],
            Object3DEventMap,
        >[],
    ) => Mesh<
        BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>,
        Material<MaterialEventMap> | Material<MaterialEventMap>[],
        Object3DEventMap,
    >[]

    The visible meshes drawn by three's own materials (physical, not refracting), which cannot partition themselves: drawn in pass A only.

    setGlassPartition: (mode: GlassPartition) => void

    Broadcast a partition mode to every data material (applyGlassPartition).