2015-04-17 46 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