pupitetris / cesium-vr

Plugin for Cesium web-based virtual globe software to support the Oculus VR headset
Other
3 stars 2 forks source link

Right eye shaking on Quest 2 and Chrome WebXR simulators #2

Open rumicuna opened 11 months ago

rumicuna commented 11 months ago

I'm reporting an issue that presents itself when running the demo live on a Meta Quest 2 headset and on both of the Chrome WebXR simulators ('WebXR API Emulator' & 'Immersive Web Emulator').

The issue is that while the left eye perfectly tracks head movements, the right eye 'shakes' when using live on a headset (continuously while using the headset) or while using the simulators and rotating the simulated headset. The positioning of both eyes and head tracking is almost perfect, and the depth perception of the world is pretty much right on (other than the small shaking).

I've recorded a video showing the issue: https://www.youtube.com/watch?v=Ur0V9FeK62Y

You can also reproduce the issue yourself by opening the WebXR page below (which contains an instance in github pages of the cesium-vr code with almost no changes) in your Meta Quest 2 or in a Chrome simulator: https://rumicuna.github.io/cesium-vr/htdocs/

To reproduce, zoom close to the ground and move your head around, or if using the Chrome simulators, rotate the simulated headset slowly (as shown in the video above). The issue does not present itself if one is far away from the ground.

Note that if you are testing using a headset, even though the "right eye shake" issue can also be reproduced on a Quest Pro, at the moment the live demo does not work so well on a Meta Quest Pro because of an eye tracking mismatch issue reported separately here.

rumicuna commented 11 months ago
image

https://www.youtube.com/watch?v=Ur0V9FeK62Y

pupitetris commented 11 months ago

OK, the shaking may have to do with the fact that the render call is being executed asynchronously. I'm not totally sure, but that would be my first guess. I would have to review the code and make sure that the renders are being performed in the right sequence. Maybe the effect is only evident with geometry up close but it is actually happenning all of the time.

rumicuna commented 10 months ago

Additional note: When I pan the Cesium map using my mouse on the simulated view, there's no shaking, both views work perfectly. The shaking only presents itself when I rotate the headset in the WebXR Chrome simulator.

pupitetris commented 10 months ago

OK, that's an interesting find. I think there will be plenty to work on as soon as I come back to this project.