Unity3d Camera的Clear Flags、Culling Mask和Depth三个属性的理解

时间:2024-03-23 13:00:09

先说说 Clear Flags:

Skybox:把颜色缓冲设置为天空盒,并完全清空深度缓冲
Solid:和天空盒一样,只是把颜色缓冲设置为纯色
Depth only:这个选项会保留颜色缓冲,但会清空深度缓冲
Don’t Clear:不清除任何缓冲
这个给我的感觉就是,空(没有物体)的部分用什么来填充,如果是Skybox,就用天空盒填充,如果是Solid,就用纯色填充,如果是Depth only取决于其他相机的深度,未渲染部分显示什么由深度小于本摄像机的内容来决定。
下面放几张图片作为例子:

我们通过看Scene的右下角的Camera Preview来看相机拍摄的场景。

 Skybox:

Unity3d Camera的Clear Flags、Culling Mask和Depth三个属性的理解

Solid:

Unity3d Camera的Clear Flags、Culling Mask和Depth三个属性的理解 

改变下Solid的背景颜色,发现Camera Preview背景颜色变了:

Unity3d Camera的Clear Flags、Culling Mask和Depth三个属性的理解 

Depth Only:
这是Main Camera的属性,Depth为-1。

Unity3d Camera的Clear Flags、Culling Mask和Depth三个属性的理解 

 这是Camera属性,Depth为0,Clear Flags为Depth only:

Unity3d Camera的Clear Flags、Culling Mask和Depth三个属性的理解

 运行,发现,Camera物体以外的地方全部是Main Camera所拍摄的。

Unity3d Camera的Clear Flags、Culling Mask和Depth三个属性的理解

取消Main Camera,发现只剩下Camera能拍摄到的东西。

Unity3d Camera的Clear Flags、Culling Mask和Depth三个属性的理解 

 

关于Culling Mask 

Culling Mask是按层(即GameObject.layer)选择性的渲染部分场景。
当我们Culling Mask是Everything的时候,Scene右下角的Camera Preview会把背景也显示。

Unity3d Camera的Clear Flags、Culling Mask和Depth三个属性的理解 

但当我们把Culling Mask设置为只显示UI层的时候,背景这时候就不会显示在此Camera中了。

Unity3d Camera的Clear Flags、Culling Mask和Depth三个属性的理解 

 关于Depth

Depth决定相机在渲染顺序上的深度,具有较低深度的相机将在较高深度的相机之前渲染。
而如果把Main Camera的Depth设置为2(大于等于Camera的Depth):可以发现,运行后只能看到Main Camera拍摄的东西。

Unity3d Camera的Clear Flags、Culling Mask和Depth三个属性的理解 

————————————————
版权声明:本文为CSDN博主「toupiOfRivia」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/toupiofrivia/article/details/71250076