我尝试实现一个场景,在该场景中,每只眼睛都以不同的方式更新对象(例如,我想为每只眼睛投射相反方向的盒子旋转。)
我有Google Developers tutorial中所述的使用Three.js用WebGL编写的演示应用程序。
但是只有一个场景,包含一个网格,具有单个更新功能。我找不到实现更新分离的方法,所以它是每只眼睛单独完成的(就像渲染完成一样),想知道是否有可能。
有人有类似案件的经历吗?
答案 0 :(得分:1)
您的用例很不寻常(我可以说让人垂涎三尺),所以基本上答案是:Three.js已经抽象出了VR的左右眼二分法。在内部,它使用2个摄像头组成的阵列渲染场景,并具有正确的左/眼设置。
幸运的是,每个对象都有一个onBeforeRender(renderer, scene, camera, ...)
事件。如果您钩住了该事件,并找到了一种区分左/右眼摄像机的方法,则应该能够在渲染之前修改方向。
(也许也是)一种区别相机的简单方法是使用计数器跟踪索引。