每日一博 | 你所需要了解的几种纹理压缩格式原理
本文基于资料收集,概括了几种纹理压缩格式的基本思想,希望对于学习有所帮助。 为什么我们需要纹理压缩格式? 例如R5G6B5、A4R4G4B4、A1R5G5B5、R8G8B8或A8R8G8B8等未经压缩的图片格式,是能够被GPU直接读取的原生纹理格式。但在低端硬件设备或者说移动平台下,有两个问题需要解决。 一个是内存,例如A8R8G8B8格式中一个像素占4字节,如果是512x512分辨率内存就占用512x512x4 B=1048576 B=1 MB,这种内存消耗在低端设备上根本无法接受。 另一个重要的是数据传输时的带宽,带宽是发热的元凶,在渲染3D场景时,会有大量的贴图被传输到GPU,若不限制,总线带宽很快就会成为瓶颈,手机秒变暖手宝,严重的还会影响渲染性能。 因此我们需要一种内存占用既小又能被GPU读取的格式——压缩纹理格式。纹理压缩对应的算法是以某种形式的固定速率有损向量量化(Lossy Vector Quantization)将固定大小的像素块编码进固定大小的字节块中。 有损表示对于渲染来说,有损压缩是可以接受的,一般选择压缩格式时需要在纹理质量和文件大小上寻求一个平衡。 固定速率...