Taos API Reference
    Preparing search index...

    Class GaussianSplatPass

    Abstract base class for a render graph pass.

    A pass is a container for long-lived GPU state — pipelines, bind group layouts, samplers, persistent uniform buffers — that on each frame is inserted into a RenderGraph via addToGraph. The graph itself does not store pass instances; it stores the read/write declarations and execute callback that addToGraph registers via the supplied PassBuilder.

    Subclasses parameterize the dependency and output types so the factory can wire passes together with type-checked handles:

    class GeometryPass extends Pass<{ camera: ResourceHandle }, { albedo, normal, depth }> {
    readonly name = 'GeometryPass';
    addToGraph(graph, deps) { ... }
    }

    The convention is that the constructor builds long-lived state (pipelines etc.), addToGraph declares per-frame resource flow, and destroy releases anything the pass owns.

    Hierarchy (View Summary)

    Index

    Properties

    name: "GaussianSplatPass" = 'GaussianSplatPass'

    Human-readable identifier used in graph node labels and error messages.

    count: number
    maxShDegree: number

    Highest SH degree present in the loaded cloud.

    usesSubgroups: boolean

    Whether the depth sort uses the subgroup fast path.

    upAxisFlip: boolean = false

    Flip the cloud's up axis (180° about X) so Y-down 3DGS scenes display right-side up. Implemented entirely in updateCamera: the flip is folded into the view matrix the shader receives (which corrects both positions and the projected covariance), and the camera origin is mapped back into splat space so spherical-harmonic color stays correct.

    Accessors

    Methods

    • Create a streaming pass: an empty merged buffer of maxSplats capacity that a tileset fills slot-by-slot. The whole capacity is preprocessed + GLOBALLY depth-sorted every frame (so splats from different tiles blend correctly); unwritten / freed slots are zero (radius 0) so the render culls them. Fill it via writeSplats / clearSlots. Used by "./gaussian_splat_tileset".GaussianSplatTileset.

      Parameters

      • ctx: RenderContext
      • maxSplats: number
      • shDegree: number = 0
      • opts: { forceScalarSort?: boolean } = {}

      Returns GaussianSplatPass

    • Streaming: zero count splats at index slot so the render culls them (radius 0).

      Parameters

      • slot: number
      • count: number

      Returns void

    • Set the swirl center and scale (splat space). Used by the intro animation.

      Parameters

      • center: [number, number, number]
      • scale: number

      Returns void

    • Release every long-lived GPU resource owned by the pass (pipelines, persistent uniform buffers, samplers, BGLs). Called by the factory or application during teardown. Default implementation is a no-op.

      Returns void