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

    Owns the depth target, the copy target, the proxies and the quads; one per manager.

    Index
    screenQuad: Mesh<PlaneGeometry, ShaderMaterial, Object3DEventMap> = ...

    The pass-B quad (a scene member only between pass B's start and its finally).

    restoreQuad: Mesh<PlaneGeometry, ShaderMaterial, Object3DEventMap> = ...

    The pass-C colour-restore quad, MSAA on WebGL only (same transient membership).

    glassDepthScene: Scene<Object3DEventMap> = ...

    The private scene pass G renders: depth-only proxies of the refracting glass.

    blitScene: Scene<Object3DEventMap> = ...

    The blit scene (one quad, orthographic camera), WebGL only.

    glassDepthTarget: WebGLRenderTarget

    The glass front-face depth target, wrapping the shared depth texture.

    blitQuad: Mesh<PlaneGeometry, ShaderMaterial, Object3DEventMap> = ...
    blitCamera: OrthographicCamera = ...
    copyTarget: WebGLRenderTarget
    depthOnlyMaterial: MeshBasicMaterial = ...
    emptyGeometry: BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap> = ...
    proxies: Mesh<
        BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>,
        Material<MaterialEventMap> | Material<MaterialEventMap>[],
        Object3DEventMap,
    >[] = []
    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
    transmissionResolutionScale: number

    Pass B's transmission target scale (see the module doc).

    framesSplit: number = 0

    Frames in which the split ran; the partition E2E spec reads it through the manager.

    lastPassCount: number = 0

    render() calls the last split frame issued (4, 5 or 6 by backend and MSAA).

    needsPrime: boolean = true
    warnedFallback: boolean = false
    glassScratch: Mesh<
        BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>,
        Material<MaterialEventMap> | Material<MaterialEventMap>[],
        Object3DEventMap,
    >[] = []
    unpartitionedScratch: Mesh<
        BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>,
        Material<MaterialEventMap> | Material<MaterialEventMap>[],
        Object3DEventMap,
    >[] = []
    maskScratch: number[] = []
    unpartitionedMaskScratch: number[] = []
    • Render scene into hdrTarget (already bound and cleared by the caller) with the refracting glass drawn after — and sampling — the data behind it, and the data in front of it drawn last. Returns false, having drawn nothing, when no visible glass asks for it (or the one unsupported renderer + MSAA combination is in force), so the caller renders normally.

      Parameters

      • renderer: Renderer
      • scene: Scene
      • camera: Camera
      • hdrTarget: WebGLRenderTarget

      Returns boolean

    • Save every piece of renderer / scene state the passes write, and park the meshes.

      Parameters

      • r: SplitRenderer
      • scene: Scene
      • camera: Camera
      • glass: readonly Mesh<
            BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>,
            Material<MaterialEventMap> | Material<MaterialEventMap>[],
            Object3DEventMap,
        >[]
      • unpartitioned: readonly Mesh<
            BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>,
            Material<MaterialEventMap> | Material<MaterialEventMap>[],
            Object3DEventMap,
        >[]

      Returns BorrowedState

    • Pass B: the glass alone (plus, on WebGL, the copy of pass A behind it as a screen quad) into the HDR target without clearing, at the pass-B transmission scale.

      Parameters

      • r: SplitRenderer
      • scene: Scene
      • camera: Camera
      • hdrTarget: WebGLRenderTarget
      • prevScale: number | undefined

      Returns void

    • One depth-only proxy per refracting glass this frame, sharing its geometry and carrying its world matrix (the proxies are direct children of an identity scene, so matrix IS the world matrix). Surplus proxies from a busier frame are hidden.

      Parameters

      • glass: readonly Mesh<
            BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>,
            Material<MaterialEventMap> | Material<MaterialEventMap>[],
            Object3DEventMap,
        >[]

      Returns void