一、unity裁剪包括視錐裁剪和遮擋裁剪。
什么是視錐裁剪?
視錐裁剪就是禁用在相機觀察區域之外的對象渲染,但不會禁用通過“過度繪制(overdraw)”隱藏的任何對象。(注意:當使用遮擋剔除時,仍然可以從視錐剔除中獲益。)
(圖一)
(圖二)
什么是遮擋剔除?
遮擋剔除是使對象在被其它物體遮擋,沒有被相機看到時關閉渲染功能。
(圖一)
(圖二)
二、步驟概覽
1.創建場景
2.設置遮擋物(OccluderStatic)和被遮擋物(OccludeeStatic)的狀態(static)
3.烘焙場景
1>首先把遮擋剔除創空打開(Window/Rendering/Occlusion Culling)
如果在Object頁上,選擇了有MeshRenderer組件的對象,可以修改相關的Static標記.
如果在Object頁上,選擇了有OcclusionArea組件的對象,可以修改相關的OcclusionArea屬性.(1.在對象上添加OcclusionArea屬性Component/Rendering/OcclusionArea。2.注意:當相機在遮擋區域之外時,將不應用遮擋剔除。設置遮擋區域以覆蓋攝像機可能出現的位置是很重要的,但是過大的遮擋區域會在烘焙過程中產生成本。)
2>遮擋剔除-烘焙
遮擋剔除烘焙窗口有一個“設置默認參數(Set Default Parameters)”按鈕,它允許重置烘焙值到Unity的默認值。
最小遮擋物(Smallest Occluder):在進行遮擋剔除時可用來隱藏其它對象的最小對象大小。任何小於此大小的對象都不會遮擋掉其它對象。
最小的洞(Smallest Hole):該值表示攝像機應該通過幾何圖形看到的最小間隙。
背面閾值(Backface Threshold):Unity的遮擋使用了一個數據大小的優化,通過測試背面來減少不必要的細節。默認值100是最合適的,從不刪除背面的數據集。如果值為5,則會根據具有可見性背面的位置來大幅減少數據。通常情況下,有效的相機位置不會看到很多背面滴。
3>在底部的烘焙頁是清除(Clear)和烘焙(Bake)按鈕。單機烘焙按鈕開始生成遮擋剔除數據。一旦生成數據,可以使用可視化(Visualization)選項卡預覽和測試遮擋剔除。如果對結果不滿意,單擊清除按鈕刪除之前計算的數據,調整設置,然后再次烘焙。
4.在遮擋完成后,如果沒有看到任何東西被遮擋剔除在場景中,可以試着把場景中物體分成更小的部分,這樣它們就可以完全被包含在單元格中。