Skip to main content

资源压缩策略

面试题

  1. Unity 中各个资源压缩策略。

纹理资源压缩策略

img

移动端(Android/iOS)

ASTC

  • 优势:高压缩率(支持1bpp至8bpp)、支持RGBA通道,适配鸿蒙/骁龙等现代GPU。
  • 适用场景:角色皮肤、场景贴图(推荐ASTC 4×4或6×6)。

ETC2

  • 优势:Android主流格式,支持Alpha通道(ETC2),兼容OpenGL ES 3.0+设备。
  • 适用场景:UI图集、动态纹理(需注意低端机兼容性)。

PVRTC

  • 优势:iOS专用,PowerVR GPU直接支持,压缩比高(4bpp)。
  • 限制:必须为2的幂次方正方形纹理,画质损失较明显。

PC/主机端

BC7 (DXT5)

  • 优势:支持高质量RGBA压缩,适合高光/金属材质。
  • 适用场景:3A级游戏的高清纹理。

无压缩 (RGBA32)

  • 适用场景:美术原画、需要无损编辑的纹理(内存占用大)。

优化技巧

  • 使用Mipmap减少远处纹理的内存占用,但对UI纹理禁用。
  • 通过纹理图集合并小纹理,减少Draw Call和内存碎片。

音频资源压缩策略

  • 长音频:使用Vorbis压缩,降低比特率(如96kbps)。
  • 短音效:优先选择ADPCM,减少解码延迟。
格式比特率适用场景平台适配性
Vorbis (.ogg)96-192kbps背景音乐、环境音效全平台支持,平衡音质与体积。
ADPCM4:1压缩比短音效(如脚步声、UI点击)低CPU开销,适合移动端。
MP3128kbps兼容性要求高的老项目部分平台有专利限制,不推荐新项目。
AAC64-128kbps移动端流媒体音乐iOS/Android原生支持,压缩效率高。

模型与动画压缩

模型格式

  • GLB (二进制GLTF)

  • 优势:比FBX体积小40%,支持Draco压缩(可再减30%-50%),适合静态模型。

  • FBX + LZMA

  • 适用场景:含动画的复杂模型,需高压缩率传输。

动画优化

  • 关键帧精简:将非关键动作(如待机)的采样率降至15-20帧/秒。
  • 曲线压缩:使用Unity的Animation Compression选项(如Keyframe Reduction)。

通用压缩算法

资源类型推荐算法理由
纹理ASTC/ETC2高压缩率,硬件加速解压
音频Vorbis/ADPCM低CPU占用,音质可接受
3D模型Draco + GLB体积最小,加载快
AssetBundleLZ4按需解压,避免卡顿