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