Unity篇01:Camera 属性详解 - kudan-game/ArtArtist-Repo GitHub Wiki
本篇介绍Unity中Camera的各项数值及意义
在Unity中创建一个Camera后,除了默认带一个Transform组件外,还会附带Flare Layer、GUI Layer、Audio Listener等4个组件,如下图。
ClearFlags: 清除标记;决定屏幕中哪部分被清除。一般用于多台摄像机来描绘不同对象的情况,有以下三种模式。
Skybox:天空盒(默认项)。在屏幕空白处显示当前摄像机的天空盒,如果没有指定天空盒,则会显示默认背景色。
Solid Color:如果没有设置天空盒,将默认显示此处设置的背景色。
Depth only:仅深度,该模式用于对象不被裁剪。
Don't Clear:不清除,该模式不清楚任何颜色和或深度缓存,但这样做每帧渲染的结果都会叠加在下一帧之上。一般与自定义的Shader(着色器)配合使用。
重点说明下Depth only和Don't Clear。 1)、如下图所示:由于球被立方体挡住了,所以主摄像显示出来的只能是立方体
这时我希望,球能无论什么情况都要被渲染出来,这时就Depth only就可以了(这样可以保留球之外的物体),这里深度指的摄像机深度。首先给球和立方体建立不同Layer,然后我们再新建一个摄像机,选择Depth only。摄像机Depth数值大于刚刚主摄像机,设置Culling Mask单 单是球的layer。这样球就会出现在立方体的前面。这就是Depth only的功能了。再看小效果如下图:
也就是立方体是之前的相机渲染的,然后因为选择depth only,第二个相机的画面里只渲染了球体,其他区域为透明。 所以depth only指的是只渲染对象,对象之外的区域为透明,而摄像机的depth是摄像机渲染的顺序,越高的越靠后。
2)、Don't Clear先看看如下效果图。由于没有清除上一帧数据,所以我在向上拖得过程中,会留有残留的白色。
Culling Mask:剔除遮罩,根据对象所指定的层来控制渲染的对象。
Projection:投影方式,分为透视和正交。我们的使用正交
Field of view:视野范围(透视模式的参数)也就是摄像机大小
Clipping Planes:剪裁平面,摄像机的渲染范围。Near为最近的点,Far为最远的点。测试了一下,正交camera z轴坐标为-10,near取10以下即可,far多大都行
Normalized View Port Rect:标准视图矩形,用四个数值来控制摄像机的视图在屏幕中的位置及大小,该项使用屏幕坐标系,数值在0~1之间。
X 水平位置起点 Y 垂直位置起点 W 宽度 H 高度
Depth:深度 ,用于控制摄像机的渲染顺序,值大的摄像机将被渲染在较小值的摄像机之上。 这个参数可同Normalized View Port Rect做小地图,类似CF右上角的地图。
Rendering Path:渲染路径,设定摄像机的渲染方法。
Use Player Settings:使用Project Settings>Player中的设置
Vertex Lit:顶点光照,将所有的对象做为顶点光照对象来渲染。
Forward:快速渲染,摄像机将对所有对象按每种材质一个通道的方式来渲染。
DeferredLighting:延迟光照,先对所有对象进行一次无光照渲染,用屏幕空间大小的Buffer保存几何体的深度、法线以及高光强度,生成的Buffer将用于计算光照,同时生成一张新的光照信息Buffer。最后所有对象再次被渲染,渲染时叠加光照信息BUffer的内容,此功能只有收费版才支持。
Target Texture:目标纹理,也只有收费版才支持。
HDR:高动态光照渲染,用于启用摄像机的高动态范围渲染功能,因为人眼对的范围的光照强度更为敏感,所有用高动态范围渲染能让场景变得更为真实,光照的变化不会显得太突兀。