Справочник по режиму формата 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.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-разрядные индексы.)
Связанные темы