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 styling loose ends #574

Open
29 tasks
lilleyse opened this issue Nov 29, 2023 · 0 comments
Open
29 tasks

3D Tiles styling loose ends #574

lilleyse opened this issue Nov 29, 2023 · 0 comments

Comments

@lilleyse
Copy link
Contributor

lilleyse commented Nov 29, 2023

3D Tiles styling was added in #558, #559, and #573 but there were a few things that were left out to reduce scope. Note that this only applies to 3D Tiles styling, which is implemented in MDL, and doesn't necessarily apply to metadata picking #154 .

Missing support

Unlikely to be supported

  • Support for variable-length arrays
  • Support for STRING
  • Support for 16 or 32-bit property textures. Unlikely to see this in practice.
  • Support for property texture properties with more than four channels

Features

  • Metadata discovery - see what properties are available for styling like in Cesium for Unreal
  • Metadata encoding options - Cesium for Unreal has a mechanism for coercing values from one type to another, including basic conversions like float64 -> float32 and also string -> numeric conversions. This functionality was recently ported over to cesium-native: Add conversion logic to cesium-native cesium-native#756 and could be used in omniverse.
  • Make min/max properties available as material graph nodes. Useful for creating color ramps.
  • Make statistics available as material graph nodes. Useful for creating color ramps.
  • Make featureCount available as material graph node
  • Handle property ID naming collisions

Precision

  • Potential narrowing issues when unpacking uint32 features ids that are stored across multiple texture channels into an int. Unfortunately MDL doesn't have a uint type. See unpack_channels in cesium.mdl.
  • Property table precision issues - 64-bit floats, 32 and 64-bit integers lose precision when encoded as floats

Performance

  • Pack multiple properties in the same property table texture to reduce the number of bound textures.
  • Create texture resources on demand
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

No branches or pull requests

1 participant