Version: 2020.2
可编程渲染管线 SRP Batcher
使用多个摄像机

摄像机

Unity 场景是通过在三维空间中放置并移动对象来创建的。由于观察者的屏幕是二维屏幕,因此需要通过一种方法来捕捉视图并将其“平面化”以进行显示。该过程通过__摄像机__完成。

摄像机是在场景空间中定义视图的对象。该对象的位置定义了视点,而其向前 (Z) 轴和向上 (Y) 轴分别定义了视图方向和屏幕顶端。摄像机组件还定义了视图中区域的大小和形状。通过设置这些参数,摄像机能够显示其在当前屏幕上“观察”到的内容。当摄像机对象移动和旋转时,显示的视图会随之移动和旋转。

透视和正交摄像机

在透视模式(左)和正交模式(右)下显示的同一场景
在透视模式(左)和正交模式(右)下显示的同一场景

现实世界中的摄像机(实际相当于人眼)在观察外界事物时,物体距离视点越远,看起来越小。这种众所周知的_透视_效果在艺术和计算机图形领域广泛应用,对于创建现实场景至关重要。当然,Unity 支持透视摄像机,有时需要专门在没有这种效果的条件下渲染视图。例如,需要创建一种与真实世界的对象不完全相同的地图或信息显示效果。显示的对象不随距离变远而缩小的摄像机称为正交摄像机;Unity 摄像机也有这样的选项。在透视和正交模式下观察场景称为摄像机投影。(上述场景来自于 BITGEM

被观察区域的形状

对于从当前位置能“观察”的最远距离方面,透视和正交摄像机都存在一定的限制。该限制由垂直于摄像机向前 (Z) 方向的平面定义。此平面称为远裁剪面,因为与摄像机距离较远的对象将被“裁剪”(即,不在渲染范围内)。摄像机附近还有一个相应的近裁剪面;可观察的距离范围位于这两个平面之间。

在非透视模式下,无论距离远近,对象大小不变。这表示,正交摄像机的视体由两个裁剪面之间的长方体定义。

使用透视摄像机时,对象会随其与摄像机的距离增大而缩小。这表示场景中可视部分的宽度和高度随着距离的增大而增大。因此,透视摄像机的视体不是一个长方体,而是金字塔形状,其顶点位于摄像机位置而底部位于远裁剪面。不过,该形状并不是严格的金字塔形,因为顶部被近裁剪面截断了;这种被截断的金字塔形状称为平截头体。由于平截头体的高度并非常量,平截头体由其宽度与高度之比(称为宽高比)以及顶部与底部之间在顶点处的夹角(称为视野即FOV)定义。请参阅关于了解视锥体的页面,了解更多详细说明。

可编程渲染管线 SRP Batcher
使用多个摄像机