我正在努力将现有的three.js项目移植到WebVR + Oculus Rift。基本上,这个应用程序将STL文件作为输入,基于它创建THREE.Mesh
并在空场景上呈现它。我设法让它在Firefox Nightly中使用VREffect插件到three.js和VRControls。我遇到的一个问题是在VR中渲染的模型并不是3D。也就是说,当我来回移动HMD时,活动的3D模型不会越来越近,我看不到模型的不同侧面。看起来模型相当于贴在其位置上的平坦背景图像。如果我将THREE.AxisHelper
添加到场景中,则在移动HMD时会正确转换它。
最初,应用程序中使用了THREE.OrbitControls
,模型已旋转并正确移动。
有相当多的源代码,所以我会根据需要发布一些代码段。
答案 0 :(得分:3)
事实证明,技术上没有问题。问题主要在于我的模型和Oculus运动的不同尺度。当VRControls
与默认设置一起使用时,它会报告HMD从Oculus读取的位置,以米为单位。因此,我的头部运动范围几乎不能超过1米,而我的模型的平均尺寸大约是几十个自己的单位。当我在同一个场景中完全使用它们时,就像观察者是一只看着巨型模型的蚂蚁。当然,蚂蚁必须走一段时间才能看到模型的另一面。这就是为什么它看起来不像3D机身。
幸运的是,scale
的{{1}}属性应该用于调整HMD移动的比例。当我把它设置为大约30时,一切都很好。
感谢@brianpeiris的评论,我决定再次检查模型和相机的坐标,以确保它们不会相互编织。并且,它使我找到了解决方案。