我有两个不同的threejs场景,每个场景都有自己的相机.我可以使用相应的TrackballControls实例单独控制每个相机.
有没有一种可靠的方法将这些控件"锁定"或"绑定"在一起,以便操纵一个控制器会导致相同的相机在另一个中重新定位?我目前的方法是将change控件添加到控件中并更新两个摄像头以进行更改,但这不是很整洁,因为,对于一个控件,两个控件都可以立即更改(由于阻尼).
Mar*_*fuß 10
我相信如果您将第二台摄像机的矩阵设置为第一台摄像机的值并禁用两台摄像机的自动矩阵更新,它应该可以工作:
camera2.matrix = camera1.matrix;
camera2.projectionMatrix = camera1.projectionMatrix;
camera1.matrixAutoUpdate = false;
camera2.matrixAutoUpdate = false;
Run Code Online (Sandbox Code Playgroud)
但现在您需要在renderloop中手动更新矩阵:
camera1.updateMatrix();
Run Code Online (Sandbox Code Playgroud)
该呼叫将采取的值position,rotation和scale(即已经由控制更新),并将它们组成为camera1.matrix,其每分配之前也被用来作为基质的第二照相机.
然而,这感觉有点hacky并且可能导致各种各样奇怪的问题.我个人可能更喜欢你已经实施的更明确的方法.
问题是为什么你甚至使用两个相机和控件实例?只要相机未添加到场景中,您就可以使用相同的相机渲染两个场景.
| 归档时间: |
|
| 查看次数: |
559 次 |
| 最近记录: |