ReadonlyconcurrencyWorker pool size — size the engine's decode concurrency to match.
Decode one BVC-in-glTF .glb tile on a worker.
The complete .glb tile bytes. Transferred (not copied) to the worker.
The GltfSplatCloud (see BvcGltfSplatDecoder.decode for the
field shapes/units): positions in metres, de-interleaved splat attribute arrays.
Optional fast path: decode AND rebase/pack into the shared ENU layout IN THE
WORKER, so the O(splat-count) packEnu stays off the main thread. Output is
identical to decoding then packing on the main thread.
The complete .glb tile bytes. Transferred (not copied) to the worker.
4×4 column-major matrix mapping ECEF → the scene's local ENU (east-north-up) frame. Cloned to the worker (shared across tiles).
4×4 column-major tile-to-ECEF transform from the tileset.
The tile's level-of-detail index, carried through onto the output.
A PackedSplatTile (the tiles3d decode→renderer seam) packed in the shared ENU layout, ready for the
splat renderer.
Tear down the worker pool and release its workers. Safe to call repeatedly.
Fans BVC-in-glTF
.glbsplat decodes out to aWorkerPoolof module workers so the rANS/entropy decode never blocks the render thread. Drop-in for BvcGltfSplatDecoder (samedecode(glb)contract).Remarks
concurrency reports the pool size so the consumer can size the engine's decode queue to keep every worker busy. Decode-only (BVC encode is a licensed native capability, never shipped to the browser).
Example