Apple Vision Pro Examples

Hello Playcanvas Team,

Good Day!!

I wanted to know if there are any sample Apple Vision Pro examples that I can use for learning. I am trying to develop some things in Playcanvas that can be used in Apple Vision Pro and I am very new to VR experiences in Playcanvas. Any help would be appreciated.

PlayCanvas 3D HTML5 Game Engine will this project work with Vision Pro?

Thanks :smiley:

Just tried various XR examples on the AVP and it seems there is an issue with the depth buffer for all examples starting with engine version 1.66. It looks like everything is drawn without depth test. I am investigatingā€¦

Engine Version 1.65.3 works fine:
https://launch.playcanvas.com/1105444?version=1.65.3

Are you following the advice for AVP here:

Yes. With enabled Anti Aliasing Option the screen renders just pitch black.

With AA disabled, the scene is rendered without depth test (supposedly) you only see the skybox. If the skybox gets disabled the hand mesh is shown but with typical disabled depth buffer artifacts.

https://launch.playcanvas.com/1105444

What version of visionOS do you have installed on your AVP? I have the beta of version 2.

visionOS 1.3

Yeah, update to visionOS 2 (beta). It fixes stuff like this. :smile:

It also improves on the black-screen-when-antialiasing-is-enabled thing too - it now renders stuffā€¦but the eye projections are not quite right! So you still need to disable Anti-Alias for now.

Can confirm visionOS 2 beta works like a charm (without AA).

Any thoughts about enabling the hover effect when looking at PC UI buttons (in non-immersive mode)?

Will look into it now, but in case its already working in a sample I would greatly appreciate a hint :slight_smile:

A gaze-hover would be cool to get working. AFAIK, that doesnā€™t work at the moment. cc @moka

Yeah a gaze-hover would be cool.

Another observation I made is that a
pc.XRSPACE_LOCAL session on the AVP is the same as pc.XRSPACE_LOCALFLOOR

I would expect a pc.XRSPACE_LOCAL to set the local camera position to 0,0,0 (as it does on Quest and other devices) but it behaves like local-floor, hence adding the head position on top.

This can experienced in the VR kit demo that uses XRSPACE_LOCAL. When executed on AVP the initial viewing position is much higher than on a Quest.

This can be a problem when an App should work the same for sitting and standing experience etc.

Hmm. Presumably, thatā€™s a bug in the WebXR implementation on AVP rather than an issue with the PlayCanvas Engine, right?

I agree, PS only passes the xr-space type it to the WebXR API which than reports ā€œmisalignedā€ camera coordinates.

Something else: Gaussian Splats work great on AVP and PS which is super cool, but they seem to be stretched. I guess the projection matrix needs to be adapted for immersive mode. See the screenshot:

https://playcanvas.com/editor/scene/2051883

possibly related to GSplats stereoscopic rendering (viewport size issues) Ā· Issue #6053 Ā· playcanvas/engine Ā· GitHub

1 Like

Thanks, the workaround (viewport.y*2.0) fixes the issue

1 Like

To enable pass-through of the hands, what I really like, I needed to patch the engine to remove ā€˜hand-trackingā€™ from the optional feature set.

Video:

You can also try the demo here, should work on all devices:

1 Like

Iā€™ve submitted a ā€˜properā€™ fix to the engine for this:

1 Like

Hereā€™s my first try with 3DGS on AVP:

1 Like

Just wanted to update this thread to say the fix for 3DGS in VR is now deployed live and active in the Editor! Enjoy. :goggles: