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

Mini-XRで公開するC APIになるWebXR機能拡張を選定する必要がある。
これ結構面倒というかWebXRが直接的にOpenXRを参照しているわけではないので手動で対応付けをする必要がある。

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側の機能性とあんまりオーバーラップしていないように見える。