- 源图片的格式不影响它在unity内所占用的内存,实际上导入unity的时候,会根据TextureImporter设置进行重新编码。
- 源图片的格式会影响最终导出的AssetBundle大小,但是并不是图片多大,导出的就是多大,仅仅是有利于压缩。(?),一张50kb的低质量jpg,只有在dxt1 并且use crunch compress的情况下,才能接近jpg本身的大小。
测试bmp,jpg,png,tga(compress)导入Unity时的内存,导出AssetBundle的资源大小
测试资源:1280720,只有24bit的RGB颜色。 (1byte = 8bit, size: 1280720*3byte = 2764kb)
name | texture import setting | 资源大小(KB) | 内存dxt1(MB) | AssetBundle (KB) |
---|---|---|---|---|
bmp16 | none | 1801 | 2.6 | 47 |
bmp24 | none | 2701 | 2.6 | 116 |
bmp32 | none | 3601 | 3.5 | 119 |
jpg_quality0 | none | 19 | 2.6 | 23 |
jpg_quality10 | none | 55 | 2.6 | 118 |
png | none | 135 | 2.6 | 118 |
tga16 | none | 155 | 2.6 | 47 |
tga24 | none | 575 | 2.6 | 118 |
tga32 | none | 726 | 2.6 | 118 |
bmp16 | normal | 1801 | 0.45 | 36 |
bmp24 | normal | 2701 | 0.45 | 45 |
bmp32 | normal | 3601 | 0.9 | 50 |
jpg_quality0 | normal | 19 | 0.45 | 12 |
jpg_quality10 | normal | 55 | 0.45 | 46 |
png | normal | 135 | 0.45 | 46 |
tga16 | normal | 155 | 0.45 | 36 |
tga24 | normal | 575 | 0.45 | 46 |
tga32 | normal | 726 | 0.45 | 46 |
bmp16 | high | 1801 | 0.9 | 56 |
bmp24 | high | 2701 | 0.9 | 121 |
bmp32 | high | 3601 | 0.9 | 109 |
jpg_quality0 | high | 19 | 0.9 | 17 |
jpg_quality10 | high | 55 | 0.9 | 121 |
png | high | 135 | 0.9 | 122 |
tga16 | high | 155 | 0.9 | 56 |
tga24 | high | 575 | 0.9 | 121 |
tga32 | high | 726 | 0.9 | 122 |
- 注1:虽然源图片是不带alpha的,然而导出选项是32位的bmp格式纹理还是被编码成RGBA 32bit了。
- 注2:pc平台下,texture import setting的low和normal都是使用dxt1压缩方式,所以就不列low选项的数据了,和normal一致。
- 注3:jpg_quality0,jpg_quality10的数字表示导出质量选项。