三分鐘瞭解LOD在遊戲裏面的運用

LOD爲Levels of Detail的簡稱,簡單來說即爲多細節層次,不少朋友經常聽到這個名稱,但是並不知道如何把這個技術運用在遊戲裏面,如果用百度查到的說法是:LOD技術指根據物體模型的節點在顯示環境中所處的位置和重要度,決定物體渲染的資源分配,降低非重要物體的面數和細節度,從而獲得高效率的渲染運算。

以上的解釋可能很多人看了是一頭霧水,還是不瞭解LOD的實際運用,以下讓我們通過一個簡單的案例來說明LOD的巧妙之處。

我們使用了3dsmax來說明LOD模型的製作,下載附件後打開場景文件,裏面是三個面數不同的油桶造型,由左到右分別代表了高模,一般與低模的模型結構。

1.png 


選擇左邊的油桶模型,如圖所示,這個模型的數據爲三角面712,頂點數358。

2.png 


選擇右邊的模型,這個低模的數據很符合我們的要求,一般來說,用三個模型來製作LOD的效果就很足夠了,例如建築場景裏面,最遠端的房子只能看到類似盒子的效果,而鏡頭前面的樓房則是可以清楚的看到裏面的許多細節,但是鏡頭推進到遠處的樓房時,原來的盒子立即換成另一個可以戰勝細節的模型,這個就是LOD的運作原理。

3.png 


將模型保存爲FBX後,導入Unity進行測試,命名的方式建議是在物件的後面加上LOD的層級代號,這樣比較方便我們直接用名稱來選擇高模與低模。

4.png 


在製作LOD之前,我們需要注意一個事情,那就是將不同面數的模型放在同一個位置,否則會發生模型位置錯亂的情況,如圖所示,使用Reset方式將中間的模型與低模移到與高模相同的位置。

5.png 
6.png 


接着建立一個空的Game Object,將其命名爲prop_Barrell,我們準備用在這個空組件上面添加LOD的屬性。

7.png 


選擇Component > Rendering > LODGroup,然後就可以對LOD開始進行設置的工作。

8.png 


在LODGroup的設置裏面列出了LOD的層級,底下的Add用來添加LOD所對應的模型,操作方法是先選擇LOD : 0,按下Add,選擇場景裏面的prop_barell_LOD0模型。

9.png 


系統彈出一個提示,詢問是否將這個選擇的模型設置子物體,選擇Yes,Reparent即可。

10.png 


如圖所示,在選擇Reparent後,LOD0的模型自動的設置爲prop_Barell的子物件。

11.png 


設置完成LOD:0的層級後,選擇LOD:1,按下Add,選擇場景內的prop_barell_LOD1,接着選擇LOD:2,按下Add,選擇prop_barell_LOD2後即可完成整個LOD的設置。

12.png 


現在滑動LODGroup上方的相機圖標來測試LOD的效果,模型在近處時使用的是LOD0所設置的高模,移到LOD1時則是顯示爲一般進度的模型,而在LOD3的層級時,模型就換爲低模,移到最後的Culled插件,模型已經完全的消失了。

13.png 
14.png 
15.png 


此外,我們還可以任意的修改每一個層級的作用範圍,只要拖動LOD分隔的線段即可,然後再根據相機的預覽來調整出最合適的LOD效果。

16.png 

Unity的資源商店也提供了功能更爲強大的LOD設置插件,以下爲試用版的位置,如果是用於商業項目,請支持正版。

Smart LOD 1.0 - 大場景的優化神器
http://www.narkii.com/club/thread-320869-1.html


更多的技術交流與分享請加入:
納金網Unity技術交流羣 - 218689657
納金網3dsmax技術交流羣 - 284146304
發佈了100 篇原創文章 · 獲贊 91 · 訪問量 208萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章