LEAP MOTION + OCULUS + THREE.JS:无法使 "optimizeHMD = true" 工作(头戴式)
LEAP MOTION + OCULUS + THREE.JS: can't get "optimizeHMD = true" working (head mounted)
我将 Leap Motion 传感器连接到 Oculus Rift SDK2 设备,以便在 Three.js 场景中从 'head mounted' 模式识别我的手。
controller.use('handHold').use('transform', {
optimizeHMD: true
}).use('handEntry').use('screenPosition').use('riggedHand', {
parent: scene,
renderer: renderer,
scale: getParam('scale'),
positionScale: getParam('positionScale'),
helper: false,
offset: new THREE.Vector3(0, 0, 0),
renderFn: function() {
renderer.render(scene, camera);
return controls.update();
},
materialOptions: {
wireframe: true
},
dotsMode: getParam('dots'),
stats: stats,
camera: camera,
boneLabels: function(boneMesh, leapHand) {
if (boneMesh.name.indexOf('Finger_03') === 0) {
return leapHand.pinchStrength;
}
},
boneColors: function(boneMesh, leapHand) {
if ((boneMesh.name.indexOf('Finger_0') === 0) || (boneMesh.name.indexOf('Finger_1') === 0)) {
return {
hue: 0.6,
saturation: leapHand.pinchStrength
};
}
},
checkWebGL: true
}).connect();
但我认为 'optimizeHMD = true' 行被忽略了,leap 传感器仍然像在桌面模式下一样识别我的手。
非常感谢您的帮助!
我对 Leap SDK 不是很熟悉,但我没有看到任何迹象表明 optimizeHMD 应该作为插件的选项传递,而是您需要设置的控制器对象上的状态。根据 this page and this example,在控制器构造期间,您可以将 optimizeHMD
作为参数传递给控制器,或者您可以稍后调用 controller.setOptimizeHMD(true|false)
来打开和关闭它。但是,我没有看到任何说明这是传递给其中一个控制器插件的有效选项。
我怀疑 HMD 和非 HMD 模式之间的转换可能基于这个标志发生在控制器级别,而这个标志只是被转换插件忽略了。
我将 Leap Motion 传感器连接到 Oculus Rift SDK2 设备,以便在 Three.js 场景中从 'head mounted' 模式识别我的手。
controller.use('handHold').use('transform', {
optimizeHMD: true
}).use('handEntry').use('screenPosition').use('riggedHand', {
parent: scene,
renderer: renderer,
scale: getParam('scale'),
positionScale: getParam('positionScale'),
helper: false,
offset: new THREE.Vector3(0, 0, 0),
renderFn: function() {
renderer.render(scene, camera);
return controls.update();
},
materialOptions: {
wireframe: true
},
dotsMode: getParam('dots'),
stats: stats,
camera: camera,
boneLabels: function(boneMesh, leapHand) {
if (boneMesh.name.indexOf('Finger_03') === 0) {
return leapHand.pinchStrength;
}
},
boneColors: function(boneMesh, leapHand) {
if ((boneMesh.name.indexOf('Finger_0') === 0) || (boneMesh.name.indexOf('Finger_1') === 0)) {
return {
hue: 0.6,
saturation: leapHand.pinchStrength
};
}
},
checkWebGL: true
}).connect();
但我认为 'optimizeHMD = true' 行被忽略了,leap 传感器仍然像在桌面模式下一样识别我的手。
非常感谢您的帮助!
我对 Leap SDK 不是很熟悉,但我没有看到任何迹象表明 optimizeHMD 应该作为插件的选项传递,而是您需要设置的控制器对象上的状态。根据 this page and this example,在控制器构造期间,您可以将 optimizeHMD
作为参数传递给控制器,或者您可以稍后调用 controller.setOptimizeHMD(true|false)
来打开和关闭它。但是,我没有看到任何说明这是传递给其中一个控制器插件的有效选项。
我怀疑 HMD 和非 HMD 模式之间的转换可能基于这个标志发生在控制器级别,而这个标志只是被转换插件忽略了。