Unity场景优化工具:Mesh Baker 基础教程(贴图篇)
目錄
前言
一、Mash Baker是什么?
二、使用步驟
1.打開場景
2.將Texture Baker添加到場景中
3.使用Texture Baker生成貼圖集
4.烘焙新的模型并使每個模型獨立
總結
前言
模型貼圖整合是3D游戲中美術資源優化的重要環節,我們通常把多個模型的貼圖集成到一張2048大小的貼圖集中,以達到減少貼圖和材質球的數量來節省資源。但是面對成百上千的模型,紋理貼圖,法線貼圖,高光貼圖等等,每種貼圖集合成大圖,再分別對一次UV,結果是累死,各種貼圖還未必對得上位置……,那使用 Mesh Baker 我們可以批量自動拼合貼圖并映射UV,大多數工作只需在 Unity 中來完成,免去在三維軟件中手動調整UV的煩惱。話不多說,上教程。
使用后:多個模型共用一個材質球,使用一張大貼圖(圖片來源網絡) 使用前:一個模型對應一個材質球,使用一張小貼圖(圖片來源網絡)一、Mash Baker是什么?
Mash Baker?用于 Unity 有優化模型場景的一種工具,該工具是為了解決場景模型數量過多導致運行時產生較高的DrawCall而創建的。
以下是官方的對于這款插件的介紹。
提高性能!結合網格和材料以減少批量! Mesh Baker 是一個強大的工具包,具有靈活的非破壞性工作流程,用于優化道具和場景。 Unity 最著名的優化工具。自 2012 年以來的五星級支持和更新。
* 為道具組創建圖集或紋理數組
* 在大型復雜場景中查找、分組和組合網格
* 修改道具預制件以使用圖集材料
* 支持 URP、HDRP、標準管道
* 適用于內置和自定義著色器
* 為使用色調的材料創建地圖集
* 支持多種材質的道具
* 處理平鋪紋理
* 結合自定義并向蒙皮網格添加道具
* 創建可定制的蒙皮網格角色
* 將蒙皮網格與混合形狀相結合
* UV、法線、切線自動調整
*光照貼圖支持
*混合搭配靈活的工作流程工具
* 運行時 API
二、使用步驟
1.打開場景
如果導入的模型都集中在世界原點,這將不利于我們后面的操作,我們需要把模型分開 分開放置,方便我們后續的操作2.將Texture Baker添加到場景中
如果你已經在項目中導入了Mesh Baker插件則在Unity菜單欄中找到以下路徑來添加場景組件
GameObject > Create Other > Mesh Baker > TextureBaker and Mesh Baker?
這將在Hierarchy窗口中生成一個名為TextureBaker對象可以看到這款插件的功能非常強大,此篇主要是講貼圖的優化,所以選擇TextureBaker and Mesh Baker 是我們適用的功能。
3.使用Texture Baker生成貼圖集
讓我們選中Hierarchy窗口中的TextureBaker組件,我們可以看到右側inspector窗口中有著許多復雜的設置,請不用擔心,我將在實踐中介紹他們的作用。
?我們先進行操作的是MB3_Texture Baker (Script)里的參數,所以讓我們把MB3_ Mesh Baker Grouper (Script)折疊起來。下圖是對插件功能的解釋說明。
?選中我們要導入的場景對象,拖放到圖中的添加窗口欄。
為了方便我們一次導入所有,我們先給它打個組,之后只拖它的父對象即可,這里我將父對象命名為Building?先在Hierarchy中高亮選擇TextureBaker組件,然后直接按住父對象(Building)拖放到inspector中的對象添加窗口。
?對象導入后,我們需要繼續進行MB3_Texture Baker (Script)的設置,由于對象過多,我們直接折疊列表。
這些選項的理解是我看了官方教程后的總結,解釋不正確還請反饋我們首先點擊Create Empty Assets For Combined Material 這將給我們的貼圖集和共享材質提供一個存放位置并且會自動生成一個貼圖和材質。
讓我們在Project中找到我們所保存的路徑,看看發生了什么。?
?這里我是用標準著色Standard
?之后讓我們回到TextureBakery的Inspector中,我們可以看到,在Texture Baker Result(存放結果的地方)自動填上了剛才生成的文件,此外Combined Mesh Material 中也自動填上了新生成的材質球。
?點擊過后,根據對象的數量,及其復雜程度,我們需要等待個十幾、幾十秒,甚至是分鐘!讓插件來合并貼圖。我建議一次不要搞太多以防萬一(雖然到目前我還沒遇到過崩潰的情況)。
恭喜你,你已經成功一半了4.烘焙新的模型并使每個模型獨立
MB3_Texture Baker (Script)的使用到這里就結束了,我們在Inspector面板中將它折疊。并展開
MB3_ Mesh Baker Grouper (Script),你可以看到又是一大堆參數設置,請不要煩惱,在這里我們并不需要做很多改動。接下來我將對部分設置進行解釋。
?首先我們要使每個子對象都可以獨立選擇并移動變換,我們先看上圖黃色框內找到Cluster Type(集群類型),切換為Agglomerative這個選擇使按照物體本身來劃分,最適合我們。然后我們點擊Click To Build Clusters按鈕來構建集群。
?這個時候你在Scene窗口仔細觀察,會發現模型被一圈圈的曲線包裹,這類似于碰撞網格一樣的東西,每一個被包裹的將會分到一個組內,成為一個獨立的模型。
?現在的包裹曲線數量并不多,我需要每個模型都有自己的包裹曲線,這樣每個模型就是一個組,以達到獨立模型子對象的目的。這個時候我們可以看到有個滑塊叫Max Distance(最大距離)我們將他調至最左,在滑動的過程中,觀察場景中包裹曲線的變化。
?這個時候我們需要生成一個記錄分組信息的組件,在烘焙時插件會讀取該組件的分組信息,來進行烘焙分組。我們將inspectior面板滾動到最底部,點擊Generate Mesh Bakers,如果跳出提示我們點擊OK即可。此時在Hierarchy面板中會多出一個名字超長的組件,這就是用來記錄分組信息的組件,我們不用管它。此時我們接著點擊Bake All Child MeshBakers(烘焙所有子對象)。
?在Hierarchy窗口中,你會多出來很多對象,沒錯,這就是我們烘焙出來的新對象。目前這些對象與原對象處于重疊狀態,我們將它拖出來。選擇名稱為0結尾的Mesh按住Shift再點擊最后一個Mesh將其全部選中。在Scene窗口中將他移動與原對象分開。
?插件生成的對象幾乎和我們原對象一樣!烘焙出來的對象有些反光,這是因為我們沒有調整材質球的Smoothness,我們將它歸零。此時我們隨便點擊一個對象并在Inspectior中查看它所使用的材質球,不出所料,使用的正是我們新生成的材質球,我們再選擇其他對象查看,使用的也是相同的材質球
恭喜,整個新生成的對象所使用的材質都是同一個,這達到了我們的目的!
總結
以上就是使用Mesh Baker批量合并貼圖的基礎教程,本文僅僅簡單介紹了Mesh Baker中Texture Baker功能的使用,而Mesh Baker的強大之處不僅僅只有這些。有關更多Mesh Baker的介紹可以前往官方論壇進行查看。
論壇
油管官方教程
資料參考:3D美術資源優化—材質貼圖篇
總結
以上是生活随笔為你收集整理的Unity场景优化工具:Mesh Baker 基础教程(贴图篇)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: steam进社区显示服务器错误,Stea
- 下一篇: c#实现权限设置