Unity-開始使用遮擋剔除
本頁介紹如何設(shè)置場景以進行遮擋剔除、烘焙遮擋剔除數(shù)據(jù)以及對結(jié)果進行可視化。
設(shè)置場景
在開始之前,請確定場景中所有要設(shè)定為靜態(tài)遮擋物 (Static Occluder)(這些游戲?qū)ο蟛粫苿?,但會阻擋后面的游戲?qū)ο螅┖挽o態(tài)被遮擋物 (Static Occludee)(這些游戲?qū)ο蟛粫苿樱珪混o態(tài)遮擋物遮擋)。一個游戲?qū)ο罂梢酝瑫r是靜態(tài)遮擋物和靜態(tài)被遮擋物。
適合作為靜態(tài)遮擋物的游戲?qū)ο蟀ㄖ行偷酱笮偷膶嶓w游戲?qū)ο螅ɡ鐗Ρ诨蚪ㄖ铮R辉O(shè)定為靜態(tài)遮擋物,游戲?qū)ο蟊仨殱M足以下條件:
具有?Terrain?或?Mesh Renderer?組件
不透明
在運行時不移動
請注意,如果使用了 LOD 組,則 Unity 會使用靜態(tài)遮擋物的基礎(chǔ)細節(jié)級別游戲?qū)ο?(LOD0) 來確定要遮擋的對象。如果游戲?qū)ο蟮妮喞?LOD0 和其他 LOD 級別之間變化很大,這個游戲?qū)ο罂赡懿贿m合設(shè)定為靜態(tài)遮擋物。
任何可能在運行時被遮擋的游戲?qū)ο蠖歼m合設(shè)定為靜態(tài)被遮擋物,包括小的或透明的游戲?qū)ο?。要被設(shè)定為靜態(tài)被遮擋物,游戲?qū)ο蟊仨殱M足以下條件:
具有任何類型的 Renderer 組件
在運行時不移動
確定了要設(shè)定為靜態(tài)遮擋物和靜態(tài)被遮擋物的游戲?qū)ο笾?,便可以設(shè)置場景。
選擇要設(shè)定為靜態(tài)遮擋物的所有游戲?qū)ο蟆?/p>
在 Inspector 窗口中,打開?Static Editor Flags?下拉菜單,然后選擇?Occluder Static。
選擇要設(shè)定為靜態(tài)被遮擋物的所有游戲?qū)ο蟆?/p>
在 Inspector 窗口中,打開?Static Editor Flags?下拉菜單,然后選擇?Occludee Static。
將一個攝像機添加到場景中并選擇該攝像機,或者選擇一個現(xiàn)有攝像機。 6.在 Inspector 窗口中,確保啟用了攝像機的?Occlusion Culling?屬性。
烘焙數(shù)據(jù)

在頂部菜單中,選擇?Window > Rendering > Occlusion Culling?以打開?Occlusion Culling 窗口。
選擇?Bake?選項卡。
在 Inspector 窗口的右下角,按?Bake?按鈕。Unity 會生成遮擋剔除數(shù)據(jù),將數(shù)據(jù)另存為項目中的資源,并將該資源與當前場景關(guān)聯(lián)。
對結(jié)果進行可視化

確保 Occlusion Culling 窗口和 Scene 視圖均為可見狀態(tài)。當 Occlusion Culling 窗口可見時,Unity 在 Scene 視圖中顯示遮擋剔除數(shù)據(jù)和 Occlusion Culling 彈出窗口。
在場景中選擇一個攝像機。
移動攝像機,觀察 Scene 視圖。當由于視錐體剔除或遮擋剔除而導(dǎo)致攝像機無法看到游戲?qū)ο髸r,您應(yīng)該會看到游戲?qū)ο髲囊晥D中消失。
使用 Scene 視圖中的?Occlusion Culling 彈出窗口來配置可視化設(shè)置。
如果需要,請調(diào)整 Occlusion Culling 窗口的?Bake?選項卡中的烘焙設(shè)置,然后重復(fù)烘焙過程。
如果使用的是內(nèi)置渲染管線,則可以使用 Scene 視圖模式?Overdraw_ 來查看正在發(fā)生的過度繪制數(shù)量,并可以使用 Game 視圖中的 Stats 面板來查看 Unity 正在渲染的三角形、頂點和批處理數(shù)量。