
【使用方法】
我們?cè)陧?xiàng)目開發(fā)的時(shí)候經(jīng)常會(huì)大量使用大規(guī)模的Mesh,導(dǎo)致Draw Call過高。而Mesh Baker扮演了網(wǎng)格烘焙器的角色,其工作原理是將網(wǎng)格和材質(zhì)合并,從而降低渲染的Draw Call。Texture Packing
我們常常會(huì)遇到角色網(wǎng)格相似,但是紋理繁雜細(xì)碎的情況。這時(shí)我們需要把紋理合并在同一張圖上。紋理拼合的操作面板如下圖所示:選擇不同的網(wǎng)格來拼合,Texture Baker自動(dòng)分析其Shader,Size等屬性,最后點(diǎn)擊Bake Material Into Combined Material,即可完成拼合。

Mesh Batching
在紋理拼合后已經(jīng)形成為一張圖片了,這時(shí)候我們需要進(jìn)行Mesh拼合,即使用Mesh Baker來烘焙網(wǎng)格。在此,我們新建一個(gè)新的GameObject,點(diǎn)擊Bake就把3個(gè)Mesh烘焙在一個(gè)Object上了。

同時(shí),在進(jìn)行了這兩步之后,我們會(huì)發(fā)現(xiàn)Draw Call上的變化。
合并前

合并后

unity游戲插件Mesh Baker
不難發(fā)現(xiàn),合并前12個(gè)Draw Call,合并后只有2個(gè),從而在一定程度上降低渲染壓力。
對(duì)Skinned Mesh進(jìn)行拼合
Unity引擎無法原生支持蒙皮網(wǎng)格的Draw Call Batching,而Mesh Baker能將多個(gè)Skinned mesh合并。

unity游戲插件Mesh Baker
經(jīng)過合并后,人物的材質(zhì)已經(jīng)相同,所以我們能在上圖中看到這些角色只產(chǎn)生了一個(gè)Draw Call。同理,即使再加入更多的角色也能合并成非常少的Draw Call,從而減少渲染耗時(shí)。
除此之外, Mesh Baker還支持將Mesh Renderer與Skinned Mesh Renderer一起合并。比如開發(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容器中。


































