Поделиться через


Справочник по режиму формата BC7

В этой документации содержится список 8 режимов блоков и распределения битов для блоков сжатия текстур BC7.

Цвета для каждого подмножества в блоке представлены двумя явными цветами конечных точек и набором интерполированных цветов между ними. В зависимости от точности индекса блока каждый подмножество может иметь 4, 8 или 16 возможных цветов.

Режим 0

Режим BC7 0 имеет следующие характеристики:

  • Только цветные компоненты (не альфа)
  • 3 подмножества на блок
  • Конечные точки RGBP 4.4.4.1 с уникальным P-битом на конечную точку
  • 3-разрядные индексы
  • 16 секций

режиме 0 битового макета

Режим 1

Режим BC7 1 имеет следующие характеристики:

  • Только цветные компоненты (не альфа)
  • 2 подмножества на блок
  • Конечные точки RGBP 6.6.6.1 с общим P-битом для каждого подмножества)
  • 3-разрядные индексы
  • 64 секции

режиме 1 битового макета

Режим 2

Режим BC7 2 имеет следующие характеристики:

  • Только цветные компоненты (не альфа)
  • 3 подмножества на блок
  • Конечные точки RGB 5.5.5
  • 2-разрядные индексы
  • 64 секции

режиме 2-разрядного макета

Режим 3

Режим BC7 3 имеет следующие характеристики:

  • Только цветные компоненты (не альфа)
  • 2 подмножества на блок
  • Конечные точки RGBP 7.7.7.1 с уникальным P-битом для каждого подмножества)
  • 2-разрядные индексы
  • 64 секции

режиме 3-разрядного макета

Режим 4

В режиме BC7 4 имеются следующие характеристики:

  • Цветовые компоненты с отдельным альфа-компонентом
  • 1 подмножество на блок
  • Конечные точки цвета RGB 5.5.5
  • 6-разрядные альфа-конечные точки
  • 16 x 2-разрядных индексов
  • 16 x 3-разрядные индексы
  • Поворот 2-разрядного компонента
  • Селектор 1-разрядных индексов (используются ли 2- или 3-разрядные индексы)

режиме 4-разрядного макета

Режим 5

Режим BC7 5 имеет следующие характеристики:

  • Цветовые компоненты с отдельным альфа-компонентом
  • 1 подмножество на блок
  • Конечные точки цвета RGB 7.7.7
  • 8-разрядные альфа-конечные точки
  • 16 x 2-разрядные индексы цветов
  • 16 x 2-разрядных альфа-индексов
  • Поворот 2-разрядного компонента

режим 5 битов макета

Режим 6

В режиме BC7 6 имеются следующие характеристики:

  • Объединенные цвета и альфа-компоненты
  • Одно подмножество на блок
  • Конечные точки RGBAP 7.7.7.1 (и альфа-версия) (уникальный P-бит на конечную точку)
  • 16 x 4-разрядных индексов

режиме 6-разрядного макета

Режим 7

Режим BC7 7 имеет следующие характеристики:

  • Объединенные цвета и альфа-компоненты
  • 2 подмножества на блок
  • Конечные точки RGBAP 5.5.5.5.1 (и альфа) (уникальный P-бит на конечную точку)
  • 2-разрядные индексы
  • 64 секции

режиме 7-разрядного макета

Замечания

Режим 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-разрядные индексы.)

формат BC7