Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MSFT_lod: Clarify whether recursive LOD is allowed or not #1953

Open
takahirox opened this issue Mar 16, 2021 · 1 comment
Open

MSFT_lod: Clarify whether recursive LOD is allowed or not #1953

takahirox opened this issue Mar 16, 2021 · 1 comment

Comments

@takahirox
Copy link
Contributor

takahirox commented Mar 16, 2021

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
    },
    ...
]
@bghgary
Copy link
Contributor

bghgary commented Mar 17, 2021

@najadojo Ditto for this. What happens for glTF-Toolkit and Windows Mixed Reality?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants