CesiumGS / CesiumGS/cesium-native

Report an error when a glTF requires an extension that is not supported

Open
#515 0 comments 0 reactions 0 assignees View on GitHub
enhancement
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.