如何使用WebVR制作THREE.Mesh体积?

时间:2016-01-20 23:34:24

标签: javascript three.js oculus webvr

我正在努力将现有的three.js项目移植到WebVR + Oculus Rift。基本上,这个应用程序将STL文件作为输入,基于它创建THREE.Mesh并在空场景上呈现它。我设法让它在Firefox Nightly中使用VREffect插件到three.js和VRControls。我遇到的一个问题是在VR中渲染的模型并不是3D。也就是说,当我来回移动HMD时,活动的3D模型不会越来越近,我看不到模型的不同侧面。看起来模型相当于贴在其位置上的平坦背景图像。如果我将THREE.AxisHelper添加到场景中,则在移动HMD时会正确转换它。

最初,应用程序中使用了THREE.OrbitControls,模型已旋转并正确移动。

有相当多的源代码,所以我会根据需要发布一些代码段。

1 个答案:

答案 0 :(得分:3)

事实证明,技术上没有问题。问题主要在于我的模型和Oculus运动的不同尺度。当VRControls与默认设置一起使用时,它会报告HMD从Oculus读取的位置,以米为单位。因此,我的头部运动范围几乎不能超过1米,而我的模型的平均尺寸大约是几十个自己的单位。当我在同一个场景中完全使用它们时,就像观察者是一只看着巨型模型的蚂蚁。当然,蚂蚁必须走一段时间才能看到模型的另一面。这就是为什么它看起来不像3D机身。

幸运的是,scale的{​​{1}}属性应该用于调整HMD移动的比例。当我把它设置为大约30时,一切都很好。

感谢@brianpeiris的评论,我决定再次检查模型和相机的坐标,以确保它们不会相互编织。并且,它使我找到了解决方案。