XRFrame:fillPoses() 方法
XRFrame 接口的 fillPoses() 方法会使用相对于给定基空间 (base space) 的姿势矩阵填充一个 Float32Array,并在成功填充所有空间后返回 true。
语法
js
fillPoses(spaces, baseSpace, transforms)
参数
空格-
要获取姿势的
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 Hand Input 模块 - Level 1 # dom-xrframe-fillposes |
浏览器兼容性
加载中…