Summary
For a SplatMesh loaded from a Streamed-LOD (.rad) source via paged: true, getBoundingBox() does not return a deterministic, file-derived bounding box:
- Immediately after construction (even after
await mesh.initialized resolves), it returns a Box3 with min = (Infinity, Infinity, Infinity) and max = (-Infinity, -Infinity, -Infinity).
- 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.
Summary
For a
SplatMeshloaded from a Streamed-LOD (.rad) source viapaged: true,getBoundingBox()does not return a deterministic, file-derived bounding box:await mesh.initializedresolves), it returns aBox3withmin = (Infinity, Infinity, Infinity)andmax = (-Infinity, -Infinity, -Infinity).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
Infinity-filled box.