Support voxel tilesets containing glTF tiles using the EXT_primitive_voxels
extension
#12432
+1,330
−517
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR updates
VoxelPrimitive
and related classes to support tilesets using the proposed update toEXT_primitive_voxels
.Along the way, the internal APIs were cleaned up and made more consistent with
Cesium3DTileset
, to prepare for work on #12297.Issue number and link
Resolves #12368.
Related: #12297
Testing plan
TODO
Remaining work
The helpers for
VoxelTraversal.prototype.update
have been reworked to separate keyframe node selection (the true purpose of "traversal") from data loading and processing.Next:
Cesium3DTilesVoxelProvider.prototype.requestData
to return aGltfLoader
, which will then be attached to theKeyframeNode
in therequestData
function inVoxelTraversal
. ThenupdateKeyframeNodes
can callgltfLoader.process
, perhaps even via akeyframeNode.process
function? Or shouldKeyframeNode
be pointing to a child class similar toCesium3DTileContent
?voxelTraversal._highPriorityKeyframeNodes
toVoxelPrimitive
, and update the nodes fromVoxelPrimitive.prototype.update
for better alignment withCesium3DTileset.prototype.update
Author checklist
CONTRIBUTORS.md
CHANGES.md
with a short summary of my change