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 种块模式和位分配的列表。 |