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

3D Tiles Next Metadata Compatibility Matrix #10480

Open
ptrgags opened this issue Jun 24, 2022 · 2 comments
Open

3D Tiles Next Metadata Compatibility Matrix #10480

ptrgags opened this issue Jun 24, 2022 · 2 comments

Comments

@ptrgags
Copy link
Contributor

ptrgags commented Jun 24, 2022

There are several different metadata capabilities in 3D Tiles Next and several possible methods
of accessing the metadata (mainly custom shaders, picking, and styling). It's admittedly confusing what is supported where, so we thought it would be helpful to make a table.

Key:
🟢 - currently implemented (sometimes with limitations)
🔴 - not yet implemented.

Custom Shader Picking Styling
3D Tiles 1.1 / 3DTILES_metadata(legacy extension)
Tileset Metadata 🔴 🟢1 🟢1
Group Metadata 🔴 🟢1 🟢1
Tile Metadata 🔴 🟢1 🟢1
Content Metadata 🔴 🟢1 🟢1
EXT_mesh_features / EXT_instance_features
feature ID attributes 🟢 🟢2 🟢2
feature ID textures 🟢 🟢2 🟢2
default feature IDs 🟢 🟢2 🟢2
Feature IDs without property table 🟢 🔴3 🔴3
EXT_structural_metadata
property textures 🟢4 🔴5 🔴5
property tables 🔴 🟢 🟢
property attributes 🟢 🔴 🔴

Footnotes:

  1. These can be accessed through a picked object, see Cesium3DTileFeature.getPropertyInherited. This has some limitations, see Streamline the API for accessing tileset/tile metadata when picking #10015
  2. Only one set of feature IDs can be used at a time for picking/styling. This is selected with the featureIdLabel/instanceFeatureIdLabel properties of a tileset/model
  3. Though the spec allows arbitrary feature ID values not tied to a feature table, this will require significant refactoring of CesiumJS' picking system, see Model EXT_mesh_features: handle feature IDs without a property table #9884
  4. The implementation only supports UINT8 (both normalized and unnormalized) values, as these are the most common types to read from a texture. See Handle remaining types for property textures in custom shaders #10248
  5. Picking/styling property textures will require significant refactoring of CesiumJS' picking system. See also Supporting picking properties from property textures #9852
@chen21439
Copy link

can you tell me where the featureId come form ,and whether it is possible to distinch each building

https://sandcastle.cesium.com/?src=3D%20Tiles%20Feature%20Picking.html&label=3D%20Tiles

i notice some building share the same featureId

@javagl
Copy link
Contributor

javagl commented Jan 16, 2024

The "Styling" column for the first 4 rows suggests that Styling based on Metadata was supported. Maybe I didn't fully understand the footnote 1, but it seems like this is not the case, as of #11758

Beyond that, just to keep track of some related forum threads:

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