TexturePacker
TexturePacker 是一款图片编辑打包工具,可将多个图片资源打包为一张大图,这样加载图片不仅能节省空间,而且可提升速度。
大部分游戏引擎底层的渲染方式都是基于OpenGL,但OpernGL载入纹理图片时所用内存会自动扩张到2的n次方。
例如一张图片大小为10x10像素,OpenGL会按照16x16的规格将图片载入到内存,若图片大小为64x65,那么会按照64x128载入会造成内存的不必要开销。
图片格式有RGBA8888、RGBA4444、RGBA5555、RGB888等。假如使用的图片格式为RGBA8888,也就是说图片每个像素都是由R、G、B、A4个值组成,每个值占8位。一个像素点占用8bit*4=32bit=4bytes,图片大小为64*65时按照64*128载入,此时会造成64*(128-65)*4bytes=16128bytes=15.75KB的内存空间浪费,而整张图片大小只有64*65*4/1024=16.25KB。
所以在游戏开发使用图片资源时,要尽量保证图片的大小在接近且不大于2的整数倍。理想状态下,若每张图片的长宽恰好是2的n次方的值,就不会有任何浪费了。