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

Bring Cesium3DTilesTerrainProvider into main #12296

Open
ggetz opened this issue Nov 8, 2024 · 2 comments
Open

Bring Cesium3DTilesTerrainProvider into main #12296

ggetz opened this issue Nov 8, 2024 · 2 comments

Comments

@ggetz
Copy link
Contributor

ggetz commented Nov 8, 2024

We have a long-running branch—3d-tiles-terrain— that adds a new Cesium3DTilesTerrainProvider class. This is used for rending global 3D Tiles via the existing terrain engine.

This terrain provider supports only a subset of 3D tilesets (ie. 3D Tiles 1.1 with implicit tiling schemes matching that of terrain), so it may not quite ready for prime time yet. As such we should use the experimental tag to give us some flexibility if things need to change.

In the interest of maintenance as well as making this early work generally available, let's get this branch updated and merged into main. We'll also want to ensure the testing, documentation, and API structure are up to par as a part of this.

@ggetz
Copy link
Contributor Author

ggetz commented Nov 8, 2024

@lilleyse Are there other specific requirements for 3D tilesets using this feature that should be called out in the docs?

@lilleyse
Copy link
Contributor

3D Tiles loaded with Cesium3DTilesTerrainProvider must follow this structure:

  • Conforms to the same WGS84 double-headed quadtree tiling scheme as quantized mesh. Must have two root tiles with region bounding volumes and implicit tiling.
  • Multiple contents are not allowed
  • Tile metadata must include TILE_MINIMUM_HEIGHT, TILE_MAXIMUM_HEIGHT, TILE_BOUNDING_SPHERE, TILE_HORIZON_OCCLUSION_POINT semantics
  • Only GLB is supported, not glTF
  • Each GLB must have a single node, mesh, and primitive
  • Primitive must have POSITION attribute
  • Primitive must have NORMAL attribute if requestVertexNormals is true
  • Primitive must have indices with UNSIGNED_SHORT or UNSIGNED_INT component type
  • Attributes and indices must be tightly packed
  • If requestWaterMask is true, primitive must reference an EXT_structural_metadata property texture with WATERMASK semantic.
  • Primitive must have CESIUM_tile_edges extension
  • Model may be compressed with EXT_meshopt_compression / KHR_mesh_quantization

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

No branches or pull requests

3 participants