移动平台GPU纹理压缩格式

一 纹理为什么要压缩

### 1 先说说无压缩的纹理格式
RGB或者RGBA格式, 以不压缩的方式打包图片资源, 使用时直接读取到内存,
优点

  • 质量无损
  • 没有解压展开的性能消耗

    SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。

    缺点

  • 占用内存大
  • 性能消耗大
    移动平台纹理压缩格式对比分析 随笔 第1张

    2 为显卡设计的特殊压缩格式

    GPU除了支持不压缩的贴图格式, 还支持特殊的压缩格式, 这种格式在GPU上的使用性能优于不压缩格式,
    优点

  • 占用内存小, 压缩比为 1 : 4 甚至更高
  • 性能更好,查询速度快

    缺点

  • 有损压缩

二 移动GPU支持的纹理压缩

### 1 ETC Opengl ES标准

  1. ETC有两个版本:

    • ** ETC1** 需要OpenGL ES 2.0以上
    • ** ETC2** 需要OpenGL ES 3.0以上
  2. 二者对比:

    • ETC2向下兼容ETC1
    • ETC2压缩质量远高于的ETC1
    • 二者压缩比一样

移动平台纹理压缩格式对比分析 随笔 第2张

### 2 ASTC Opengl ES扩展标准
移动平台纹理压缩格式对比分析 随笔 第3张
### 3 PVRTC 苹果标准
移动平台纹理压缩格式对比分析 随笔 第4张

三 不同平台标准压缩格式效果对比

以下是4种压缩格式压缩法线贴图的效果对比:
移动平台纹理压缩格式对比分析 随笔 第5张
结论: 综合质量和压缩比, 性价比按最高依次是:
PVRTC > ASTC > ETC2 > ETC1

四 使用分析

1 安卓平台

兼容OpenGL ES 2.0

  1. UI等高质量要求的纹理使用RGB或者RGBA不压缩格式
  2. 一般纹理使用 ETC1
  3. 透明纹理使用 ETC1 + Alpha8

2 只兼容OpengGL ES 3.0以上

  1. 根据实际情况优先使用高压缩比的ASTC格式
  2. UI等高质量要求的纹理使用RGB或者RGBA不压缩格式
  3. 法线贴图等有一定精度要求可使用PVRTC4bit或者更高精度的ASTC

3 IOS平台

兼容iPhone5(含)以下

  1. UI等高质量要求的纹理使用RGB或者RGBA不压缩格式
  2. 其他使用PVRTC
只兼容iPhone5s(含)以上
  1. 根据实际情况优先使用高压缩比的ASTC格式
  2. UI等高质量要求的纹理使用RGB或者RGBA不压缩格式
  3. 法线贴图等有一定精度要求可使用PVRTC4bit或者更高精度的ASTC
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄