我正在尝试使用WebVR使用Oculus Rift DK2方向输入-使用Three.js的VRControls(examples/js/controls/VRControls.js
)或直接从PositionSensorVRDevice
进行。
但是PositionSensorVRDevice
的状态值orientation
和position
始终为null
(Firefox)或x,y,z = 0(Chrome)的VRPoint3D / 4D,因此相机方向永远不会改变。
我一直在尝试的Firefox和Chrome VR版本是:
Firefox 2014-10-18 version
Chromium_WebVR_OSX_SDK_0.4.2.dmg
尽管看起来可能不是真实的位置传感器,但它似乎获得了PositionSensorVRDevice OK,因为Chrome将其报告为:
deviceId:调试-0
deviceName:Moculus Rift
hardwareUnitId:调试-0
FF将其报告为:
deviceId:somedevid
deviceName:HMD定位设备
hardwareUnitId:未知HMDInfo-0x1351d4000
我用Leap Motion VR Quickstart demo和Three.js WebGL Effects VR demo得到相同的结果。我在几个月前进行的演示中也得到了相同的效果,该演示曾经可以工作-它不使用VRControls,而是直接处理PositionSensorVRDevice。
不用说,Rift都已连接好,Oculus Rift Config Util的演示场景运行良好。我正在使用固件版本2.12。
VRControls中的相关代码是更新方法-我一直在这里检查state.orientation
和state.position
的值:
this.update = function () {
if ( vrInput === undefined ) return;
var state = vrInput.getState();
if ( state.orientation !== null ) {
object.quaternion.copy( state.orientation );
}
if ( state.position !== null ) {
object.position.copy( state.position );
}
};
任何建议深表感谢!
最佳答案
糟糕,事实证明我不是最新版本的Oculus运行时!我使用的是v0.4.1-我需要升级到0.4.3 Beta。现在可以在FF和Chrome的最新VR版本中正常工作。
万一它对其他人有帮助-我从web-vr mailing list上Vlad的帖子中找到了我需要的版本。