纹理压缩格式整理(持续更新)

纹理压缩格式整理(持续更新)`

为什么用纹理格式?

      自GPU诞生以来,开发人员一直试图将更大更好的纹理塞进内存。有时这需要更多的RAM,但更多时候是通过本地支持压缩纹理格式来实现的。纹理压缩的目的是减少数据的大小,同时尽量减少对视觉质量的影响。内存通与CPU共享,因此内存是稀缺资源。受制于移动数据慢,设备存储空间小等因素。传输更小的数据非常重要。除了空间,还有电力的使用。纹理小可以在很多地方节能。包括从存储器读取,解包解压缩或转码步骤,写入内存,以及在渲染过程中读取数据。

  Unity支持常见的图像格式导入纹理文件(如JPG、 PNG、PSD、TGA),但3D图形硬件(显卡或移动设备)求纹理用专门的格式进行压缩,这些格式针对快速纹理采样进行了优化,每个平台都有自己不同的专有格式。以下是纹理压缩的格式。

* Alpha8 (ios)

* R 8(ios )

* R 16 bit(ios)

* RGB 16 bit(ios)

* RGB 24 bit(ios)

* RGBA 16 bit(ios)

* RGBA 32 bit(ios)

* RGBA Half(ios)

* RGB9e5 32 bit Shared Exponent Float(ios)

* RGB Compressed PVRTC 2 bits(ios)

* RGB Compressed PVRTC 4 bits(ios)

* RGBA Compressed PVRTC 2 bits(ios)

* RGBA Compressed PVRTC 4 bits(ios)

* R Compressed EAC 4 bit(ios)

* RG Compressed EAC 8 bit(ios)

* RGB Compressed ETC 4 bits(ios)

* RGB Compressed ETC2  4 bits(ios)

* RGBA Compressed ETC2  8 bits(ios)

* RGB +1-bit Alpha Compressd ETC2 bits(ios)

* RGB Crunched ETC(ios)

* RGB Crunched ETC2(ios)

* RGB(A)Compressed ASTC 4*4 block(ios)

* RGB(A)Compressed ASTC 5*5 block(ios)

* RGB(A)Compressed ASTC 6*6 block(ios)

* RGB(A)Compressed ASTC 8*8 block(ios)

* RGB(A)Compressed ASTC 10*10 block(ios)

* RGB(A)Compressed ASTC 12*12 block(ios)

ASTC

        英伟达官网链接:https://developer.nvidia.com/astc-texture-compression-for-game-assets

        原理:ASTC采用固定的每块128位,每个纹理在这些128位中可以具有不同大小的块。不仅是固定的4*4大小,可以用正方形和非正方形块来达到精确的控制。从8bpp降到1bpp以下。


你可能感兴趣的:(纹理压缩格式整理(持续更新))