KhronosGroup / KhronosGroup/glTF
Transitive extension requiredness
- Dominant language
- HTML
- Stars
- 7.8k
- Forks
- 1.2k
- Avg merge
- 17h 26m
- Merged PRs (30d)
- 5
Description
Here's how the spec defines `extensionsRequired`:
> All glTF extensions required to load and/or render an asset must be listed in the top-level `extensionsRequired` array
We may want to elaborate a bit more there to cover potentially ambiguous cases like the following asset.
```json
{
"asset": {
"version": "2.0"
},
"extensionsUsed": [
"KHR_texture_basisu", "KHR_materials_sheen"
],
"extensionsRequired": [
"KHR_texture_basisu"
],
"materials": [
{
"extensions": {
"KHR_materials_sheen": {
"sheenColorTexture": 0
}
}
}
],
"textures": [
{
"extensions": {
"KHR_texture_basisu": {
"source": 0
}
}
}
]
}
```
Here, the `KHR_texture_basisu` extension is required because there's no fallback image provided. However, the extended texture is only used by a material extension that could be completely ignored (including the texture) by non-supporting clients.
Contributor guide
Research direction
Start with the glTF specification text defining top-level extensionsRequired and extensionsUsed, then examine the example asset involving KHR_texture_basisu and KHR_materials_sheen. Determine whether the requiredness rule needs clarification for extensions used only by ignorable extensions; done means the specification resolves this case unambiguously.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- json
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 30/100