VRDisplay

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

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

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

属性

VRDisplay.capabilities 只读

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

VRDisplay.depthFar

获取或设置眼睛可视锥的最远深度。

VRDisplay.depthNear

获取或设置眼睛可视锥的最近深度。

VRDisplay.displayId 只读

返回此 VRDisplay 的标识符,它也用作与 Gamepad API 的关联(详见 Gamepad.displayId)。

VRDisplay.displayName 只读

返回一个不反人类的名称来标识此 VRDisplay

VRDisplay.isConnected 只读

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

VRDisplay.isPresenting 只读

返回一个 Boolean 值,指示 VRDisplay 当前是否由内容被呈现。

VRDisplay.stageParameters 只读

如果 VR 设备支持房间规模测验,则返回一个包含房间尺寸参数的 VRStageParameters 对象。

方法

VRDisplay.getEyeParameters()

返回指定一侧眼睛参数的 VREyeParameters 对象。

VRDisplay.getLayers()

返回 VRDisplay 当前显示的图层。

VRDisplay.getPose()

Returns a VRPose object defining the future predicted pose of the VRDisplay as it will be when the current frame is actually presented.

VRDisplay.getImmediatePose()

Returns a VRPose object defining the current pose of the VRDisplay, with no prediction applied.

VRDisplay.resetPose()

Resets the pose for this VRDisplay, treating its current VRPose.position and VRPose.orientation as the "origin/zero" values.

VRDisplay.cancelAnimationFrame()

A special implementation of Window.cancelAnimationFrame that allows callbacks registered with VRDisplay.requestAnimationFrame() to be unregistered.

VRDisplay.requestAnimationFrame()

A special implementation of Window.requestAnimationFrame containing a callback function that will be called every time a new frame of the VRDisplay presentation is rendered.

VRDisplay.requestPresent()

Starts the VRDisplay presenting a scene.

VRDisplay.exitPresent()

Stops the VRDisplay presenting a scene.

VRDisplay.submitFrame()

Captures the current state of the VRLayer currently being presented and displays it on the VRDisplay.

示例

TBD.

规范

该 API 在旧的 WebVR API(已被 WebXR Device API 取代)中定义。它不再有望成为标准。

在所有浏览器都实现新的 WebXR API 之前,建议使用框架(如:A-FrameBabylon.jsThree.js)或 polyfill 来开发适用于所有浏览器的 WebXR 应用程序。[1]

浏览器兼容性

BCD tables only load in the browser

参见