✍内容

ASTC (Adaptive Scalable Texture Compression) 是一种先进的纹理压缩格式,主要用于移动设备和图形应用程序。以下是它的主要特点:

  1. 核心特性:
  • 可变块大小:支持从 4x4 到 12x12 像素的块大小
  • 固定压缩率:每个块使用 128 位
  • 支持 HDR (High Dynamic Range) 和 LDR (Low Dynamic Range) 图像
  • 支持 1 到 4 个颜色通道
  1. 压缩率和块大小关系:
4x4   块 -> 8.00 bpp (bits per pixel)
5x5   块 -> 5.12 bpp
6x6   块 -> 3.56 bpp
8x8   块 -> 2.00 bpp
12x12 块 -> 0.89 bpp
  1. 主要优势:
  • 高压缩率
  • 灵活的块大小选择
  • 图像质量可控
  • 硬件解码支持
  • 低内存带宽需求
  1. 常见用途:
  • 移动游戏纹理
  • AR/VR 应用
  • 3D 图形应用
  • UI 资源压缩
  1. 限制:
  • 编码速度较慢
  • 不是所有硬件都支持
  • 某些块大小可能在特定设备上不可用
  1. 在 Vulkan 中使用:
// 检查格式支持
VkFormatProperties formatProperties;
vkGetPhysicalDeviceFormatProperties(
    physicalDevice, 
    VK_FORMAT_ASTC_4x4_UNORM_BLOCK,  // 或其他 ASTC 格式
    &formatProperties
);

和其他纹理压缩格式(如 DXT/BC、ETC2)相比,ASTC 提供了更好的压缩质量和更灵活的压缩率选择,特别适合移动平台。