TexturePacker
TexturePacker 是一款圖片編輯打包工具吓妆,可將多個圖片資源打包為一張大圖鹅心,這樣加載圖片不僅能節(jié)省空間储狭,而且可提升速度。
大部分游戲引擎底層的渲染方式都是基于OpenGL释移,但OpernGL載入紋理圖片時所用內(nèi)存會自動擴(kuò)張到2的n次方簇秒。
例如一張圖片大小為10x10像素,OpenGL會按照16x16的規(guī)格將圖片載入到內(nèi)存秀鞭,若圖片大小為64x65趋观,那么會按照64x128載入會造成內(nèi)存的不必要開銷。
圖片格式有RGBA8888锋边、RGBA4444皱坛、RGBA5555、RGB888等豆巨。假如使用的圖片格式為RGBA8888剩辟,也就是說圖片每個像素都是由R、G往扔、B贩猎、A4個值組成,每個值占8位萍膛。一個像素點(diǎn)占用8bit*4=32bit=4bytes吭服,圖片大小為64*65時按照64*128載入,此時會造成64*(128-65)*4bytes=16128bytes=15.75KB的內(nèi)存空間浪費(fèi)蝗罗,而整張圖片大小只有64*65*4/1024=16.25KB艇棕。
所以在游戲開發(fā)使用圖片資源時蝌戒,要盡量保證圖片的大小在接近且不大于2的整數(shù)倍。理想狀態(tài)下沼琉,若每張圖片的長寬恰好是2的n次方的值北苟,就不會有任何浪費(fèi)了。