krpano WebVR / WebXR API Comparison
State: January 2020, Chrome 81, Oculus Browser 7.1, Firefox 72, Firefox Reality 7.1
Compare using the WebVR API and the WebXR API.
Note: the comparison works only on systems where both APIs are available (e.g. in the current Oculus Browser).
When only one API is availble, then automatically that one will be used.
Without WebVR or WebXR API support by the browser, the krpano 'MobileVR' fallback solution will be used.
- WebVR Example (using the webxr="preferwebvr" setting)
- Can use a higher rendering resolution, sharper images, less aliasing.
- Changing the rendering resolution is anytime possible during runtime.
- Well supported: Oculus Browser, Samsung Browser, Firefox Desktop, Firefox Reality, Edge Browser.
- A button-press on the VR-controllers is not a browser-user-event and so can't trigger action that require an user-interaction (like playing media in some cases).
- WebXR Example (using the webxr="prefer" setting)
- A button-press on the VR-controllers can trigger actions that require an user-interaction (like playing media).
- Works great for Android Chrome and Google Daydream headsets.
- The rendering resolution is limited, only reducing the resolution is possible.
- The rendering resolution can be set only on startup and not during runtime.
- Only a scaling factor for the rendering resolution can be set, not exact and induvial width and height values.
- On Android Chrome the VR display is currently buggy for Cardboard headsets (wrongly distorted, wrong side-aspect and sometimes also shifted).
- Compability problems: in WebXR mode the normal 'requestAnimationFrame' processing gets disabled/paused, so all scripts relying on that will stop working.
- Only limited support at the moment: Chrome, but only with Windows MR Headset and a bit unstable, Oculus Browser.
- Automatic WebXR / WebVR / MobileVR API selection (using the webxr="auto" setting)
- Best support for all current browsers and devices.
- Uses WebXR on Desktop Chrome with Mixed Reality Headsets.
- Uses WebVR on Desktop Firefox, Microsoft Edge with Oculus Rift, HTC Vive and Mixed Reality Headsets.
- Uses WebVR in the Oculus Browser (Oculus Quest, Oculus Go, Samsung GearVR) and in Firefox Reality.
- Uses MobileVR in Android Chrome, Android Firefox and iOS Safari.
- When using WebVR or MobileVR: A button-press on the VR-controllers or aming with the VR-cursor is not a browser-user-event and so can't trigger actions that require an user-interaction (like playing media in some cases).
- Google Daydream headsets are not using WebXR this way (because there is no JS API to detect Daydream support),
but that should be an acceptable compromise as Cardboard devices are way more common.