Multiview in webXR using Quest 3 in 2024

Hello everyone!

I wasn’t sure whether to post here since I might be doing something very basic wrong, but here it goes.

I have been attempting to use multiview in the Quest 3 with zero success. I followed all the playground examples that I found and this pull request that enables it: link to pull request.

I tested the playground that rgerd shared and never saw an improvement in FPS while using the OVR metrics tool. I even enabled or disabled the multiview flag in the Oculus browser.

To enable multiview, it seems to be as simple as adding:

xr.baseExperience.featuresManager.enableFeature(BABYLON.WebXRFeatureName.LAYERS, "latest", { preferMultiviewOnInit: true }, true, false);

But once I enter XR, the screen is white and there are multiple huge errors in the console.

Is there something wrong with my approach? I suspect there could be an issue with my project, but why can’t I even see the advantages of multiview in the playgrounds of other people?

The documentation is not clear on the current state and steps to take to enable multiview.

Thank you!

@RaananW

nothing is wrong with your approach! :slight_smile:

But we need to understand what is happening. I have been working with multiview on different scenes, and haven’t had any issues with it for a while now. Can you share the playground youa re trying to load?

Also, try this - WebXR basic example with teleportation | Babylon.js Playground (babylonjs.com) and let me know if this scene is working.

Once again thank you for the quick answer @RaananW !

I forgot to attach the error:

I tried the playground you just linked and it does work, I comment out the multiview line and the only difference I notice is that the hands material for the handtracking meshes are different. But the FPS stays the same.

The playgrounds that I tried are these, with no difference in FPS, even if I commented out the multiview line:

Do I have to have the chrome flag enabled? Or is it alright if its on default?

Thank you

This is because of the shader used for the hands, which I had to temp-suspend. Regarding multiview - multiview is not a magic solution to suddenly render in double the framerate. On heavy-rendered scenes you might see better rendering, but the only real difference is the process in which the cameras are rendered to the framebuffer (single shot vs. two times). Don’t forget that it also enbles antialiasing. Don’t expect a scene that renders in 30 FPS to suddenly be 90. Oh, and - the simple scene should render in full device capabilities. no reason it shouldn’t. If it doesn’t, i would be really happy to know that :slight_smile: