2015-04-17 51 views
0

我将Leap Motion传感器附加到Oculus Rift SDK2设备上,以便从“head在Three.js场景中“挂载”模式。LEAP MOTION + OCULUS + THREE.JS:无法获得“optimizeHMD = true”工作(头戴式)

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

我会感谢一些帮助!

回答

0

我不是很熟悉的飞跃SDK,但我没有看到任何迹象表明optimizeHMD应该作为一个选项,以插件传递,而是你需要设置控制器对象的状态。每this pagethis example,在控制器建设期间,您可以将optimizeHMD作为参数传递给控制器​​,或者您可以稍后调用controller.setOptimizeHMD(true|false)来打开和关闭它。不过,我没有看到任何说这是传递给控制器​​插件之一的有效选项。

我怀疑HMD和非HMD模式之间的转换可能发生在基于这个标志的控制器级,标志只是简单地通过转换插件忽略。

+0

你是对的,thanx很多.... 现在我有这个工作! – fanguitocoder