CesiumGS / CesiumGS/cesium-native
Report an error when a glTF requires an extension that is not supported
- Dominant language
- C++
- Stars
- 623
- Forks
- 277
- PR merge metrics
- No merged PRs in 30d
Description
Currently, if a glTF includes an extension in the `extensionsRequired` section that is not supported by a client (such as Cesium for Unreal), this fact is silently ignored. This can lead to broken behavior later and leave the user wondering why. We should report a clear error indicating that a required extension is missing.
We have to be careful, though, because of the interplay between cesium-native and the rendering engines that use it. For example, cesium-unreal doesn't need to have any particular support for `KHR_draco_mesh_compression` because cesium-native handles it completely. So, we should implement a mechanism in cesium-native whereby rendering engines (e.g. Unreal) can communicate which extensions they support, and then cesium-native can do smart things like:
* If a renderer _does_ support an extension natively, cesium-native can pass it through without decoding (e.g. mesh and texture compression extensions).
* But if a renderer _doesn't_ natively support an extension, then cesium-native may be able to decode it automatically for the renderer (in fact this already happens implicitly for `KHR_draco_mesh_compression`).
* If the renderer doesn't natively support and extension and cesium-native can't cover for it, cesium-native should report an error.
Contributor guide
Assessment
This issue has not been assessed yet.