OpenXR: Add support for render models extension - #107388
Conversation
89c5a70 to
6784e2d
Compare
dsnopek
left a comment
There was a problem hiding this comment.
Thanks!
I did a quick skim of the code, and this is looking great! I only had a handful of minor comments
devloglogan
left a comment
There was a problem hiding this comment.
Quick scan through the docs, planning to take a look through the rest tomorrow! 🙂
6784e2d to
1ba9394
Compare
There was a problem hiding this comment.
Do we expect the gltf extensions to change during runtime? If not, we can populate the list once and just reuse it.
There was a problem hiding this comment.
Honestly, I don't know for sure. I assume we could load this once and re-use but in theory there could be an order of execution issue as I believe plugins can add support for extensions.
That said, there isn't much overhead in this. It's not likely we would load more than a few individual models and the processing of the GLTF will far outweigh creating this list of extensions.
1ba9394 to
f344b86
Compare
4b818e3 to
6b96fe9
Compare
6b96fe9 to
60a9b88
Compare
|
Got one more small fix coming in a few minutes after testing on Pico 4 ultra. Animatable child nodes can be any level deep so instead of We had made that change some time ago but missed merging it into our main branch. Oops. |
60a9b88 to
b65b367
Compare
|
Ok, verified the fix works! Tested it on two separate XR runtimes that will have support for this soon. Hopefully I can share when it is made public soon. Anyway, I think this can be merged now. |
|
Thanks! |
…_models_ext OpenXR: Add support for render models extension
…_models_ext OpenXR: Add support for render models extension
…_models_ext OpenXR: Add support for render models extension
This PR adds support for the new XR_EXT_render_model and XR_EXT_interaction_render_model extensions introduced in OpenXR 1.1.49
These extensions, when enabled and supported, will give an application access to fully animated models of the controllers currently held by the users, including tracking data for these controllers.
This PR adds a new extension class called
OpenXRRenderModelExtensionthat, when enabled, will keep track of all the render models detected by the XR runtime. This class also contains a number of lower level methods that allow custom consumption of the data and enables vendor extensions to register additional render models in the system.The PR also adds two helper nodes,
OpenXRRenderModelsandOpenXRRenderModelthat makes the render models logic easily accessible. A user simply adds theOpenXRRenderModelsas a child node of the `XROrigin3D`` node to make the system work.Documentation PR can be found here: godotengine/godot-docs#11014
Demo project that uses this feature: https://github.com/BastiaanOlij/godot-xr-flynn-demo
Note: implementations in runtimes are still locked preventing the general public from using these features, but support should be rolling out for headsets very soon.
Contributed by Khronos Group through the Godot Integration Project