WebXR Device API
WebXR 是一組標準,它們協同工作,以支援將 3D 場景渲染到專為呈現虛擬世界(虛擬現實,或VR)而設計的硬體,或者為將圖形影像新增到現實世界(增強現實,或AR)而設計的硬體。WebXR 裝置 API 實現 WebXR 功能集的核心,管理輸出裝置的選定,以適當的幀速率將 3D 場景渲染到選定的裝置,並管理使用輸入控制器建立的運動向量。
WebXR 相容裝置包括具有運動和方向跟蹤功能的完全沉浸式 3D 頭顯,眼鏡(透過鏡框疊加圖形到真實世界場景),以及透過攝像頭捕捉世界並用計算機生成影像增強場景的手持行動電話。
為實現這些功能,WebXR 裝置 API 提供了以下關鍵能力:
- 查詢相容的 VR 或 AR 輸出裝置
- 以適當的幀速率將 3D 場景渲染到裝置
- (可選)將輸出映象到 2D 顯示器
- 建立表示輸入控制元件移動的向量
最基本地說,3D 場景的呈現是透過計算應用於場景的透視來實現的,以便從使用者每隻眼睛的視角進行渲染。這透過計算每隻眼睛的位置,並從該位置渲染場景,視角與使用者當前面對的方向一致。這兩張影像中的每一張都被渲染到同一個幀緩衝區中,左眼渲染的影像在左側,右眼視角的渲染影像在緩衝區的右半部分。一旦場景的左右眼視角都已渲染完畢,生成的幀緩衝區就會被傳遞給 WebXR 裝置,透過使用者的頭顯或其他合適的顯示裝置進行呈現。
雖然較舊的 WebVR API 僅用於支援虛擬現實(VR),但 WebXR 為 Web 上的 VR 和增強現實(AR)都提供了支援。AR 功能的支援由 WebXR 增強現實模組新增。
典型的 XR 裝置可能有 3 個或 6 個自由度,可能帶有或不帶有外部位置感測器。
裝置可能還包括加速度計、氣壓計或其他感測器,用於感知使用者在空間中的移動、頭部旋轉等。
WebXR 參考文件
初始化
navigator.xrXRSystemXRPermissionStatusPermissions-Policy:xr-spatial-tracking
Session
Frame loop
Spaces
檢視
Geometric primitives
Pose
輸入
Layers
XRLayerXRLayerEventXRCompositionLayerXRCubeLayerXRCylinderLayerXREquirectLayerXRProjectionLayerXRQuadLayerXRMediaBinding
WebGL binding
Anchors
Depth sensing
Hit testing
Lighting estimation
指南和教程
以下指南和教程是理解 WebXR 以及底層 3D 和 VR/AR 圖形概念的絕佳資源。
規範
瀏覽器相容性
載入中…
另見
- 繪製圖形
- WebGL API:Web 上的加速 2D 和 3D 圖形
- Canvas API:Web 上的 2D 繪圖
- Canvas 教程