製作 3D 遊戲卻 Lag 到不行?Mesh Baker 幫到你



Unity Asset Store 工具「超速介紹」系列

先解釋一下為何 3A 大作都不會 Lag,我們製作的 3D 遊戲卻會。

在 Unity 遊戲的做法,CPU 會叫 GPU 去繪製一個 3D 物件,然後把這個流程重複很多遍並得出玩家們看到的最終畫面。其實除了 3D 物件外,諸如「背光」、「耶穌光」等後期加工(Post Processing),以及粒子效果 (Particle Effect) 都在這個過程中。

這裡展示一下自己製作的遊戲,可以看到裡面的樹是一棵一棵畫出來的。

可以看到 Batches 是 1221,在 GeForce 1050TI 的電腦已經吃不消。

Batches 的意思可以參考這裡:

Draw Call 理解和優化
draw call是openGL的描繪次數(directX沒怎麼研究,但原理應該差不多) 一個簡單的openGL的繪圖次序是:設定顏色→繪圖方式→頂點座標→繪製→結束。 每幀都會重複以上的步驟。這就是一次draw call…www.itread01.com

這時候就到 Mesh Baker 出場的時候:

Mesh Baker | Modeling | Unity Asset Store
Get the Mesh Baker package from Ian Deane and speed up your game development process. Find this & other Modeling…assetstore.unity.com

把整個場景拉入 Mesh Baker,如下圖:

Mesh Baker 的原理是仿製一個 Mesh 去表達所有你選取了的 Mesh。就好像你打開 Blender,把場景原本的每棵樹砌好放在原來的位置,製作出一個包含這些元素的全新的 Mesh。

因為它並沒過問背後的渲染技術,因此 urp、srp 和 hdrp 皆適用。

這樣做的好處是,裡面的樹變成一次過繪製。

Batches 變成 416, GeForce 1050TI 都可以暢順運行了。

希望這次「超速介紹」幫到你優化 3D 遊戲。


有賴以下 patron,使這篇文章得以出現:

遊物語
Furion Mashiou
Robert Chan
fuzzyBB
inquisitor
Joshua Fong
JC Leung
Michael Cheung
Eric Chan
Chung Panda Lau
cyrus333e
William Chong
tsz fung hui

感謝你們!


支持我們

如果各位想支持我們創作遊戲,或者推動業餘創作文化,請付費訂閱 Patreon,一起讓事情成真:

Firepillar2 火柱工作室 is creating games for gamers | Patreon
各位好,這裡是火柱工作室,我們是香港的獨立遊戲工作室。Hello everyone, we’re Firepillar2, a Hong Kong indie game development…www.patreon.com

(訂閱 Patreon 可以更快看到新文章哦~)

最後,如果你想踏進遊戲創作的領域,只是不知從何開始,又或者想幫忙建立業餘遊戲圈子,歡迎電郵至 simonbut711@gmail.com 或者到 discord 找我(Simon_But_畢子#2353)。

Join the 業餘遊戲公社 Discord Server!
Check out the 業餘遊戲公社 community on Discord — hang out with 453 other members and enjoy free voice and text chat.discord.com

https://firepillar2.com/media/383c8376be08ca21e5e5da7e845a3018