移动端纹理与压缩
自动关联目录:移动端纹理与压缩
1. 定位
纹理通常是移动端包体与内存的最大单项,也是决定加载速度的关键。
一句话定位:移动端的纹理优化顺序是:格式 → 尺寸 → mip → 通道,跳过前面试后面都是白费。
2. 压缩格式
| 格式 | 平台 | 说明 |
|---|---|---|
| ASTC | Android(新)+ iOS | 质量与压缩率平衡最好,首选;支持可变块大小 |
| ETC2 | Android 兜底 | 兼容老设备 |
| PVRTC | 老 iOS | 需要 2 的幂尺寸 |
| BC / DXTC | 桌面 | 移动端不用 |
按平台分别设置(纹理编辑器的平台覆盖):同一张贴图在 Android 与 iOS 上用不同格式,这是常规做法。
3. 尺寸与 mip
| 要点 | 说明 |
|---|---|
| 尺寸 | 移动端贴图尺寸应显著低于桌面(512/1024 是常见上限) |
| 必须保留 mip | 关掉 mip 会让远处采样抖动,且带宽更高(采样不连续) |
| 2 的幂 | 部分格式(PVRTC)与压缩方式要求 |
| 图集 | UI 与粒子贴图打成图集,利于合批 |
一个常见误解:以为关 mip 能省内存。实际上 mip 只增加约 33% 体积,却显著降低带宽——移动端必须开 mip。
4. 通道与特殊贴图
| 项 | 说明 |
|---|---|
| 去掉不必要通道 | Alpha 不用就别带 |
| 法线贴图 | 压缩敏感,可能需要专门格式或更高码率 |
| 遮罩贴图 | 多通道打包(ORM:AO/粗糙度/金属度) |
| 单通道贴图 | 尽量合并 |
| HDR 贴图 | 移动端慎用,代价高 |
通道打包(如 ORM)是移动端最划算的一招:三张灰度图合成一张 RGB,省两次采样与两份内存。
5. 与虚拟纹理的关系
| 项 | 说明 |
|---|---|
| 虚拟纹理 | 支持超大纹理,按需加载 |
| 移动端支持 | 需确认目标平台与 API 支持 |
| 代价 | 额外配置与内存 |
| 适用 | 大地形与大量高精度贴图 |
6. 代价与权衡
| 设计 | 收益 | 代价 | 什么时候不该用 |
|---|---|---|---|
| ASTC | 质量与体积最佳 | 老设备不支持 | 需 ETC2 兜底 |
| 降尺寸 | 收益最直接 | 细节损失 | 关键特写资产不降 |
| 开 mip | 省带宽、远处稳定 | +33% 体积 | 从不开是错的 |
| 通道打包 | 省采样与内存 | 制作流程改动 | 简单项目可后做 |
| 图集 | 合批 | 资产管理成本 | 少量贴图不必 |
| HDR 贴图 | 效果好 | 代价高 | 移动端少用 |
7. 踩坑与排查
| 坑 | 现象 | 怎么验证 |
|---|---|---|
| iOS 用 ETC2 / Android 用 PVRTC | 不生效或质量差 | 按平台设格式 |
| PVRTC 用非 2 的幂尺寸 | 压缩失败/质量差 | 改尺寸 |
| 关掉 mip "省内存" | 远处抖 + 带宽更高 | 开 mip |
| 贴图尺寸照搬桌面 | 内存/包体爆 | 降尺寸 |
| Alpha 通道常驻但不用 | 浪费 | 去掉 |
| 法线贴图用普通压缩 | 明显 artifacts | 单独设置 |
| 没按平台验证 | 某平台质量差 | 真机逐平台看 |
8. 排查顺序
1. 按大小排序列出纹理资产 → 找最大的
2. 检查每张的:格式(按平台)/ 尺寸 / mip / 通道数
3. 降尺寸 → 换格式 → 打包通道 → 做图集
4. 真机逐平台验证质量参考
- 移动端渲染 · 移动端内存与显存预算 · 移动平台与图形 API
- 包体分析 · 内存剖析 · Nanite(虚拟纹理的建议)
许可协议:CC BY
作者:Davids
本文链接:https://hustjjd.github.io/2671c7a8.html
更新于:2026年10月10日