Open2

Mini-XR: AR関連のOpenXRとWebXR機能拡張の関連を調べる会

okuokuokuoku

Mini-XRで公開するC APIになるWebXR機能拡張を選定する必要がある。

これ結構面倒というかWebXRが直接的にOpenXRを参照しているわけではないので手動で対応付けをする必要がある。

okuokuokuoku

WebXR 公式仕様

QuestとPicoの標準ブラウザでの対応状況も調べていく。

spec ident OpenXR Quest Pico Simulator
Device API immersive-vr n/a o o o
Gamepads Module n/a n/a o o o
Augmented Reality Module immersive-ar n/a o o o
Hit Test Module n/a n/a o o? o
DOM Overlays Module dom-overlay n/a o o x
Layers API n/a XR_KHR_composition_layer_cube o o x
Anchors Module n/a XR_FB_spatial_entity ? o o? o
Lighting Estimation API n/a n/a o o?? x
Hand Input Module hand-tracking XR_EXT_hand_tracking o x o
Depth Sensing Module (TR) depth-sensing n/a o ? ?
Plane Detection Module plane-detection n/a o x o
Mesh Detection Module mesh-detection n/a o x o
Raw Camera Access Module camera-access n/a ? ? ?
Marker Tracking Module marker-tracking n/a ? ? ?
Body Tracking Module body-tracking n/a ? ? ?

LayersにはPolyfillもある https://github.com/immersive-web/webxr-layers-polyfill

quest: Layerサポートには独自のSpace warp https://developers.meta.com/horizon/documentation/web/webxr-space-warp レイヤーがある。Plane Detection は "シーン" https://developers.meta.com/horizon/documentation/native/android/openxr-scene-overview/

pico: ブラウザにHandのサポートが無い。。Anchors、Hit Test、Plane detectionはUpcoming https://developer.picoxr.com/document/web/development-platform/ になっている。Lighting EstimationとMesh detectionはサポートのリストにそもそも無い。

WebXR仕様が全体的にAndroidのARCore等に主導されているからか、OpenXR側の機能性とあんまりオーバーラップしていないように見える。