VRDisplay

已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。

非标准:此特性未标准化。我们不建议在生产环境中使用非标准特性,因为它们浏览器支持有限,并且可能会更改或被移除。但是,在没有标准选项的特定情况下,它们可以是合适的替代方案。

WebVR API 的 VRDisplay 接口代表此 API 支持的任何 VR 设备。它包括设备 ID 和描述等通用信息,以及用于开始呈现 VR 场景、检索眼睛参数和显示功能以及其他重要功能的方法。

注意: 此接口是旧版 WebVR API 的一部分。它已被 WebXR Device API 取代。

可以通过调用 Navigator.getVRDisplays() 方法返回所有连接的 VR 设备的数组。

实例属性

VRDisplay.capabilities 只读 已废弃 非标准

返回一个 VRDisplayCapabilities 对象,该对象指示 VRDisplay 的各种功能。

VRDisplay.depthFar 已废弃 非标准

获取和设置定义眼睛视图截锥体远平面的 z 深度,即场景最远的可见边界。

VRDisplay.depthNear 已废弃 非标准

获取和设置定义眼睛视图截锥体近平面的 z 深度,即场景最近的可见边界。

VRDisplay.displayId 只读 已废弃 非标准

返回此特定 VRDisplay 的标识符,该标识符也用作 Gamepad API 中的关联点(参见 Gamepad.displayId)。

VRDisplay.displayName 只读 已废弃 非标准

返回一个人类可读的名称,用于标识 VRDisplay

VRDisplay.isConnected 只读 已废弃 非标准

返回一个布尔值,指示 VRDisplay 是否连接到计算机。

VRDisplay.isPresenting 只读 已废弃 非标准

返回一个布尔值,指示 VRDisplay 当前是否正在通过它呈现内容。

VRDisplay.stageParameters 只读 已废弃 非标准

如果 VRDisplay 能够支持房间尺度体验,则返回一个包含房间尺度参数的 VRStageParameters 对象。

实例方法

VRDisplay.getEyeParameters() 已废弃 非标准

返回一个包含指定眼睛的眼睛参数的 VREyeParameters 对象。

VRDisplay.getFrameData() 已废弃 非标准

接受一个 VRFrameData 对象,并使用渲染当前帧所需的信息填充它。

VRDisplay.getImmediatePose() 已废弃 非标准

返回一个 VRPose 对象,该对象定义 VRDisplay 的当前姿态,不应用任何预测。这已不再需要,并已从规范中删除。

VRDisplay.getLayers() 已废弃 非标准

返回 VRDisplay 当前正在呈现的图层。

VRDisplay.getPose() 已废弃 非标准

返回一个 VRPose 对象,该对象定义了 VRDisplay 在当前帧实际呈现时的未来预测姿态。此方法已废弃——相反,您应该使用 VRDisplay.getFrameData(),它也提供了一个 VRPose 对象。

VRDisplay.resetPose() 已废弃 非标准

重置此 VRDisplay 的姿态,将其当前的 VRPose.positionVRPose.orientation 视为“原点/零”值。

VRDisplay.cancelAnimationFrame() 已废弃 非标准

一种特殊的 Window.cancelAnimationFrame 实现,允许注销通过 VRDisplay.requestAnimationFrame() 注册的回调。

VRDisplay.requestAnimationFrame() 已废弃 非标准

一种特殊的 Window.requestAnimationFrame 实现,包含一个回调函数,该函数将在每次渲染 VRDisplay 演示的新帧时调用。

VRDisplay.requestPresent() 已废弃 非标准

启动 VRDisplay 呈现场景。

VRDisplay.exitPresent() 已废弃 非标准

停止 VRDisplay 呈现场景。

VRDisplay.submitFrame() 已废弃 非标准

捕获当前正在呈现的 VRLayerInit 的当前状态,并将其显示在 VRDisplay 上。

示例

js
if (navigator.getVRDisplays) {
  console.log("WebVR 1.1 supported");
  // Then get the displays attached to the computer
  navigator.getVRDisplays().then((displays) => {
    // If a display is available, use it to present the scene
    if (displays.length > 0) {
      vrDisplay = displays[0];
      // Now we have our VRDisplay object and can do what we want with it
    }
  });
}

注意:您可以在 raw-webgl-example 中查看此完整代码。

规范

此接口是旧版 WebVR API 的一部分,该 API 已被 WebXR Device API 取代。它不再有望成为标准。

在所有浏览器都实现新的 WebXR API 之前,建议依靠 A-FrameBabylon.jsThree.js 等框架,或 polyfill 来开发可在所有浏览器上运行的 WebXR 应用程序。有关更多信息,请阅读 Meta 的从 WebVR 移植到 WebXR 指南。

浏览器兼容性

另见