Unity3d Camera的Clear Flags、Culling Mask和Depth三個屬性的理解
阿新 • • 發佈:2019-01-29
先說說 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拍攝的東西。