Unity2018相機遮擋剔除總結(Occlusion Culling)


一、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.在遮擋完成后,如果沒有看到任何東西被遮擋剔除在場景中,可以試着把場景中物體分成更小的部分,這樣它們就可以完全被包含在單元格中。

 

 官網簡述:https://blog.csdn.net/cangod/article/details/85164096?depth_1-utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1&utm_source=distribute.pc_relevant.none-task-blog-OPENSEARCH-1

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM