MipMap與LOD是何物?

MipMap與LOD是何物?

LOD:模型金字塔

LOD:全稱Level Of Detail,中文翻譯“細節級別漸變”,顧名思義,不同的級別展示不同的細節,那麼究竟這個技術是如何運用在遊戲項目中的呢?通過例子我們來學習一下。關於爲什麼要使用這個技術,和遊戲優化是密不可分的,使用這個技術可以減少需要處理的模型頂點數目,降低GPU性能瓶頸的風險。

原理:當模型離攝像機(可以是人物攝像機或其他攝像機)很遠時,然後根據距離的遠近使用不同模型級別,遠的時候就選擇低級別的模型,近的時候選擇高細節模型,這樣就可以減少模型上面的頂點和麪片數量從而提高性能。

準備:準備三個相同的模型,但是這三個模型他們的三角面和頂點數都不同,這樣就可以代表三種從高—中—低的層級。(由於沒有找到模型資源,所以這裏我們使用最能體現GPU性能消耗的particle特效來做,rate分別是20,10,5)

首先在層次面板創建一個EmptyGo,命名爲TestLOD,對你找來的三個模型以“...LOD01”(結尾序號表示層級)命名,最後全部拖放到TestLOD下,記住記住,這三個物體位置要全部相同。



接下來選擇TestLOD,添加LODGroup組件,添加完事的組件面板應該如圖:


常用參數詳解:

FadeMode:這個表示模型級別變化時候的過渡方式

LOD 0 ..:細節級別,百分比表示攝像機的可見範圍(範圍可調)

接下來我們運行遊戲,在場景視圖中我們手動拖動主攝像機,打開profile(性能分析器),可以看到在不同距離的時候,GPU的性能參數有明顯的不同:

(後)


(前)


其中綠線就表示批處理數目,明顯發現後面的批處理數目降低了一個,藍線表示pass數目,pass數目也降低了一個,後面的頂點數也將低了0.1k。爲什麼要強調這個?因爲我們優化就是從減少DrawCall開始的,減少DrawCall需要使用批處理技術開始的。


MipMap:紋理貼圖金字塔

正如上面所說,mipmap針對的是紋理貼圖,大白話就是,一個模型身上會有貼圖,當我們對這個貼圖使用了MipMap技術之後,那麼在遊戲運行中這個模型的貼圖會根據攝像機距離模型的遠近而調整不同的不同質量的貼圖顯示。

在這個遊戲場景中,我們給一個模型貼了一個木紋貼圖,當我們沒有對這個貼圖使用MipMap技術的時候,無論我們攝像機距離模型的位置在哪,這張貼圖永遠都是顯示一樣的,這樣是完全沒有必要的,我們使用這個技術就是爲了讓當攝像機比較遠的時候,你用在精細的貼圖我們玩家也看不見,而且還浪費資源,提高了性能瓶頸。




上面就是我們沒有對貼圖使用MipMap技術,然後測試的結果,那當我們使用了MinMap技術之後,結果又會是什麼樣子的呢?

發現圖片大小變大了,這是因爲我們使用MipMap技術之後,會對這個貼圖生成八張精度質量不同的貼圖,所以內存佔用變大了。

所以關於這個技術是否使用,根據你的項目而定,什麼都是有利有弊的。




工程下載地址:

鏈接:http://pan.baidu.com/s/1nv6UcHj 密碼:odeo

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章