WebVR-为每只眼睛独立更新场景

时间:2018-12-14 08:02:57

标签: three.js webvr

我尝试实现一个场景,在该场景中,每只眼睛都以不同的方式更新对象(例如,我想为每只眼睛投射相反方向的盒子旋转。)

我有Google Developers tutorial中所述的使用Three.js用WebGL编写的演示应用程序。

但是只有一个场景,包含一个网格,具有单个更新功能。我找不到实现更新分离的方法,所以它是每只眼睛单独完成的(就像渲染完成一样),想知道是否有可能。

有人有类似案件的经历吗?

1 个答案:

答案 0 :(得分:1)

您的用例很不寻常(我可以说让人垂涎三尺),所以基本上答案是:Three.js已经抽象出了VR的左右眼二分法。在内部,它使用2个摄像头组成的阵列渲染场景,并具有正确的左/眼设置。

幸运的是,每个对象都有一个onBeforeRender(renderer, scene, camera, ...)事件。如果您钩住了该事件,并找到了一种区分左/右眼摄像机的方法,则应该能够在渲染之前修改方向。

(也许也是)一种区别相机的简单方法是使用计数器跟踪索引。