google / model-viewer

Easily display interactive 3D models on the web and in AR!
https://modelviewer.dev
Apache License 2.0
6.88k stars 816 forks source link

webXR doesn't work on Oculus Browser using Oculus Quest #1093

Closed lanxinger closed 3 years ago

lanxinger commented 4 years ago

webXR doesn't work as expected on Oculus Browser on Oculus Quest. When trying to enter webXR mode for the model it goes into fallback mode reloads the page.

using the interactive example testing page: https://modelviewer.dev/examples/tester.html

Browser Affected

OS

I found it could be related to an older Three JS version being used: https://developer.oculus.com/documentation/oculus-browser/browser-vr-xr/

cdata commented 4 years ago

Thanks for the report @lanxinger !

cc @elalish who is working on WebXR integration right now and may even have an Oculus Quest on hand nearby.

elalish commented 4 years ago

@lanxinger I just updated our webXR code, so can you pull master and try again? Also, the tester link on our docs page doesn't enable AR at the moment; did you make a modified version to test this?

lanxinger commented 4 years ago

@cdata @elalish

thank you for your attention to this issue.

@elalish: No, I didn't make any modifications. I only used the tester page for this as well as our own installation on our server which is using the latest 0.9 release and using the unstable-webxr tag.

What would be the quickest way for us to test this? Build from source? I am happy to wait for this fix to be in the next release (0.10.0) as indicated.

elalish commented 4 years ago

@lanxinger Yes, it would be great if you could build this from source and test it. The trouble is neither of us has an Oculus, so I really don't know if the problem is fixed. If it's not, it would be great if you could send us any warnings or errors that show up in your Javascript console.

Since I just updated webXR to work with the new APIs in Chrome, so I'm hoping this fixes Oculus as well, but we have only really been testing AR, so any VR feedback you can give us would be valuable.

elalish commented 4 years ago

@lanxinger Okay, after looking through the code a bit more, we're really not set up for viewing in VR (you'll note all the attributes talk about AR exclusively). The reason is that it'll be a fair bit of UX work to get VR up to snuff, as it differs considerably from AR. While it would be nice to support VR, it's not on our near-term roadmap (and we should make sure to hide the button when AR is not available).

However, if VR is important to you, we would welcome a pull request adding the requisite UX. If you're interested in pursuing this, please ping me and I can show you around the related parts of our code base.

lanxinger commented 4 years ago

@elalish thank you for looking into this more deeply.

wasn't aware it wouldn't support viewing in VR. I thought webXR unified all the R's. we are quite happy with the AR integration. VR viewing would have been a bonus.

Was looking at the webXR sample pages and even something simple along those lines would work for us: https://immersive-web.github.io/webxr-samples/immersive-vr-session.html

I am more from the creator side of things working on 3d scanning and modelling / texturing so probably not a big help on getting this implemented on the code side of things but I can ask our developers and see if they would be up for the task.

I guess for now we can just detect the oculus browser and then load a page with a simple webVR implementation: https://github.com/immersive-web/webxr-samples/blob/master/immersive-vr-session.html

el-mimoso commented 3 years ago

Also is not working on oculus rift, have tried in canary, chrome and firefox

elalish commented 3 years ago

@el-mimoso Yes, as stated above we only support AR, not VR. Though we should find a way to hide the button in that case.

kolodi commented 2 years ago

@lanxinger Okay, after looking through the code a bit more, we're really not set up for viewing in VR (you'll note all the attributes talk about AR exclusively). The reason is that it'll be a fair bit of UX work to get VR up to snuff, as it differs considerably from AR. While it would be nice to support VR, it's not on our near-term roadmap (and we should make sure to hide the button when AR is not available).

However, if VR is important to you, we would welcome a pull request adding the requisite UX. If you're interested in pursuing this, please ping me and I can show you around the related parts of our code base.

I was thinking about making the feature parity for all AR devices, for now we can only position the 3D scene on mobile but no way to do it while using WebXR enabled headsets. #3083

kolodi commented 2 years ago

Can you point me out on how to enable Oculus Quest device to enter WebXR mode? There are dozens of xr related checks in code, what exactly fails for Oculus Quest to prevent it from entering WebXR mode?