0

我将 Leap Motion 传感器连接到 Oculus Rift SDK2 设备,以便在 Three.js 场景中通过“头戴式”模式识别我的手。

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”行被忽略了,跳跃传感器仍然像在桌面模式下一样识别我的手。

我会很感激一些帮助!

4

1 回答 1

0

我对 Leap SDK 不是很熟悉,但我没有看到任何迹象表明 optimizeHMD 应该作为选项传递给插件,而是需要设置的控制器对象上的状态。根据此页面此示例,在控制器构建期间,您可以将optimizeHMD其作为参数传递给控制器​​,或者您可以稍后调用controller.setOptimizeHMD(true|false)以打开和关闭它。但是,我没有看到任何说这是传递给控制器​​插件之一的有效选项。

我怀疑 HMD 和非 HMD 模式之间的转换可能发生在基于此标志的控制器级别,并且该标志只是被转换插件忽略。

于 2015-04-17T19:26:29.470 回答