WebXR Device API

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

安全上下文: 此功能仅在安全上下文(HTTPS)中可用,且支持此功能的浏览器数量有限。

实验性: 这是一项实验性技术
在生产中使用此技术之前,请仔细检查浏览器兼容性表格

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 参考文档

指南和教程

以下指南和教程是理解 WebXR 以及底层 3D 和 VR/AR 图形概念的绝佳资源。

规范

规范
WebXR Device API
WebXR Anchors 模块
WebXR 增强现实模块 - Level 1
WebXR Depth Sensing 模块
WebXR DOM 叠加模块
WebXR Gamepads 模块 - Level 1
WebXR Hand Input 模块 - Level 1
WebXR Hit Test 模块
WebXR Layers API Level 1
WebXR 光照估算 API Level 1

浏览器兼容性

另见