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

EXT_mesh_gpu_instancing: used vs required? #2402

Open
zeux opened this issue May 20, 2024 · 0 comments · May be fixed by #2405
Open

EXT_mesh_gpu_instancing: used vs required? #2402

zeux opened this issue May 20, 2024 · 0 comments · May be fixed by #2405

Comments

@zeux
Copy link
Contributor

zeux commented May 20, 2024

The spec for EXT_mesh_gpu_instancing doesn't mention the expected usage pattern: there are some extensions that modify the appearance of the scene in a way that can be insignificant if unsupported -- for example, for a lot of the new material extensions a renderer that doesn't support them will just render a slightly more basic version of the object, so I'd expect most material extensions to be used- but not required-.

Some extensions like Meshopt or Basis allow required- style usage with no fallback if desired, and optionally support a fallback for renderers that don't support the extension (with associated penalties on load time / size / memory impact) in which case the extension would be used- but not required-.

It's not clear to me what the expectations are for EXT_mesh_gpu_instancing. If extension is not supported, the rendered result will omit all instanced meshes and instead render a single instance of the basic mesh with a wrong transform. There isn't really a useful way that I can see (please correct me otherwise) to specify a fallback.

However, the instanced example here https://github.com/KhronosGroup/glTF-Sample-Assets/tree/main/Models/SimpleInstancing doesn't list the extension as required. Any renderer or tool that doesn't support the extension will render a single cube at origin.

Should the extension spec recommend that scenes that use this extension put it in requiredExtensions? Should the model above be updated accordingly? Or am I missing some subtlety here?

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

Successfully merging a pull request may close this issue.

1 participant