XRPose

可用性有限

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

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

XRPose 是一个 WebXR API 接口,表示在三维空间中的位置和方向,相对于其所在的 XRSpaceXRSpace — 无论是 XRReferenceSpace 还是 XRBoundedReferenceSpace — 定义了姿态使用的坐标系,并且在 XRViewerPose 的情况下,定义了其底层的视图。

要获取用作对象局部坐标系统的 XRSpaceXRPose,请调用 XRFrame.getPose(),指定该局部 XRSpace 和您希望转换到的空间。

js
thePose = xrFrame.getPose(localSpace, baseSpace);

查看器(或摄像头)的姿态由 XRPose 的子类 XRViewerPose 表示。这通过 XRFrame.getViewerPose() 而不是 getPose() 来获取,指定一个已调整以定位和定向节点以提供所需视角和角度的参考空间。

js
viewerPose = xrFrame.getViewerPose(adjReferenceSpace);

在此,adjReferenceSpace 是一个已通过帧的基本参考系以及从 XR 设备以外的源(如键盘或鼠标输入)提供的移动或旋转来定位查看器所需的任何调整来更新的参考空间。

有关更多详细信息以及包含详细解释的示例,请参阅文章 Movement, orientation, and motion

实例属性

XRPose.angularVelocity 只读

一个 DOMPointReadOnly,描述相对于基本 XRSpace 的每秒弧度角速度。

XRPose.emulatedPosition 只读

一个布尔值,如果由 transform 提供的位置和方向直接来自六自由度 (6DoF) XR 设备(即,一个不仅跟踪头部俯仰、偏航和滚动,还跟踪查看器的前后和左右移动的设备),则该值为 false。如果 transform 的任何组件是计算或人为创建的(例如,通过使用鼠标或键盘控件在空间中移动),则此值为 true,表示 transform 部分是在软件中模拟的。

XRPose.linearVelocity 只读

一个 DOMPointReadOnly,描述相对于基本 XRSpace 的每秒米线速度。

XRPose.transform 只读

一个 XRRigidTransform,它提供姿态相对于基本 XRSpace 的位置和方向。

规范

规范
WebXR Device API
# xrpose-interface

浏览器兼容性

另见