一、纹理格式的基础知识
1.图片格式
图片格式一般指我们从美术工具中导出的文件格式,用于在磁盘中存储的格式;如jpg,png,tga等;
2.纹理格式
文件格式是图像为了存储信息而使用的编码方式,但是他不能被CPU所识别,GPU的特性是做向量运算;因此这些文件被游戏读入时还需要CPU解压成R8G8B8等像素格式,再传送到GPU端使用;而在运行时做解压无疑是非常耗的,所以一般在图片源文件导入时就会为其生成纹理格式的文件。
纹理格式是可以被GPU所识别的像素格式,可以被快速寻址采样。
但是直接使用这种纹理格式会导致资源的加载时间长、内存占用大的问题,尤其在移动平台上更加明显,因此,为了解决这个问题,就出现了压缩纹理格式;
3.纹理压缩格式
Unity支持许多图片格式的源文件,但是3D图形的实时渲染中不会用这些格式,3D图形硬件要求纹理以专门格式进行压缩,这些格式对快速纹理采样进行了优化,DXT,ETC等压缩纹理格式可以在游戏运行中无需CPU解压就被GPU直接采样。每个不同的平台和设备都有自己的专有格式,因此在选择压缩方式时需要考虑兼容性。
Unity文档中给出了所有支持的纹理压缩格式(https://docs.unity3d.com/cn/2018.4/Manual/class-TextureImporterOverride.html):
这里简单归纳一下,不做一一阐述: