我应该使用视野或相机的z位置进行放大/缩小吗?



我有一个大的二维圆平面,我一直在使用相机的Z位置(透视相机)放大和缩小(TrackballControls也有)。

我最近将camera.fov添加到我的DAT GUI控件中,用它来玩,发现我可以使用0到180的视野范围来完全放大和缩小我的场景。

我应该使用哪种方法,为什么?

编辑:

有多种方法可以让物体看起来离相机越来越近:

  • 移动对象的位置(对象太多,所以不使用一)
  • 移动相机的位置
  • 更改相机的fov属性
  • 更改相机的缩放属性

为了能够使用鼠标滚轮在包含大型几何体(数百万个顶点)的场景中平滑滚动,是否有理由不应该或应该使用上述方法之一而不是其他方法?

好吧,如果你改变相机的位置,你根本没有缩放,你只是把它移得更近或更远。

使用"视野"变量进行缩放,但如果达到极值,这通常与失真有关。

因此,这取决于您的应用程序需要什么。如果失真是可以的,并且你真的需要"放大"的感觉,你应该选择相机的FoV变量。如果您需要避免失真并希望放大,您应该更好地沿着"相机的lookAt矢量"移动。然后,你可以决定是在"缩放"时移动相机目标,还是在相机靠近目标(也称为焦点)时放慢相机移动速度。只需使用适合您的用例的内容。

也许有一些有趣的东西:

http://blog.tartiflop.com/2008/08/understanding-zoom-focus-and-field-of-view-in-papervision3d/

放大/缩小有两种方法。将摄影机移近/移远到对象,或者将对象移近/移动远到摄影机。你选择哪一个只取决于你想做什么。所以,如果你在一个城市,你想看得离汽车更近,那么你不会移动这个城市。但如果你正在检查东西(不同的型号),那么最好移动相机。(也许不是很好的例子)。

  • 移动相机的位置=最佳选项,因为它更兼容具有交互
  • 更改相机的fov属性=如果你想"放大"这个词的真正含义,尽管不起作用与TrackballControls配合良好
  • 更改相机的缩放属性=实际上会影响fov值

最新更新