Direct3D 11 中的纹理块压缩

Direct3D 11 中扩展了对纹理的块压缩(BC)支持,以包括 BC6H 和 BC7 算法。 BC6H 支持高动态范围颜色源数据,BC7 为标准 RGB 源数据提供比平均质量更好的压缩功能。

有关 Direct3D 11 之前的块压缩算法支持(包括对 BC1 到 BC5 格式的支持)的更具体信息,请参阅 块压缩(Direct3D 10)

有关文件格式的注释: BC6H 和 BC7 纹理压缩格式使用 DDS 文件格式来存储压缩的纹理数据。 有关详细信息,请参阅 DDS 编程指南。

Direct3D 11 中支持的块压缩格式

源数据 所需的最低数据压缩分辨率 建议的格式 支持的最低功能级别
带 alpha 通道的三通道颜色 三个颜色通道(5 位:6 位:5 位),0 位或 1 位 alpha BC1 Direct3D 9.1
带 alpha 通道的三通道颜色 三个颜色通道(5 位:6 位:5 位),4 位 alpha BC2 Direct3D 9.1
带 alpha 通道的三通道颜色 三个颜色通道(5 位:6 位:5 位)和 8 位 alpha BC3 Direct3D 9.1
单通道颜色 一个颜色通道 (8 位) BC4 Direct3D 10
双通道颜色 两个颜色通道(8 位:8 位) BC5 Direct3D 10
三通道高动态范围(HDR)颜色 三个颜色通道(16 位:16 位:16 位:16 位)在“半”浮点* BC6H Direct3D 11
三通道颜色,alpha 通道可选 三个颜色通道(每个通道 4 到 7 位),0 到 8 位 alpha BC7 Direct3D 11

*“半”浮点是一个 16 位值,该值由可选符号位、5 位偏置指数和 10 位或 11 位 mantissa 组成。

BC1、BC2 和 B3 格式

BC1、BC2 和 BC3 格式等效于 Direct3D 9 DXTn 纹理压缩格式,与相应的 Direct3D 10 BC1、BC2 和 BC3 格式相同。 所有功能级别都需要支持这三种格式(D3D_FEATURE_LEVEL_9_1、D3D_FEATURE_LEVEL_9_2、D3D_FEATURE_LEVEL_9_3、D3D_FEATURE_LEVEL_10_0、D3D_FEATURE_LEVEL_10_1和D3D_FEATURE_LEVEL_11_0)。

块压缩格式 DXGI 格式 Direct3D 9 等效格式 每个 4x4 像素块的字节数
BC1 DXGI_FORMAT_BC1_UNORM、DXGI_FORMAT_BC1_UNORM_SRGB、DXGI_FORMAT_BC1_TYPELESS D3DFMT_DXT1,FourCC=“DXT1” 8
BC2 DXGI_FORMAT_BC2_UNORM、DXGI_FORMAT_BC2_UNORM_SRGB、DXGI_FORMAT_BC2_TYPELESS D3DFMT_DXT2*, FourCC=“DXT2”, D3DFMT_DXT3, FourCC=“DXT3” 16
BC3 DXGI_FORMAT_BC3_UNORM、DXGI_FORMAT_BC3_UNORM_SRGB、DXGI_FORMAT_BC3_TYPELESS D3DFMT_DXT4*, FourCC=“DXT4”, D3DFMT_DXT5, FourCC=“DXT5” 16

*这些压缩方案(DXT2 和 DXT4)不区分 Direct3D 9 预乘 alpha 格式和标准 alpha 格式。 必须在呈现时由可编程着色器处理此区别。

BC4 和 BC5 格式

块压缩格式 DXGI 格式 Direct3D 9 等效格式 每个 4x4 像素块的字节数
BC4 DXGI_FORMAT_BC4_UNORM、DXGI_FORMAT_BC4_SNORM、DXGI_FORMAT_BC4_TYPELESS FourCC=“ATI1” 8
BC5 DXGI_FORMAT_BC5_UNORM、DXGI_FORMAT_BC5_SNORM、DXGI_FORMAT_BC5_TYPELESS FourCC=“ATI2” 16

BC6H 格式

有关此格式的更多详细信息,请参阅 BC6H 格式 文档。

块压缩格式 DXGI 格式 Direct3D 9 等效格式 每个 4x4 像素块的字节数
BC6H DXGI_FORMAT_BC6H_UF16、DXGI_FORMAT_BC6H_SF16、DXGI_FORMAT_BC6H_TYPELESS N/A 16

BC6H 格式可以为每个 4x4 像素块选择不同的编码模式。 共有 14 种不同的编码模式可用,每个模式在显示纹理的视觉质量方面略有不同。 模式的选择允许硬件快速解码,其质量级别根据源内容选择或调整,但也大大增加了搜索空间的复杂性。

BC7 格式

有关此格式的更多详细信息,请参阅 BC7 格式 文档。

块压缩格式 DXGI 格式 Direct3D 9 等效格式 每个 4x4 像素块的字节数
BC7 DXGI_FORMAT_BC7_UNORM、DXGI_FORMAT_BC7_UNORM_SRGB、DXGI_FORMAT_BC7_TYPELESS N/A 16

BC7 格式可以为每个 4x4 像素块选择不同的编码模式。 总共有 8 种不同的编码模式可用,每个模式在显示纹理的视觉质量方面略有不同权衡。 模式的选择允许硬件快速解码,其质量级别根据源内容选择或调整,但也大大增加了搜索空间的复杂性。

在本部分中

主题 描述
BC6H 格式
BC6H 格式是一种纹理压缩格式,旨在支持源数据中的高动态范围(HDR)颜色空间。
BC7 格式
BC7 格式是用于 RGB 和 RGBA 数据的高质量压缩的纹理压缩格式。
BC7 格式模式参考
本文档包含 BC7 纹理压缩格式块的 8 种块模式和位分配的列表。

块压缩(Direct3D 10)

纹理