@pmndrs/bvh
    Preparing search index...

    Interface GpuTreeBuffers

    The trees of one GPU batch, in the GPU layout: every mesh's nodes, triangles and parents in three shared buffers, each mesh at its offsets. They belong to the caller: destroy() frees them.

    interface GpuTreeBuffers {
        meshes: readonly GpuMeshTreeRange[];
        nodeFormat?: "f32" | "quantized";
        nodes: GPUBuffer;
        parents: GPUBuffer;
        triangleLeaves?: "records" | "indexed";
        triangles: GPUBuffer;
        withoutParents?: true;
        destroy(): void;
    }
    Index
    meshes: readonly GpuMeshTreeRange[]
    nodeFormat?: "f32" | "quantized"

    How nodes stores them; omitted means 'f32'.

    nodes: GPUBuffer

    64-byte nodes; or with nodeFormat: 'quantized', each mesh's frame slot and 32-byte nodes.

    parents: GPUBuffer

    One u32 per node: its parent within its mesh, or 0xffffffff for a root; a placeholder with withoutParents.

    triangleLeaves?: "records" | "indexed"

    How triangles stores them; omitted means 'records'.

    triangles: GPUBuffer

    48-byte triangles (16 with triangleLeaves: 'indexed'), each mesh's in tree order.

    withoutParents?: true

    The batch was built without its parents output (GpuHplocBatchOptions.parents: false): parents holds nothing, and a readback finds each tree's parents from its nodes.