《Unity性能優(yōu)化》系列課程筆記——第貳節(jié)
2022年1月25日 第貳講 Model導(dǎo)入設(shè)置檢查與優(yōu)化
DCC中模型導(dǎo)出
統(tǒng)一單位
導(dǎo)出的網(wǎng)格必須是多邊形拓?fù)渚W(wǎng)格,不能是貝塞爾曲線、樣條曲線、NURBS、NURMS、細(xì)分曲面等
烘培Deformers,在導(dǎo)出之前,確保變形體被烘培到網(wǎng)格模型上,如骨骼形變烘培到蒙皮權(quán)重上
不建議模型使用到的紋理隨模型導(dǎo)出
如果你需要導(dǎo)入blend shape normals,必須要指定光滑組smooth groups
DCC導(dǎo)出面板設(shè)置, 不建議攜帶場(chǎng)景信息導(dǎo)出,如不建議導(dǎo)出攝像機(jī)、燈光、材質(zhì)等信息,因?yàn)檫@些的信息與Unity內(nèi)默認(rèn)都不同。除非你自己為某DCC做過(guò)自定義導(dǎo)出插件。
Unity 支持多種標(biāo)準(zhǔn)和專有模型文件格式(DCC)。Unity 內(nèi)部使用 .fbx 文件格式作為其導(dǎo)入鏈。最佳做法盡可能使用 .fbx 文件格式,并且不應(yīng)在生產(chǎn)中使用專有文件格式。
優(yōu)化原始導(dǎo)入模型文件,刪除不需要的數(shù)據(jù)
Unity模型導(dǎo)入流程

原始模型文件對(duì)性能的影響點(diǎn)
最小化面數(shù),不要使用微三角形,分布盡量均勻
合理的網(wǎng)絡(luò)拓?fù)浜推交M
盡量少的使用材質(zhì)個(gè)數(shù)
盡可能少的使用蒙皮網(wǎng)格
盡可能少的骨骼數(shù)量
FK與IK節(jié)點(diǎn)沒(méi)分離,IK節(jié)點(diǎn)沒(méi)刪除
模型優(yōu)化
盡可能的將網(wǎng)格合并到一起,
盡可能使用共享材質(zhì)
不要使用網(wǎng)格碰撞體
不必要不要開(kāi)啟網(wǎng)格讀寫
使用合理的LOD級(jí)別
Skin Weights受骨骼影響個(gè)過(guò)多
合理壓縮網(wǎng)格
不需要rigs和BlendShapes盡量關(guān)閉
如果可能,禁用法線或切線
多套模型
資源檢查報(bào)告——FBX部分問(wèn)題解讀
其中兩項(xiàng)建議與模型動(dòng)畫有關(guān),而測(cè)試項(xiàng)目中所有模型資源都不涉及動(dòng)畫,可以將Rig標(biāo)簽下的Animation Type設(shè)置為None,并關(guān)閉Animation標(biāo)簽下的Import Animations選項(xiàng),設(shè)置Materials標(biāo)簽中的Material Creation Mode為None.
開(kāi)啟Project Settings——>Player——>Optimization下的Vertex Compression與Optimize Mesh Data選項(xiàng)
優(yōu)化成果
包體大小前后沒(méi)變化,依然是544.6M
運(yùn)行時(shí)模型內(nèi)存優(yōu)化前為422.9M,優(yōu)化后為400.5M,相差的22M來(lái)自于運(yùn)行時(shí)CombinedMesh開(kāi)銷的節(jié)省。后期運(yùn)行時(shí)模型資源優(yōu)化才是我們的重點(diǎn)。