Vector Tiles: Consolidate .vctr and latest Vector Tiles
- Dominant language
- JavaScript
- Stars
- 15.8k
- Forks
- 3.9k
- Avg merge
- 4d 6h
- Merged PRs (30d)
- 34
Description
Our latest support for vector tiles, based on `3DTILES_content_gltf_vector`, introduced a new performance-oriented data model for large vector datasets, based on [BufferPrimitiveCollection](https://cesium.com/learn/cesiumjs/ref-doc/BufferPrimitiveCollection.html).
An older (and still experimental) effort for vector support in 3D Tiles was the `.vctr` format. Its implementation in CesiumJS remains, and is largely separate — `.vctr` rendering used older APIs like BillboardCollection that do not scale as well but have many years of useful styling features, and some custom rendering (see Vector3DTilePolylines).
We'd prefer not maintaining two separate vector tile rendering paths in 3D Tiles (in addition to clamped vs. 3D paths...), and would rather focus on `3DTILES_content_gltf_vector` moving forward. We'll need to decide what that means for `.vctr` support in CesiumJS. I'm unsure how widely `.vctr` is used, but that will have implications for whether we can:
- (a) encourage users to migrate content to the newer `3DTILES_content_gltf_vector` extension
- (b) re-implement `.vctr` support in CesiumJS on top of the newer rendering APIs
One challenge with either is that `.vctr` exposed a wide range of CesiumJS's existing text and billboard styling features (see [Cesium3DTileStyle documentation](https://cesium.com/learn/cesiumjs/ref-doc/Cesium3DTileStyle.html)) but making every styling feature in CesiumJS scale to the performance goals of `3DTILES_content_gltf_vector` is a long road.
Related, the references "vector tiles" for features that are (mostly) related to the older `.vctr` format. The [Cesium3DTileStyle documentation](https://cesium.com/learn/cesiumjs/ref-doc/Cesium3DTileStyle.html) should be clarified to disambiguate between `.vctr` and `3DTILES_content_gltf_vector`, whatever decisions we make.
Contributor guide
Research direction
Start by comparing the existing .vctr implementation with the newer 3DTILES_content_gltf_vector path, including BufferPrimitiveCollection and Vector3DTilePolylines. Review the Cesium3DTileStyle documentation to identify the styling differences; done means the project has a decided consolidation or migration direction and the documentation clearly distinguishes both formats.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript
- Domain
- computer-graphics, documentation
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Needs clarification
- Newbie friendliness
- 30/100