KhronosGroup / KhronosGroup/glTF
MSFT_lod: Clarify whether recursive LOD is allowed or not
- Dominant language
- HTML
- Stars
- 7.8k
- Forks
- 1.2k
- Avg merge
- 17h 26m
- Merged PRs (30d)
- 5
Description
https://github.com/KhronosGroup/glTF/tree/master/extensions/2.0/Vendor/MSFT_lod
In `MSFT_lod` spec, it's unclear whether recursive LODs are allowed or not. For example
```
"nodes": [
{
"name": "High_LOD",
"mesh": 0,
"extensions": {
"MSFT_lod": {
"ids": [
1,
2
]
}
}
},
{
"name": "Medium_LOD",
"mesh": 1,
"extensions": {
"MSFT_lod": {
"ids": [
3,
4
]
}
}
},
{
"name": "Low_LOD",
"mesh": 2
},
...
]
```
`node: 0` has the references to `node: 1` and `node: 2` as LODs and `node: 1` has the references to `node: 3` and `node: 4` as LODs. How should the LODs for `node: 0` be?
Probably allowing the recursive LODs makes the engines complex so we may have two options.
1. glTF data including recursive LOD is invalid.
2. The engines should apply the top-level LOD specification and ignore the recursive LOD specifications.
Perhaps 2. is good? In the example below, processing `node: 0` will ignore the LOD specification in `node: 1` so `node: 0` will be High-Middle-Low LODs. And processing `node: 1` will apply the LOD specification in `node: 1` so `node: 1` will be Middle-Low LODs.
```
"nodes": [
{
"name": "High_LOD",
"mesh": 0,
"extensions": {
"MSFT_lod": {
"ids": [
1,
2
]
}
}
},
{
"name": "Medium_LOD",
"mesh": 1,
"extensions": {
"MSFT_lod": {
"ids": [
2
]
}
}
},
{
"name": "Low_LOD",
"mesh": 2
},
...
]
```
Contributor guide
Research direction
Start with the MSFT_lod specification at the linked extensions/2.0/Vendor/MSFT_lod page and review the recursive examples in this issue. Determine whether recursive LOD references are invalid or whether nested specifications are ignored, then update the specification to state the chosen behavior and verify that the examples are consistent.
Written by the indexing model from the issue text.
Assessment
- Domain
- computer-graphics, documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100