XRRigidTransform

可用性有限

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

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

XRRigidTransform 是一个 WebXR API 接口,它表示由位置和方向定义的 3D 几何变换。

XRRigidTransform 用于在 WebXR API 中指定变换,包括:

在这些地方使用 XRRigidTransform 而非提供矩阵数据的裸数组有一个优点。它会自动计算变换的逆矩阵,甚至进行缓存,从而使后续的请求速度显著提高。

构造函数

XRRigidTransform()

创建一个新的 XRRigidTransform 对象,该对象表示一个应用指定位置和/或方向的变换。

实例属性

XRRigidTransform.position 只读

一个 DOMPointReadOnly,指定一个以米为单位的 3D 点,描述变换的平移分量。 w 属性始终为 1.0

XRRigidTransform.orientation 只读

一个 DOMPointReadOnly,其中包含一个单位四元数,描述变换的旋转分量。作为单位四元数,其长度始终归一化为 1.0

XRRigidTransform.matrix 只读

以 16 元素 Float32Array 的形式返回变换矩阵。有关如何使用数组表示矩阵,请参阅 Matrix format 部分。

XRRigidTransform.inverse 只读

返回一个 XRRigidTransform,它是此变换的逆变换。也就是说,如果将其应用于先前已被原始变换变换过的对象,它将撤销变换并将对象恢复到原始状态。

用法说明

当解释 XRRigidTransform 时,始终先应用方向,然后再应用位置。

示例

此代码片段创建一个 XRRigidTransform,用于指定在创建新引用空间时相对于当前引用空间使用的偏移量和方向。然后,它通过调用会话的 requestAnimationFrame() 方法来请求第一个动画帧回调。

js
xrSession.requestReferenceSpace(refSpaceType).then((refSpace) => {
  xrReferenceSpace = refSpace;
  xrReferenceSpace = xrReferenceSpace.getOffsetReferenceSpace(
    new XRRigidTransform(viewerStartPosition, cubeOrientation),
  );
  animationFrameRequestID = xrSession.requestAnimationFrame(drawFrame);
});

规范

规范
WebXR Device API
# xrrigidtransform-interface

浏览器兼容性