BabylonJS / Babylon.js

Babylon.js is a powerful, beautiful, simple, and open game and rendering engine packed into a friendly JavaScript framework.
http://www.babylonjs.com
Apache License 2.0
23.28k stars 3.44k forks source link

Test webVR and webXR on all majors headsets #6814

Closed deltakosh closed 5 years ago

deltakosh commented 5 years ago
RaananW commented 5 years ago

(Documentation only) WebXR: Mansion - https://www.babylonjs-playground.com/#JA1ND3#161 Hill Valley - https://www.babylonjs-playground.com/#JA1ND3#182 Espilit - https://www.babylonjs-playground.com/#JA1ND3#164

RaananW commented 5 years ago

Testing:

WebVR: Oculus Quest, Oculus, Daydream, Windows MR (Lenovo on Edge) Sponza, Hillvalley, Mansion, full interaction and controllers loaded. Issues: Daydream controller is shown as Vive controller. Working.

WebXR: Oculus Rift using Chrome All 3 scenes work as expected (see last comment). Issues: Hill valley requires a small modification to the height (as height coming from the headset itself, it is not modified by us). Issue #6875 will solve this.

RaananW commented 5 years ago

Documentation update with examples: https://github.com/BabylonJS/Documentation/pull/1696

bengfarrell commented 4 years ago

Hiya, with WebXR launching in Chrome yesterday, I tried the above examples last night, and they didn't work in headset. I'm not really surprised because things have been changing so much, but if not these examples, are there current examples of WebXR working as released?

RaananW commented 4 years ago

hey @bengfarrell , was there an error? those samples should be working.

Would be great to know what headset you were using, what chrome version you tried, so I can debug this and understand the issue

bengfarrell commented 4 years ago

@RaananW So, Chrome 79 was publicly released yesterday. My understanding is that they shipped WebXR publicly without any config flags required. I tried these examples from my Oculus Quest connected through Oculus Link (so essentially a Rift). Clicking the headset button to launch immersive mode did not work. Unfortunately I don't have my setup at work here, but I believe that the error was "immersive mode not supported", or something along those lines. Did you get these examples working in Chrome Beta before leading up to the 79 release? I had tried other examples that didn't, but I didn't have confidence that they were up to date.

RaananW commented 4 years ago

@bengfarrell I have used those samples with the rift, but never with link and quest. I actually just tried them with the new version of the quest browser, and they seem to render correctly (there is an issue with the user's height which I will try to address soon). Did you get any other webxr demo to work on your setup?

bengfarrell commented 4 years ago

I'm kinda doubting Link+Quest is the problem, but I can try on my actual Rift tonight. I haven't tried any non-Babylon demos because I'm really looking for a hero example of Babylon integration. However, I'll try to find some non-Babylon demos as well to troubleshoot. I don't know that the Quest standalone will be a good proving ground for WebXR, however. I've had WebVR examples working for quite some time on their browser (though I'm hearing reports of them now supporting XR as well with recent updates).

RaananW commented 4 years ago

not trying to blame the setup :-) Just trying to understand what the problem is. We are still working on completing WebXR support until 4.1 is released (feb 2020). The demos are working, but there is still work to be done. They should render correctly, and you should be able to move around freely. I actually ordered a new USB3 cable yesterday so I can try the quest and link, I should get it tomorrow or friday and will be able to provide some input on my side as well.

bengfarrell commented 4 years ago

@RaananW I WAS trying to blame the setup, hehe. Just wanted to get to the bottom of any differences. But anyway, I guess this is my bad. The press around the release yesterday talked about how these features were available before, but only behind flags. I just went into our lab to try these examples with the Rift S. I got the same results. But then the Google examples weren't working either. Turns out, you STILL need to set some WebXR flags. For me, it was enabling Oculus and disabling the WebXR sandbox. I'm totally confused now about what Chrome is talking about if this stuff is still behind experimental flags. Either way, Babylon.js works, yay! Sorry to waste your time, I was just overly excited

RaananW commented 4 years ago

All good, i am just happy it works 😄 79 removed webvr completely as far as I know, so they had to have some sort of a replacement. good to know we need to enable some stuff in order to get it to work. I am currently working mainly with chromium, so I hadly use chrome stable for tests.

arpu commented 4 years ago

webxr is only enabled default for windows mixed reality in chrome 79 windows 10 and chrome on android phone

bengfarrell commented 4 years ago

Thanks @arpu, I didn't see that noted in any of the press talking about it, but I finally noticed it in Brandon Jones' tweet from yesterday