Unity Camera Clear Flags

今天对Camera的Clear Flags 各个参数进行分析,懂的原理:

通过设置Camera的Clear Flags参数,在摄像机进行渲染前,对颜色缓冲及深度缓冲,进行不同控制操作。

Skybox :清除颜色缓冲和深度缓冲,没有物体遮挡的背景,用天空盒子填充。

Solid Color :清除颜色缓冲和深度缓冲,没有物体遮挡的背景,用 Camera 的另一个属性Background的颜色填充。

Depth Only:只清除深度缓存。

Don't Clear:颜色缓冲和深度缓冲都不清除。

在Unity中建一个场景,创建两个摄像机CubeCamera、SyphereCamera,一个专门渲染Cube,一个专门渲染Sphere,设置CubeCamera的Depth为3,SyphereCamera的depth为2。Unity中,depth大的后渲染。

摆放Cube、Sphere、CubeCamera、SyphereCamera位置如下:



1.设置SyphereCamera的Clear Flags为Solid Color,Background为蓝色,设置CubeCamera的Clear Flags为Solid Color,Background为黄色:

因为SyphereCamera先渲染,会先渲染球体,背景颜色为蓝色。CubeCamera的Clear Flags为Solid Color,要渲染之前会先把颜色缓冲跟深度缓冲都清除,然后渲染到屏幕上是Cube,背景颜色是黄色。

2.设置SyphereCamera的Clear Flags为Solid Color,Background为蓝色,设置CubeCamera的Clear Flags为Depth Only,Background为黄色:

因为SyphereCamera先渲染,会先渲染球体,背景颜色为蓝色。CubeCamera的Clear Flags为Depth Only,要渲染之前先把深度缓存清除,而颜色缓存不会清楚,因为深度缓冲都被清除了,Cube的深度直接写入到深度缓存中,Cube就会把与Syphere重合的地方覆盖掉。,背景颜色是蓝色。结果如下:



3.设置SyphereCamera的Clear Flags为Solid Color,Background为蓝色,设置CubeCamera的Clear Flags为Don't Clear,Background为黄色:

因为SyphereCamera先渲染,会先渲染球体,背景颜色为蓝色。CubeCamera的Clear Flags为Don't Clear,在渲染前不会清除颜色缓存和深度缓存,这样Cube被Sphere遮挡的部分,因为深度测试不通过,不会显示出来。背景颜色为蓝色。结果如下:

  


其他情况,读者可以自己试验一下。。。

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值