Сжатие блоков текстуры
Поддержка сжатия блоков (BC) для текстур была расширена в Direct3D 11, чтобы включить алгоритмы BC6H и BC7. BC6H поддерживает данные источника цвета с высоким динамическим диапазоном, а BC7 обеспечивает более высокое качество сжатия с меньшим количеством артефактов для стандартных исходных данных RGB.
Дополнительные сведения о поддержке алгоритма сжатия блоков до Direct3D 11, включая поддержку форматов BC1-BC5, см. в разделе "Сжатие блоков" (Direct3D 10).
**Примечание о форматах файлов: ** Форматы сжатия текстур BC6H и BC7 используют формат файла DDS для хранения сжатых данных текстуры. Дополнительные сведения см. в руководстве по программированию для DDS .
Форматы сжатия блоков, поддерживаемые в Direct3D 11
Исходные данные | Минимальное разрешение сжатия данных | Рекомендуемый формат | Минимальный поддерживаемый уровень компонентов |
---|---|---|---|
Цвет трех каналов с альфа-каналом | Три цветовых канала (5 бит:6 бит:5 бит), с 0 или 1 битами альфа | BC1 | Direct3D 9.1 |
Цвет трех каналов с альфа-каналом | Три цветовых канала (5 бит:6 бит:5 бит), с 4 битами альфа | BC2 | Direct3D 9.1 |
Цвет трех каналов с альфа-каналом | Три цветовых канала (5 бит:6 бит:5 бит) с 8 битами альфа | BC3 | Direct3D 9.1 |
Цвет одного канала | Один канал цвета (8 бит) | BC4 | Direct3D 10 |
Цвет двухканавого канала | Два цветовых канала (8 бит:8 бит) | BC5 | Direct3D 10 |
Три канала с высоким динамическим диапазоном (HDR) | Три цветовых канала (16 бит:16 бит:16 бит) в "половине" с плавающей запятой* | BC6H | Direct3D 11 |
Цвет трех каналов, альфа-канал необязательный | Три цветовых канала (от 4 до 7 бит на канал) с 0 до 8 бит альфа | BC7 | Direct3D 11 |
*"Половина" плавающей точки — это 16-разрядное значение, состоящее из необязательного бита знака, 5-разрядной предвзятой экспоненты, а также 10 или 11 бит мантисса.
Форматы 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 и стандартных альфа-форматов. Это различие должно обрабатываться программируемыми шейдерами во время отрисовки.
Форматы 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 | Н/П | 16 |
Формат BC6H может выбирать различные режимы кодирования для каждого блока пикселей 4x4. Доступны в общей сложности 14 различных режимов кодирования, каждый из которых немного отличается от компромиссов в результирующем визуальном качестве отображаемой текстуры. Выбор режимов позволяет быстро декодировать оборудованием с выбранным или адаптированным уровнем качества в соответствии с исходным содержимым, но также значительно увеличивает сложность пространства поиска.
Формат BC7
Дополнительные сведения об этом формате см. в документации по формату BC7.
Формат сжатия блоков | Формат DXGI | Эквивалентный формат Direct3D 9 | Байты на блок пикселей 4x4 |
---|---|---|---|
BC7 | DXGI_FORMAT_BC7_UNORM, DXGI_FORMAT_BC7_UNORM_SRGB, DXGI_FORMAT_BC7_TYPELESS | Н/П | 16 |
Формат BC7 может выбирать различные режимы кодирования для каждого блока пикселей 4x4. Доступны в общей сложности 8 различных режимов кодирования, каждый из которых немного отличается от компромиссов в результирующем визуальном качестве отображаемой текстуры. Выбор режимов позволяет быстро декодировать оборудованием с выбранным или адаптированным уровнем качества в соответствии с исходным содержимым, но также значительно увеличивает сложность пространства поиска.
Связанные темы