Mesh Baker是一款為unity引擎提供的游戲場(chǎng)景優(yōu)化插件,這款插件相當(dāng)于一個(gè)網(wǎng)格烘焙器,其工作原理是將網(wǎng)格和材質(zhì)合并,從而降低渲染的Draw Call。用戶(hù)可同時(shí)使用此插件,降低大量貼圖對(duì)內(nèi)存的消耗,從而達(dá)到提升游戲的效能,是專(zhuān)門(mén)為unity游戲開(kāi)發(fā)人員打造的3D游戲場(chǎng)景優(yōu)化神器。
插件特色:
結(jié)合網(wǎng)格和材料,以減少繪制調(diào)用,F(xiàn)在包括它自己的紋理包裝器!
固定模型和創(chuàng)建地圖集,這樣他們就可以分享材料(靜態(tài)/動(dòng)態(tài)配料)
導(dǎo)入模型中的縮放、旋轉(zhuǎn)和平移
與任何材質(zhì)和材質(zhì)一起使用
全多材料支持
結(jié)合和自定義皮膚網(wǎng)格
貼圖,法線(xiàn),切線(xiàn),自動(dòng)調(diào)整
烤平鋪紋理
全光照貼圖支持
源資產(chǎn)未觸及
簡(jiǎn)單,沒(méi)有腳本,在5分鐘內(nèi)學(xué)習(xí)
運(yùn)行API
可以處理負(fù)縮放
使用說(shuō)明
我們?cè)陧?xiàng)目開(kāi)發(fā)的時(shí)候經(jīng)常會(huì)大量使用大規(guī)模的Mesh,導(dǎo)致Draw Call過(guò)高。而Mesh Baker扮演了網(wǎng)格烘焙器的角色,其工作原理是將網(wǎng)格和材質(zhì)合并,從而降低渲染的Draw Call。
Texture Packing
我們常常會(huì)遇到角色網(wǎng)格相似,但是紋理繁雜細(xì)碎的情況。這時(shí)我們需要把紋理合并在同一張圖上。紋理拼合的操作面板如下圖所示:選擇不同的網(wǎng)格來(lái)拼合,Texture Baker自動(dòng)分析其Shader,Size等屬性,最后點(diǎn)擊Bake Material Into Combined Material,即可完成拼合。
Mesh Batching
在紋理拼合后已經(jīng)形成為一張圖片了,這時(shí)候我們需要進(jìn)行Mesh拼合,即使用Mesh Baker來(lái)烘焙網(wǎng)格。在此,我們新建一個(gè)新的GameObject,點(diǎn)擊Bake就把3個(gè)Mesh烘焙在一個(gè)Object上了。
同時(shí),在進(jìn)行了這兩步之后,我們會(huì)發(fā)現(xiàn)Draw Call上的變化。
合并前
合并后
不難發(fā)現(xiàn),合并前12個(gè)Draw Call,合并后只有2個(gè),從而在一定程度上降低渲染壓力。
對(duì)Skinned Mesh進(jìn)行拼合
Unity引擎無(wú)法原生支持蒙皮網(wǎng)格的Draw Call Batching,而Mesh Baker能將多個(gè)Skinned mesh合并。
經(jīng)過(guò)合并后,人物的材質(zhì)已經(jīng)相同,所以我們能在上圖中看到這些角色只產(chǎn)生了一個(gè)Draw Call。同理,即使再加入更多的角色也能合并成非常少的Draw Call,從而減少渲染耗時(shí)。
除此之外, Mesh Baker還支持將Mesh Renderer與Skinned Mesh Renderer一起合并。比如開(kāi)發(fā)中常用到的道具如帽子、劍等,使得角色在換裝時(shí)也只產(chǎn)生一個(gè)Draw Call,非常實(shí)用。
在使用skinnedmesh時(shí)有幾個(gè)注意點(diǎn):
合并后將原始模型的Bone保持Active;
Disable原始模型的Skinned Mesh Renderer;
確保原始的Animation始終在運(yùn)行;
如果需要Mesh Rendering與Skinned Mesh 一起合并,則需要保證在其在同一張Texture Atlas和Mesh容器中。
注意事項(xiàng):
1、mesh baker軟件會(huì)掃描出當(dāng)前場(chǎng)景中使用了相同材質(zhì)球的Mesh分類(lèi)顯示
2、這個(gè)時(shí)候就可以和美術(shù)溝通,用了一個(gè)Shader的材質(zhì)球是否可以考慮合并到其他材質(zhì)球里面,在確保美術(shù)效果一樣的前提,不行的話(huà)就不需要合并這個(gè)Mesh了
3、此合并工具最好建議手動(dòng)合并,因?yàn)閁3D 雖然會(huì)將標(biāo)記為靜態(tài)物體的Mesh進(jìn)行自動(dòng)合并,但是本身合并的過(guò)程就是一個(gè)計(jì)算量很大的過(guò)程,經(jīng)過(guò)我們測(cè)試,讓U3D自己合并的效率要低于用MB合并成一個(gè)MESH 的效率。此類(lèi)手動(dòng)合并適用于場(chǎng)景中的雜物,比較多的物體,例如廢墟、磚塊、雜草、非常多的細(xì)小的Mesh但是有非常多的那種