THREE.js使用OrbitControl在* dolly *之后不更新正交摄影机的位置

时间:2019-04-23 19:28:15

标签: three.js

我正在使用THREE.OrbitControls来 dolly 一个THREE.OrthographicCamera。但是,即使考虑到正交相机正确地呈现为重新定位,正交相机上所有正在更新的都是“缩放”属性。即使在调用camera.updateProjectionMatrix()之后。我是否需要根据更新的“缩放”属性手动更新摄像机的“位置”属性?玩完后,我想在UI中显示它的位置。

(请注意,这是我对其他问题的重写,THREE.js Orthographic camera position not updating after zoom with OrbitControl,我以为我正在使用OrbitControl进行缩放,但实际上是在玩弄。对此感到抱歉)。

1 个答案:

答案 0 :(得分:0)

用正向凸轮滚入/滚出效果不明显。使用正交凸轮时,由于没有视角,因此无法感知到接近。不管与镜头的距离如何,所有物体的尺寸都相同,因为投影光线都是平行的。您会注意到的唯一区别是,由于对象经过nearfar平面而被裁剪时。

enter image description here

因此,决定使用OrbitControls滚动会改变相机的zoom,缩小/缩小中心。

如果要强制相机移动至其焦点的更远/更近,则可以使用以下命令在z轴上向后/向前平移: camera.translateZ(distance);(-)的距离会使它靠近,而(+)的距离会使它离焦点更远。