2

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

最初,THREE.OrbitControls在应用程序中使用,模型被正确旋转和移动。

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

4

1 回答 1

3

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

幸运的是,有一个scale属性VRControls应该用于调整 HMD 运动的规模。当我将其设置为 30 左右时,一切正常。

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

于 2016-01-21T13:41:04.160 回答