Справочник по режиму формата BC7
В этой документации содержится список 8 режимов блоков и распределения битов для блоков сжатия текстур BC7.
Цвета для каждого подмножества в блоке представлены двумя явными цветами конечных точек и набором интерполированных цветов между ними. В зависимости от точности индекса блока каждый подмножество может иметь 4, 8 или 16 возможных цветов.
Режим 0
Режим BC7 0 имеет следующие характеристики:
- Только цветные компоненты (не альфа)
- 3 подмножества на блок
- Конечные точки RGBP 4.4.4.1 с уникальным P-битом на конечную точку
- 3-разрядные индексы
- 16 секций
Режим 1
Режим BC7 1 имеет следующие характеристики:
- Только цветные компоненты (не альфа)
- 2 подмножества на блок
- Конечные точки RGBP 6.6.6.1 с общим P-битом для каждого подмножества)
- 3-разрядные индексы
- 64 секции
Режим 2
Режим BC7 2 имеет следующие характеристики:
- Только цветные компоненты (не альфа)
- 3 подмножества на блок
- Конечные точки RGB 5.5.5
- 2-разрядные индексы
- 64 секции
Режим 3
Режим BC7 3 имеет следующие характеристики:
- Только цветные компоненты (не альфа)
- 2 подмножества на блок
- Конечные точки RGBP 7.7.7.1 с уникальным P-битом для каждого подмножества)
- 2-разрядные индексы
- 64 секции
Режим 4
В режиме BC7 4 имеются следующие характеристики:
- Цветовые компоненты с отдельным альфа-компонентом
- 1 подмножество на блок
- Конечные точки цвета RGB 5.5.5
- 6-разрядные альфа-конечные точки
- 16 x 2-разрядных индексов
- 16 x 3-разрядные индексы
- Поворот 2-разрядного компонента
- Селектор 1-разрядных индексов (используются ли 2- или 3-разрядные индексы)
Режим 5
Режим BC7 5 имеет следующие характеристики:
- Цветовые компоненты с отдельным альфа-компонентом
- 1 подмножество на блок
- Конечные точки цвета RGB 7.7.7
- 8-разрядные альфа-конечные точки
- 16 x 2-разрядные индексы цветов
- 16 x 2-разрядных альфа-индексов
- Поворот 2-разрядного компонента
Режим 6
В режиме BC7 6 имеются следующие характеристики:
- Объединенные цвета и альфа-компоненты
- Одно подмножество на блок
- Конечные точки RGBAP 7.7.7.1 (и альфа-версия) (уникальный P-бит на конечную точку)
- 16 x 4-разрядных индексов
Режим 7
Режим BC7 7 имеет следующие характеристики:
- Объединенные цвета и альфа-компоненты
- 2 подмножества на блок
- Конечные точки RGBAP 5.5.5.5.1 (и альфа) (уникальный P-бит на конечную точку)
- 2-разрядные индексы
- 64 секции
Замечания
Режим 8 (наименьший байт имеет значение 0x00) зарезервирован. Не используйте его в кодировщике. Если вы передаете этот режим оборудованию, возвращается блок, инициализированный для всех нулей.
В BC7 можно закодировать альфа-компонент одним из следующих способов:
Типы блоков без явной кодировки альфа-компонента. В этих блоках конечные точки цвета имеют кодировку только RGB, при этом альфа-компонент декодирован до 1,0 для всех текселей.
Типы блоков с объединенными цветами и альфа-компонентами. В этих блоках значения цвета конечной точки указываются в формате RGBA, а значения альфа-компонента интерполируются вместе со значениями цвета.
Типы блоков с разделенными цветами и альфа-компонентами. В этих блоках значения цветов и альфа задаются отдельно, каждый из которых имеет собственный набор индексов. В результате они имеют эффективный вектор и скалярный канал отдельно закодированы, где вектор обычно задает цветовые каналы [R, G, B] и скаляр указывает альфа-канал [A]. Для поддержки этого подхода в кодировке предоставляется отдельное 2-разрядное поле, которое разрешает спецификацию кодирования отдельного канала в виде скалярного значения. В результате блок может иметь одно из следующих четырех различных представлений этой альфа-кодировки (как указано в 2-разрядном поле):
- RGB|A: альфа-канал отдельный
- AGB|R: "красный" канал цвета отдельный
- RAB |G: "зеленый" цветной канал отдельный
- RGA |B: "синий" цветной канал отдельный
Декодировщик переупорядочение канала обратно в RGBA после декодирования, поэтому внутренний формат блока невидим для разработчика. Блоки с отдельными цветами и альфа-компонентами также имеют два набора данных индекса: один для векторного набора каналов и один для скалярного канала. (В случае режима 4 эти индексы имеют разные ширины [2 или 3 бита]. Режим 4 также содержит 1-разрядный селектор, указывающий, использует ли вектор или скалярный канал 3-разрядные индексы.)
Связанные разделы