XRPose - 表示 3D 空间中相对于它所在的 XRSpace 的位置和方向

安全上下文
该功能仅在部分或所有支持的浏览器中的安全上下文(HTTPS)中可用。

XRPoseWebXR API 的接口,表示 3D 空间中相对于它所在的 XRSpace 的位置和方向。XRSpace(可以是 XRReferenceSpaceXRBoundedReferenceSpace)定义用于姿势的坐标系。

要获得用作对象的本地坐标系的 XRSpaceXRPose,请调用 XRFrame.getPose(),指定该本地 XRSpace 以及所需的空间转换:

thePose = xrFrame.getPose(localSpace, baseSpace);

观众(或相机)的姿势由 XRPoseXRViewerPose 子类表示。它是使用 XRFrame.getViewerPose() 而不是 XRPose 来获得的,它指定了一个参考空间,该参考空间已被调整以定位和定向节点以提供所需的观看位置和角度:

viewerPose = xrFrame.getViewerPose(adjReferenceSpace);

在这里,adjReferenceSpace 是参考空间,已使用该参考空间的基本参考帧以及基于从 XR 设备(如键盘或鼠标输入)以外的来源提供的移动或旋转来定位查看器所需的任何调整进行更新。

请参阅文章运动,方向和运动,以获取更多详细信息,以及对发生的事情进行了详尽的解释的实例。

属性

XRPose.transform 只读

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

XRPose.emulatedPosition 只读

一个布尔值,如果 transform 给定的位置和方向是直接从完整的六自由度(6DoF)XR 设备(即不仅跟踪头部的俯仰,偏航和侧倾,而且跟踪观看者的向前,向后和左右移动的设备)。如果变换的任何组成部分是人为计算或创建的(例如通过使用鼠标或键盘控件在空间中移动),则该值为 true,表示该变换在软件中部分进行了仿真。

规范

规范 状态 备注
WebXR Device API
XRPose 的定义
工作草案 初始定义。

桌面浏览器兼容性

特性ChromeEdgeFirefoxInternet ExplorerOperaSafari
基础支持7979 不支持 不支持 不支持 不支持
emulatedPosition7979 不支持 不支持 不支持 不支持
transform7979 不支持 不支持 不支持 不支持

移动浏览器兼容性

特性AndroidChrome for AndroidEdge mobileFirefox for AndroidIE mobileOpera AndroidiOS Safari
基础支持 不支持79 未知 不支持 未知 不支持 不支持
emulatedPosition 不支持79 未知 不支持 未知 不支持 不支持
transform 不支持79 未知 不支持 未知 不支持 不支持

相关链接