【发布时间】:2014-10-31 12:10:21
【问题描述】:
我有一个大的 2D 平面平面,我一直在使用相机的 Z 位置(PerspectiveCamera)放大和缩小(TrackballControls 有)。
我最近在我的 DAT GUI 控件中添加了 camera.fov 来使用它,发现我可以使用 0 到 180 的范围来完全放大和缩小我的场景。
我应该使用哪种方法以及为什么?
已编辑:
有多种方法可以让物体看起来离相机越来越近:
- 移动对象的位置(对象太多,所以不要使用这个 一)
- 移动相机的位置
- 更改相机的 fov 属性
- 更改相机的缩放属性
为了能够使用鼠标滚轮平滑滚动进出包含大型几何图形(数百万个顶点)的场景,是否有理由不应该或应该使用上述方法之一其他人?
【问题讨论】:
-
您也可以使用
camera.zoom( 2 ); camera.updateProjectionMatrix();很遗憾,您的问题是基于意见的。 -
改变缩放似乎改变了视野 - github.com/mrdoob/three.js/blob/master/src/cameras/…
-
所有道路都指向改变 fov 值,但这与 TrackballControls 配合得不好。一旦你放大到足够远然后尝试平移,这些动作就不会考虑你现在有多近,所以平移就像你更远了
-
当然,因为你和以前一样远,所以你的位置没有改变,只有相机的投影。 (与现实生活中放大某物时相同,并且您必须非常小心或使用三脚架以免照片模糊)我想您可以通过修改控件并使用一个因素来减慢平移等来调整这种情况. 根据变焦距离。无论如何,您正在回答自己的问题,因为更改 FoV 似乎不是您想要做的,因此您可以移动相机或转到 FoV 并调整控件以补偿投影。
标签: three.js perspectivecamera