目前主流的贴图压缩格式主要分为三大阵营:PC/主机端(BC系列)、移动端(ASTC/ETC)和通用网络端(传统图像格式)。
1. PC 与 主机端:BC (Block Compression) 系列
这是 DirectX 标准下的压缩格式,也是 UE5 开发中最常接触到的。
| 格式名称 | 别名 | 特点与用途 | 压缩比 (对比原始 RGBA8) | 画质 |
| BC1 | DXT1 | 仅限 RGB。主要用于不带透明度的 BaseColor。 | 8:1 | 低 (易产生断层) |
| BC3 | DXT5 | RGB + 独立 Alpha。曾是带透明贴图的标准。 | 4:1 | 中 |
| BC4 | G16 | 单通道。用于灰度图、高度图或遮罩。 | 2:1 | 高 |
| BC5 | BC5 | 双通道。高精度法线贴图专用(R=X, G=Y)。 | 2:1 | 极高 |
| BC6H | - | HDR 贴图专用。支持高动态范围(FP16)。 | 4:1 | 高 |
| BC7 | - | 全能王者。支持 RGBA,画质几乎无损。 | 4:1 | 极高 |
2. 移动端 (Android/iOS):主流格式
移动端由于显卡架构不同,使用的硬件解压标准也不同。
ASTC (Adaptive Scalable Texture Compression):
特点:目前最先进。它允许灵活调节“块大小”(从 4x4 到 12x12 像素)。
性能:画质与体积的平衡性极佳。块越大,体积越小,画质越差。
地位:现代手游(iPhone 6s 以上, Android 高端机)的标配。
ETC2 (Ericsson Texture Compression):
特点:安卓设备的通用标准。
性能:兼容性极强,但在处理法线或复杂 Alpha 时画质不如 ASTC。
3. 性能深度对比
三种性能的对比:读写速度(显存带宽)、解码速度(GPU算力)和加载速度(磁盘IO)。
A. 显存占用 (VRAM) 与带宽性能
压缩贴图的最大意义不是省硬盘空间,而是省显存带宽。
结论:贴图越小(压缩比越高),GPU 渲染时从显存里“抓取”数据越快。
性能排名:BC1/ETC1 (最快) > BC7/ASTC (中等) > 未压缩 RGBA (最慢,会导致卡顿)。
B. 解码消耗 (ALU)
指 GPU 将压缩数据还原为颜色像素所需的计算量。
结论:现代 GPU 都有专门的硬件解压单元。
对比:虽然 BC7/ASTC 的逻辑比 DXT 复杂得多,但因为是硬解,这种算力差异在实际帧率(FPS)上通常小于1%。带宽瓶颈远比解码算力瓶颈更可怕。
C. 运行时性能与内存换算 (2K 贴图为例)
以一张 2048x2048 的贴图在显存中的大小为例:
| 格式 | 显存占用 | 性能建议 |
| 未压缩 (RGBA8) | 16 MB | 极差(禁止在游戏内大量使用) |
| BC7 / BC3 (DXT5) | 4 MB | 优秀(主流 3A 游戏平衡点) |
| BC1 (DXT1) | 2 MB | 极佳(用于大量环境小物件) |
4. 总结与应用建议
追求画质且支持现代硬件:无论 PC 还是移动端,BC7 (PC)和ASTC 4x4 (Mobile)是最优选。它们在相同的内存占用下,画质吊打老旧格式。
法线贴图精度:必须使用BC5或BC7。普通的 DXT1 压缩法线会导致严重的光影锯齿。
内存极度紧张:在移动端可以考虑将 ASTC 调至 8x8 或 10x10,这能极大压缩显存占用,但要注意观察 UI 或精细纹理是否模糊。
开发效率:DXT/BC1-5 压缩极快,BC7 压缩极慢。在开发迭代期可以先用简单压缩,最后打包上线前开启高品质 BC7。