1. 程式人生 > >Unity3d Camera的Clear Flags、Culling Mask和Depth三個屬性的理解

Unity3d Camera的Clear Flags、Culling Mask和Depth三個屬性的理解

先說說 Clear Flags:

Skybox:把顏色緩衝設定為天空盒,並完全清空深度緩衝
Solid:和天空盒一樣,只是把顏色緩衝設定為純色
Depth only:這個選項會保留顏色緩衝,但會清空深度緩衝
Don’t Clear:不清除任何緩衝
這個給我的感覺就是,空(沒有物體)的部分用什麼來填充,如果是Skybox,就用天空盒填充,如果是Solid,就用純色填充,如果是Depth only取決於其他相機的深度,未渲染部分顯示什麼由深度小於本攝像機的內容來決定。
下面放幾張圖片作為例子:

我們通過看Scene的右下角的Camera Preview來看相機拍攝的場景。

Skybox:
這裡寫圖片描述


Solid:
這裡寫圖片描述
改變下Solid的背景顏色,發現Camera Preview背景顏色變了:
這裡寫圖片描述
Depth Only:
這是Main Camera的屬性,Depth為-1。
這裡寫圖片描述
這是Camera屬性,Depth為0,Clear Flags為Depth only:
這裡寫圖片描述
執行,發現,Camera物體以外的地方全部是Main Camera所拍攝的。
這裡寫圖片描述
取消Main Camera,發現只剩下Camera能拍攝到的東西。
這裡寫圖片描述

關於Culling Mask

Culling Mask是按層(即GameObject.layer)選擇性的渲染部分場景。
當我們Culling Mask是Everything的時候,Scene右下角的Camera Preview會把背景也顯示。
這裡寫圖片描述


但當我們把Culling Mask設定為只顯示UI層的時候,背景這時候就不會顯示在此Camera中了。
這裡寫圖片描述

關於Depth

Depth決定相機在渲染順序上的深度,具有較低深度的相機將在較高深度的相機之前渲染。
而如果把Main Camera的Depth設定為2(大於等於Camera的Depth):可以發現,執行後只能看到Main Camera拍攝的東西。
這裡寫圖片描述