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 教程