本篇文章是关于 Three.js 三维空间的观察,相机的概述。

在Threejs中相机的表示是 THREE.Camera,它是相机的抽象基类,其子类有两种相机,分别是正投影相机 THREE.OrthographicCamera 和透视投影相机 THREE.PerspectiveCamera ,区分二者也很简单:透视投影有近大远小的特征,即同一个物体在远处一定是比在近处看的小的。而正投影,学习机械建筑的同学都知道,三视图嘛,远近比例是一致的。

透视投影相机

这是今天主要介绍的对象。从生活经验来说,透视投影是更符合我们视觉的投影。横看成岭侧成峰,远近高低各不同。构造函数如下:

1
PerspectiveCamera( fov, aspect, near, far )

说明:

  • 1、视角fov:这个官方解释是: Camera frustum vertical field of view, from bottom to top of view, in degrees. Default is 50. 有种理解是:fov代表眼睛睁开的角度,即,视角的大小,如果设置为0,相当你闭上眼睛了,所以什么也看不到,如果为180,那么可以认为你的视界很广阔,但是在180度的时候,往往物体很小,因为他在你的整个可视区域中的比例变小了。另外,人类的正常视角是120度左右,但是要集中注意力看清楚东西,那么眼睛的视角在30-40度比较好。视角越大,中间的物体越小,这是因为,视角越大,看到的场景越大,那么中间的物体相对于整个场景来说,就越小了。
  • 2、近平面near:近值是指立方体离相机最近的点到相机的距离n的范围。也可以认为是眼睛距离近处的距离,不要设置为负值。

  • 3、远平面far:远值这是指立方体中心到相机的距离s。

  • 4、纵横比aspect:实际窗口的纵横比,即宽度除以高度。相机大小和渲染器尺寸要相等,否则就会变形,做好自己更改下参数看下效果。

(To be continued)