Skip to content

getBoundingBox() returns a growing, non-deterministic box for Streamed-LOD (.rad) SplatMesh #373

Description

@shota-hamamatsu

Summary

For a SplatMesh loaded from a Streamed-LOD (.rad) source via paged: true, getBoundingBox() does not return a deterministic, file-derived bounding box:

  1. Immediately after construction (even after await mesh.initialized resolves), it returns a Box3 with min = (Infinity, Infinity, Infinity) and max = (-Infinity, -Infinity, -Infinity).
  2. Once rendering starts, it begins returning a finite box, but that box only reflects whichever LOD chunks have been fetched and decoded so far. As streaming progresses over more frames, more chunks become resident and the box keeps growing — it's a snapshot of "currently loaded" data, not the full dataset. There's no clear point at which the box is guaranteed to represent the complete, true extent of the file.

There doesn't currently seem to be a way to obtain one fixed bounding box for the full splat set, independent of how much of the stream has loaded.

Expected Behavior

A way to obtain a single, deterministic bounding box covering the full splat set for a Streamed-LOD SplatMesh, independent of how much of the stream has loaded so far.

Actual Behavior

  • Right after load: an Infinity-filled box.
  • During/after streaming: a finite box whose size grows over time as more chunks load, with no signal for when (or whether) it has reached the true full extent.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions