XRPose - 表示 3D 空间中相对于它所在的 XRSpace 的位置和方向
XRPose
是 WebXR API 的接口,表示 3D 空间中相对于它所在的 XRSpace
的位置和方向。XRSpace
(可以是 XRReferenceSpace
或 XRBoundedReferenceSpace
)定义用于姿势的坐标系。
要获得用作对象的本地坐标系的 XRSpace
的 XRPose
,请调用 XRFrame.getPose()
,指定该本地 XRSpace
以及所需的空间转换:
thePose = xrFrame.getPose(localSpace, baseSpace);
观众(或相机)的姿势由 XRPose
的 XRViewerPose
子类表示。它是使用 XRFrame.getViewerPose()
而不是 XRPose
来获得的,它指定了一个参考空间,该参考空间已被调整以定位和定向节点以提供所需的观看位置和角度:
viewerPose = xrFrame.getViewerPose(adjReferenceSpace);
在这里,adjReferenceSpace
是参考空间,已使用该参考空间的基本参考帧以及基于从 XR 设备(如键盘或鼠标输入)以外的来源提供的移动或旋转来定位查看器所需的任何调整进行更新。
请参阅文章运动,方向和运动,以获取更多详细信息,以及对发生的事情进行了详尽的解释的实例。
属性
XRPose.transform
只读
一个 XRRigidTransform
,它提供相对于基础 XRSpace
的姿势的位置和方向。
XRPose.emulatedPosition
只读
一个布尔值,如果 transform
给定的位置和方向是直接从完整的六自由度(6DoF)XR 设备(即不仅跟踪头部的俯仰,偏航和侧倾,而且跟踪观看者的向前,向后和左右移动的设备)。如果变换的任何组成部分是人为计算或创建的(例如通过使用鼠标或键盘控件在空间中移动),则该值为 true
,表示该变换在软件中部分进行了仿真。
规范
规范 | 状态 | 备注 |
---|---|---|
WebXR Device API XRPose 的定义 |
工作草案 | 初始定义。 |
桌面浏览器兼容性
特性 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
基础支持 | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 |
emulatedPosition | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 |
transform | 79 | 79 | 不支持 | 不支持 | 不支持 | 不支持 |
移动浏览器兼容性
特性 | Android | Chrome for Android | Edge mobile | Firefox for Android | IE mobile | Opera Android | iOS Safari |
---|---|---|---|---|---|---|---|
基础支持 | 不支持 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |
emulatedPosition | 不支持 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |
transform | 不支持 | 79 | 未知 | 不支持 | 未知 | 不支持 | 不支持 |