KhronosGroup / KhronosGroup/glTF

MSFT_lod: Clarify whether recursive LOD is allowed or not

Open
#1,953 1 comment 0 reactions 0 assignees View on GitHub
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

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.