Fans BVC-in-glTF point-cloud .glb decodes out to a WorkerPool — decode,
ENU projection and requantization all run in the worker, so the render thread
never janks. Drop-in for BvcGltfPointCloudDecoder (same
decode(glb, ctx) contract, same PackedPointTile out), and the decoder
Tiles3DPointCloudLayer builds for decoder: 'bvc' when workers is left on
(the default) and Worker exists.
Remarks
concurrency reports the pool size so the engine can size its decode
queue to keep every worker busy. The .glb buffer is transferred (not copied)
to the worker, so do not touch it after calling decode. If the pool cannot
be spawned, decoding degrades once to the main-thread
BvcGltfPointCloudDecoder and the failure is reported through
onDegraded — never again per tile. Call dispose when the layer goes
away to release the workers.
constpointDecoder = newWorkerBvcGltfPointCloudDecoder(); consttile = awaitpointDecoder.decode(glb, ctx); // ctx: CesiumPointDecodeContext pointDecoder.dispose(); // tear down the pool when the layer is removed
Fans BVC-in-glTF point-cloud
.glbdecodes out to aWorkerPool— decode, ENU projection and requantization all run in the worker, so the render thread never janks. Drop-in for BvcGltfPointCloudDecoder (samedecode(glb, ctx)contract, samePackedPointTileout), and the decoderTiles3DPointCloudLayerbuilds fordecoder: 'bvc'whenworkersis left on (the default) andWorkerexists.Remarks
concurrency reports the pool size so the engine can size its decode queue to keep every worker busy. The
.glbbuffer is transferred (not copied) to the worker, so do not touch it after callingdecode. If the pool cannot be spawned, decoding degrades once to the main-thread BvcGltfPointCloudDecoder and the failure is reported throughonDegraded— never again per tile. Call dispose when the layer goes away to release the workers.Example