Сжатые форматы текстур
В этом разделе содержатся сведения о внутренней организации сжатых форматов текстур. Эти сведения не требуются для использования сжатых текстур, так как вы можете использовать функции Direct3D для преобразования в сжатые форматы и из них. Однако эта информация полезна, если вы хотите работать непосредственно с сжатыми данными поверхности.
Direct3D использует формат сжатия, который делит карты текстур на блоки текселя 4x4. Если текстура не содержит прозрачности - непрозрачна или если прозрачность указана 1-разрядной альфа-буквой, 8-байтовый блок представляет блок карты текстуры. Если карта текстур содержит прозрачные тексели, используя альфа-канал, то 16-байтовый блок представляет его.
Любая одна текстура должна указывать, что данные хранятся как 64 или 128 бит на группу из 16 текселей. Если 64-разрядные блоки - то есть формат BC1 - используются для текстуры, можно смешивать непрозрачные и 1-разрядные альфа-форматы на основе каждого блока в одной текстуре. Другими словами, сравнение целого числа без знака color_0 и color_1 выполняется уникально для каждого блока 16 текселей.
Если используются 128-разрядные блоки, альфа-канал должен быть указан в явном (формате BC2) или интерполированном режиме (формат BC3) для всей текстуры. Как и в случае с цветом, при выборе интерполированного режима можно использовать восемь интерполированных альфа-символов или шесть интерполированных альфа-режим на основе блока. Опять же сравнение величины alpha_0 и alpha_1 выполняется уникально на основе блока.
Поле для форматов BCn измеряется в байтах (а не в блоках). Например, если у вас есть ширина 16, у вас будет шаг из четырех блоков (4*8 для BC1, 4*16 для BC2 или BC3).
Связанные темы