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

Model materials improperly set when using OpenXRFbRenderModel #175

Open
DungenRobot opened this issue Jun 22, 2024 · 3 comments
Open

Model materials improperly set when using OpenXRFbRenderModel #175

DungenRobot opened this issue Jun 22, 2024 · 3 comments
Assignees
Labels
bug Something isn't working

Comments

@DungenRobot
Copy link

When using the OpenXRFbRenderModel node, the controller model and albedo texture are correctly applied. The other textures (roughness, metalic, normals) are not applied. This results in a shiny controller model that does not reflect quest controllers accurately and may distract or take a user out of the experience.

Examples

image image
Quest Plus controllers should appear mostly matte, except for triggers.
image
Quest Pro controllers should appear similarly

Note

Tested with the Quest 3 and Quest Pro in the Mobile renderer. Not tested with Quest 1 or Quest 2

Steps to reproduce

  1. Create a new Godot 4.3 project
  2. Install Godot OpenXR Vendors Plugin v3.0.0 Beta 2
  3. Follow documentation steps to setup XR and Android build
  4. Add OpenXRFbRenderModel nodes as children of XRController3d
  5. Build and observe in-headset
@dsnopek
Copy link
Collaborator

dsnopek commented Jun 22, 2024

Thanks!

We're relying on Godot's GLTF importer to convert the materials. I wonder if we need to do a little post-processing of the materials to fix them up?

/cc @devloglogan

@dsnopek dsnopek added the bug Something isn't working label Jun 22, 2024
@devloglogan
Copy link
Collaborator

Quick update on this issue, a while ago using my Quest 3 I saved the glb file the OpenXR runtime gives us to disk. Initially I'd hoped to examine the model more in Blender, but it can't be imported since Blender doesn't support the KHR_texture_basisu extension.

Here is the glb file for anyone interested:
controller_model.zip

The model doesn't have any roughness, metallic, or normal textures attached to it. But I feel like something is off just from the battery indicator texture alone:
as_buffer_Image_1

You can see the strange colors of it in the first comment's photos as well. I don't think Godot is importing this glb incorrectly, as the model can be viewed as well using something like https://gltf-viewer.donmccurdy.com/ and it appears exactly the same.

Not quite sure where to go from here at the moment, but just wanted to share!

@DungenRobot
Copy link
Author

That texture appears when downloading the texture from Meta's official quest resources. My assumption is that they have a shader material applied to display battery life. There are other materials included in that download along with an animation applied to help with assigning transforms to the buttons and thumbstick based on input from the controller

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

3 participants