LEAP MOTION + OCULUS + THREE.JS: не удается оптимизироватьHMD = работает нормально (на голове)

Я прикрепил датчик 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' игнорируется, датчик прыжка все равно распознает мои руки, как в режиме рабочего стола.

Буду признателен за помощь!


person fanguitocoder    schedule 17.04.2015    source источник


Ответы (1)


Я не очень хорошо знаком с Leap SDK, но я не вижу никаких указаний на то, что optimumHMD следует передавать плагинам как опцию, а скорее это состояние объекта контроллера, которое вам нужно установить. На этой странице и этот пример, во время построения контроллера вы можете передать optimizeHMD в качестве параметра контроллеру, или вы можете позже вызовите controller.setOptimizeHMD(true|false), чтобы включить и выключить его. Однако я не вижу ничего, что говорило бы о том, что это допустимый вариант для перехода к одному из плагинов контроллера.

Я подозреваю, что перевод между режимами HMD и не-HMD, вероятно, происходит на уровне контроллера на основе этого флага, и этот флаг просто игнорируется плагином преобразования.

person Jherico    schedule 17.04.2015