遊戲的Draw Calls是什麼

ii_chengzi發表於2020-06-18

Draw Calls是什麼?

Draw Call僅僅是一條指令。Draw Call指令從CPU傳到GPU,渲染一個網格。指令只指向一個被渲染的網格並且不包含任何材質資訊。渲染就是在做一個巨大數量的小任務,比如計算成千上萬的頂點和在螢幕上繪製以百萬計的畫素。每個用不同的材料的網格都需要一個單獨的Draw call。

那接下來我們用unity本身自帶的工具來實現。

首先新建一個專案,匯入四張圖片。並將其轉換成 Sprite精靈。

遊戲的Draw Calls是什麼

把四張圖片新增到場景中,適當合理佈局,執行場景,開啟 Game 視窗的 Stats,此時的 Batches為6,由於 Main Camera、平行光 和四張 Sprite的存在,所以為6。

遊戲的Draw Calls是什麼

在頂部選單欄 Window - Sprite Packer,點選開啟,由於Unity高版本已經禁用該功能(似乎Sprite Altas 代替),進行設定,使用 Sprite Packer 該功能。

遊戲的Draw Calls是什麼
遊戲的Draw Calls是什麼

設定為always Enabled

遊戲的Draw Calls是什麼

選中四張 Sprite,把他們的 Packing Tag 統一設定為 myTextures(名字隨意取),便於後面打包到在一起。

遊戲的Draw Calls是什麼

使能Sprite Packer功能之後,再次頂部選單欄 Window - Sprite Packer,點選開啟,點選 pack,即可把四張圖打包在一起。

遊戲的Draw Calls是什麼

再次執行場景,場景中的遊戲物體依然是之前的6個,但是Batches已經變為3了,具體如下圖,是由於 Sprite Packer,把四張Sprite圖,打包在一起的緣故,如果更多的Sprite打包,效能最佳化效果更明顯。

遊戲的Draw Calls是什麼

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31543790/viewspace-2699309/,如需轉載,請註明出處,否則將追究法律責任。

相關文章