笔记
纹理压缩目的
纹理压缩是为了解决内存、带宽问题,专为在计算机图形渲染系统中存储纹理而使用的图像压缩技术
图片格式 和 纹理压缩格式
图片格式
● 图片文件的存储格式,通常在硬盘、内存中存储,传输文件时使用
● 例如:jpg、png、gif、bmp
● 图片压缩格式是基于整张图片进行压缩,像素之间解码过程中存在依赖关系
● 无法实现单个像素级的解析,发挥不了显卡的并行能力
● 使用上,如上图,如果不设置纹理格式,是无法被GPU读取的,需要在CPU压缩成RGBA32才行,增加了CPU的时间和带宽,同时RGBA32这个格式也非常占用内存
纹理压缩格式
● 显卡能直接采样的纹理数据格式
● “随机访问”:如果渲染一个物体时,需要在某个坐标上采样纹理,那么GPU只需要读取该像素所属固定大小字节块,对其进行解压即可。
非纹理压缩格式
○ RGBA8888(RGBA32)
■ R、G、B、A四个通道各占8位
■ 所以一个像素消耗:4 * 8 = 32位(bit)= 4字节(byte)
○ RGBA4444(RGBA16)
■ 四个通道各占4位内存
■ 一个像素消耗:4 * 4 = 16位 = 2字节<