Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support voxel tilesets containing glTF tiles using the EXT_primitive_voxels extension #12432

Draft
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

jjhembd
Copy link
Contributor

@jjhembd jjhembd commented Jan 11, 2025

Description

This PR updates VoxelPrimitive and related classes to support tilesets using the proposed update to EXT_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:

  • Update sample datasets to the new format, verify specs
  • Move 3D Tileset examples to a separate Sandcastle
  • Update Cesium3DTilesVoxelProvider.prototype.requestData to return a GltfLoader, which will then be attached to the KeyframeNode in the requestData function in VoxelTraversal. Then updateKeyframeNodes can call gltfLoader.process, perhaps even via a keyframeNode.process function? Or should KeyframeNode be pointing to a child class similar to Cesium3DTileContent?
  • Decouple megatexture sorting etc. from keyframeNode processing. Perhaps we should have a megatexture.sort functionality? And make megatexture.add handle the ejection of lower priority nodes when full?
  • Move voxelTraversal._highPriorityKeyframeNodes to VoxelPrimitive, and update the nodes from VoxelPrimitive.prototype.update for better alignment with Cesium3DTileset.prototype.update

Author checklist

  • I have submitted a Contributor License Agreement
  • I have added my name to CONTRIBUTORS.md
  • I have updated CHANGES.md with a short summary of my change
  • I have added or updated unit tests to ensure consistent code coverage
  • I have updated the inline documentation, and included code examples where relevant
  • I have performed a self-review of my code

Copy link

Thank you for the pull request, @jjhembd!

✅ We can confirm we have a CLA on file for you.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Support for newer EXT_primitive_voxels in CesiumJS
1 participant