WebXR - Pitch Black in Vision Pro Simulator

https://developer.playcanvas.com/en/tutorials/webxr-hands/

This project when launched goes pitch black when VR button is clicked
in Vision Pro Simulator.

Anyone any idea how we can proceed?

@max might know

I found a way to enter vr mode for editor.

1.open project https://playcanvas.com/project/705931/overview/webxr-hands
2.enter EDITOR
3.Click Launch button in editor, you will get your own link like https://launch.playcanvas.com/961791?debug=true
4.replace debug=true by use_local_engine=https://code.playcanvas.com/playcanvas-latest.js, the result looks like https://launch.playcanvas.com/961791?use_local_engine=https://code.playcanvas.com/playcanvas-latest.js
5.by the above steps, you can enter vr mode in Simulator or device now

1 Like

I’m guessing this pull request that is included in Engine v1.70.0 fixed it:

This goes live in the Editor in the next hour or so, so you should no longer need to edit the launch page URL.

I’ve tried the different versions just now.

It WORKS on use_local_engine=https://code.playcanvas.com/playcanvas-latest.js.or use_local_engine=https://code.playcanvas.com/playcanvas-1.65.3.js or use_local_engine=https://code.playcanvas.com/playcanvas-1.65.5.js

It NOT WORKS on use_local_engine=https://code.playcanvas.com/playcanvas-1.70.0.js or use_local_engine=https://code.playcanvas.com/playcanvas-1.70.1.js

Sorry for the delay in following up here. One thing to point out here is that playcanvas-latest.js seems broken in that it now seems to point to 1.65.0-dev, an not a build of the head commit from the main branch of the engine repo. So yeah, please avoid using playcanvas-latest.js - we want to deprecate that anyway at some point.

As far as I’m aware, AVP (including the Simulator) requires that you disable anti-aliasing in your PlayCanvas application. That’s a current known issue/limitation.

I’m not entirely sure why it used to work though. @mvaligursky - do you know?

I suspect it’s the change where we unified the way multi-sampling in WebGL works with the way it workds in the WebGPU.

Before, the browser would allocate multi-sampled surface that we’d render to.
Now, the browser always allocates a single-sampled surface. We then allocate multi-sampled surface, and at some point during rendering, we resolve (blit mutli-sampled into single sampled). And for some reason it seems Vision Pro is not compatible with this, which I fail to understand why, as from it’s point of view it’s the same as single sampled rendering.

As you know the older version playcanvas-stable.min_1.65.3 at least visually shows the immersive VR in WebXR mode in Apple Vision Pro. But it still has a flaw of being white washed. I will create a separate thread on this. Since we now talk about another issue.