XRFrame:fillPoses() 方法

实验性: 这是一个 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表

安全上下文:此功能仅在 安全上下文(HTTPS)中可用,在某些或所有 支持的浏览器中。

fillPoses() 方法是 XRFrame 接口的方法,它使用 Float32Array 填充相对于给定基础空间的姿势矩阵,如果所有空间都成功,则返回 true

语法

js
fillPoses(spaces, baseSpace, transforms)

参数

spaces

要获取其姿势的 XRSpace 对象数组。

baseSpace

用作相对位置和方向的基础或原点的 XRSpace 对象。

transforms

一个 Float32Array,它填充了相对于给定 baseSpace 的姿势矩阵。

返回值

一个布尔值,指示所有空间是否都有有效的姿势。

异常

TypeError

如果 spaces 的长度乘以 16 大于 transforms 中元素的数量,则抛出此异常。

示例

获取手的全部关节姿势

为了有效地获取每个 XRHand 的所有 25 个关节的所有姿势,可以使用 fillPoses() 方法。

js
let poses1 = new Float32Array(16 * 25);
let poses2 = new Float32Array(16 * 25);

function onXRFrame(xrFrame, renderer) {
  let hand1 = xrFrame.session.inputSources[0].hand;
  xrFrame.fillPoses(hand1.values(), renderer.referenceSpace, poses1);
  let hand2 = xrFrame.session.inputSources[1].hand;
  xrFrame.fillPoses(hand2.values(), renderer.referenceSpace, poses2);
}

规范

规范
WebXR 手部输入模块 - 1 级
# dom-xrframe-fillposes

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅