ASTC在Unity中的使用

ASTC是什么?

简单来说,ASTC是GPU上支持解压的一种压缩格式,相对于jpg、png作为CPU上支持解压的压缩格式。

ASTC和PNG有什么区别?

如果使用jpg、png这种图片格式送显会消耗带宽,尤其是高分辨率。例如,1080*1920png来说,送显的步骤,png先解压为rgba,其解压后的数据1080*1920*4.然后这些数据送到GPU去渲染。

而ASTC格式直接将原数据送到GPU后再解压显示,CPU和GPU之间传送的数据少很多。

在Unity中经测试,一张1344*768的jpg图片转成同分辨率astc8*8的图片,其在硬盘占用的数据由261KB变成了375KB,虽然硬盘占用变大了,但是加载显示二者在内存中占用相差近20倍。jpg图片加载到内存的大小是13MB,astc图片加载内存的大小是0.7MB。

硬盘占用 内存占用
jpg 261KB 13MB
astc 375KB 0.7MB

数据量变少有什么优点? 

首先省去CPU解码步骤,加载到内存更快。另外,和网络中的带宽一样,CPU和GPU之间带宽有限,传输的数据减少会更通畅。CPU需要处理的数据减少,功耗也会降低,游戏中图片资源处理是大头。

最终表现就是画面更流畅。

你可能感兴趣的:(unity,unity,游戏引擎)