Unity社區(qū)博主帶你學(xué)習(xí)多細(xì)節(jié)層次技術(shù)LOD的實(shí)用技巧

來源:Unity官方平臺(tái)
作者:Unity官方平臺(tái)
時(shí)間:2022-12-14
3460
LOD是非常常用的游戲優(yōu)化技術(shù)。通過精度不同建模,在鏡頭離該物體近的時(shí)候使用精度高的建模展示細(xì)節(jié),在鏡頭離得遠(yuǎn)的時(shí)候放上精度較低的建模來加快整體場(chǎng)景的渲染速度。即根據(jù)攝像機(jī)與物體距離,Unity會(huì)自動(dòng)切換模型,從而達(dá)到性能優(yōu)化的目的。

Unity社區(qū)大咖,帶你學(xué)習(xí)多細(xì)節(jié)層次技術(shù)(Level Of Detail,以下簡(jiǎn)稱LOD)。

LOD是非常常用的游戲優(yōu)化技術(shù)。通過精度不同建模,在鏡頭離該物體近的時(shí)候使用精度高的建模展示細(xì)節(jié),在鏡頭離得遠(yuǎn)的時(shí)候放上精度較低的建模來加快整體場(chǎng)景的渲染速度。即根據(jù)攝像機(jī)與物體距離,Unity會(huì)自動(dòng)切換模型,從而達(dá)到性能優(yōu)化的目的。

優(yōu)缺點(diǎn):高效率優(yōu)化GPU,但是因?yàn)橥惶啄P托枰獪?zhǔn)備多個(gè)(高中低)模型,所以內(nèi)存占用會(huì)增多,相當(dāng)于用內(nèi)存換取減輕GPU性能負(fù)擔(dān),提高GPU效率,從而達(dá)到一個(gè)高效率的渲染效果。

官方文檔:https://docs.unity3d.com/Manual/LevelOfDetail.html

LOD維基:https://zh.wikipedia.org/wiki/細(xì)節(jié)層次

實(shí)戰(zhàn)應(yīng)用

快速學(xué)會(huì)基礎(chǔ)配置

嚴(yán)格設(shè)定命名規(guī)則,為了統(tǒng)一管理資源和識(shí)別使用,模型名稱高中低:_LOD0、_LOD1、_LOD2,Culled(模型在場(chǎng)景消失),數(shù)字序號(hào)最低,復(fù)雜程度越高。

設(shè)置層次細(xì)節(jié)組,定義一個(gè)空對(duì)象,添加LODGroup組件。

拖拽不同精度的模型在LODGroup組件對(duì)應(yīng)級(jí)別上(高精度:LOD0(相機(jī)最近顯示)、中精度:LOD1、低精度:LOD2)

640.gif

Project Settings中與LOD組件相關(guān)參數(shù)

640.png

LOD Bias:LOD的偏移值,預(yù)先設(shè)置的【LOD百分比】/Lod Bias=當(dāng)前LOD的百分比,當(dāng)設(shè)置?個(gè)最?效果,如果Lod Bias數(shù)值越?時(shí),那么【LOD百分比】越小,此時(shí)兼容的物體越遠(yuǎn),這時(shí)細(xì)節(jié)不變。

在真實(shí)的環(huán)境中這樣理解,在?配置機(jī)器上,設(shè)置了高畫質(zhì),并設(shè)置對(duì)應(yīng)的Lod Bias非常大,那么物體的細(xì)節(jié)就不會(huì)根據(jù)攝像機(jī)距離進(jìn)?變化,反之設(shè)置低配置時(shí),Lod Bias設(shè)置越小,那么細(xì)節(jié)變化就會(huì)非常明顯。

Maximum LOD Level:最大LOD級(jí)別,表示游戲中使用的最高LOD級(jí)別。在該級(jí)別以上的模型不會(huì)被使用,并且在編譯時(shí)忽略。(這將節(jié)省存儲(chǔ)空間和內(nèi)存空間)。

學(xué)會(huì)在Unity Shader中設(shè)置LOD

Shader會(huì)有一個(gè)LOD值,每個(gè)SubShader有一個(gè)LOD值,當(dāng)SubShader的LOD值小于此Shader的LOD值時(shí),SubShader才能工作。默認(rèn)情況下一個(gè)Shader允許的LOD層級(jí)是無限大的,也就是只要硬件支持的Shader就可以工作。并且也可以利用Shader的細(xì)節(jié)表現(xiàn)提升游戲的性能。

Shader的LOD可以使用Shader.maximumLOD來控制單獨(dú)的Shader,也可以使用Shader.globalMaximumLOD控制全局所有的Shader。

在SubShader中可以使用LOD命令指定不同的LOD屬性,所以可以通過代碼動(dòng)態(tài)修改某一個(gè)Shader的LOD(注意:當(dāng)游戲運(yùn)行修改Shader LOD,結(jié)束游戲后保存Shader在LOD中,所以我們?cè)谟螒蛐薷木褪且脤?shí)際的Shader資源,并且當(dāng)Shader代碼被修改重新編譯,LOD值也會(huì)被重置)

ShaderLad為子著色器指定LOD值:

https://docs.unity3d.com/cn/current/Manual/SL-ShaderLOD.html

640 (1).png

參數(shù)Fade Mode(淡化模式)

640 (2).png

LOD優(yōu)化策略

我們都知道一套好的LOD系統(tǒng)需要美術(shù)在資源上做大量的資源分級(jí)工作,同時(shí)需要程序搭建完善的LOD框架和輔助工具,每增加一個(gè)功能模塊都需要把LOD考慮進(jìn)來。并且在一般情況,我們還需要根據(jù)手機(jī)機(jī)型的不同采用不同的渲染LOD。如安卓系統(tǒng)低端機(jī)上使用更為簡(jiǎn)單的材質(zhì),從而來降低低端設(shè)備的GPU壓力。

基礎(chǔ)LOD使用原則:

精度復(fù)雜物體(面數(shù)高、頂點(diǎn)數(shù)高)需應(yīng)用LOD

遠(yuǎn)景物件適用

大面積重復(fù)的物體適用

確定項(xiàng)目的LOD分檔,細(xì)節(jié)模塊分級(jí):

640 (3).png

三方資源優(yōu)秀分享

1,按需制作LOD,自動(dòng)生成LOD插件:

PolyFew、MantisLODEditor、UltimateLODSystemMT

2,自動(dòng)生成LOD插件AutoLod:

https://assetstore.unity.com/packages/tools/utilities/autolod-impostors-199759

3,自動(dòng)生成LOD插件(Github):

https://github.com/manaporkun/Automatic-LOD-Generator

4,自動(dòng)減面工具:

https://github.com/huailiang/lod

5,草、樹(地形)LOD生成:

https://github.com/Tiggilyboo/UnityQuadTreePlanet

6,地形生成:

https://github.com/barrettotte/Terrain-Generation-Study

7,在Unity中加載Max3D文件:

https://github.com/ProjSEED/Unity-3mx

立即登錄,閱讀全文
原文鏈接:點(diǎn)擊前往 >
文章來源:Unity官方平臺(tái)
版權(quán)說明:本文內(nèi)容來自于Unity官方平臺(tái),本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
優(yōu)質(zhì)服務(wù)商推薦
更多
掃碼登錄
打開掃一掃, 關(guān)注公眾號(hào)后即可登錄/注冊(cè)
加載中
二維碼已失效 請(qǐng)重試
刷新
賬號(hào)登錄/注冊(cè)
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家