Unity通过摄像机来实现将三维游戏对象捕获并将其平面化显示到二维屏幕这一过程。主要通过Camera Component来实现这一功能,所以Unity中摄像机的创建都是通过Camera Component来实现的。
Camera组件
先看看摄像机组件在Inspector中支持的属性设置。Unity Camera Inspector会根据当前项目使用的渲染管线(Render-Pipeline)来显示不同的属性。
使用通用渲染管线(URP)
使用高清渲染管线(HDRP)
使用内置渲染管线,Unity会显示以下属性:
ClearFlag,确定将清除屏幕的哪些部分。(在使用多摄像机来绘制不同元素时会非常方便)
Background,在绘制视图中的所有元素之后但没有天空盒的情况下,应用于剩余屏幕部分的颜色。
Culling Mask,剔除蒙版,包含或忽略要由摄像机渲染的对象层。在检视面板中将层分配到对象。
Projection,模拟透视功能,不同的视图会有不同的设置选项,具体如下:
Perspective,透视视图,摄像机将按透视角度渲染对象,有近大远小的特点;
- FOV Axis,摄像机视野轴,有以下两个值:
- Horizontal,摄像机使用水平视野轴;
- Vertical,摄像机使用垂直视野轴;
- Field of View,摄像机视角(沿视野轴的的度数)
- Physical Camera,物理相机,勾选后可为摄像机启用该属性,该属性支持模拟真实物理相机的属性,具体有:
- Focus Length,设置摄像机传感器和摄像机镜头之间的距离(以毫米为单位)。较小的值产生更宽的 Field of View,反之亦然。更改此值时,Unity 会相应自动更新 Field of View 属性。
- Sensor Type,设置模拟物理相机传感器的类型,更新后,下面的Sensor size的x、y值会自动更新
Sensor Size
,模拟传感器的大小,有x和y两个值,可以自己设定,淡然选定Sensor Type后这个会自动更新到合适的值;- Length Shift,略;
- Gate Fit,略;
- FOV Axis,摄像机视野轴,有以下两个值:
Orthographic,正交视图,摄像机将均匀暄软对象,无透视感。正交模式下不支持延时渲染,始终是向前渲染;
Size,正交视图事业的大小(仅正交模式下游这个属性)
注意:摄像机高度,Game视图的显示比例决定宽度;
Clipping Planes,直译为裁剪的平面,其实指的就是摄像机渲染的范围,有一个最近值Near(相对摄像机最近绘制点)和最远值Far(相对摄像机最远绘制点)
Viewport Rect,视口范围,显然是一个方位,由x、y、width、height决定;
Depth,摄像机在绘制顺序中的位置。具有更大值的摄像机将绘制在具有更小值的摄像机之上。
Rendering Path,定义摄像机将使用的渲染方法的选项。
Use Player Settings,使用 Player Settings 中设置的任何渲染路径 (Rendering Path);
Vertex Lit,所有对象都将渲染为顶点光照对象。
Forward, 每种材质采用一个通道渲染所有对象。
Deferred Lighting,将在没有光照的情况下一次性绘制所有对象,然后在渲染队列末尾一起渲染所有对象的光照。
注意:如果摄像机的投影模式设置为 Orthographic,则会覆盖该值,并且摄像机将始终使用前向渲染。
Target Texture,将摄像机视图渲染内容输出到指定的渲染纹理。设置此引用将禁用此摄像机的渲染到屏幕功能。
Occlusion Culling,为此摄像机启用遮挡剔除 (Occlusion Culling)。遮挡剔除意味着隐藏在其他对象后面的对象不会被渲染,例如,如果对象在墙后面。请参阅遮挡剔除 (Occlusion Culling) 以了解详细信息。
Allow HDR,用高动态范围渲染。
Allow MSAA,启用多重采样抗锯齿。
Allow Dynamic Resolution,启用动态分辨率渲染;
Target Display,定义要渲染到的外部设备。值为 1 到 8 之间。
摄像机组件,