KhronosGroup / KhronosGroup/glTF

Transitive extension requiredness

Open
#1,906 4 comments 0 reactions 0 assignees View on GitHub
implementation specification
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.