Udostępnij przez


Dokumentacja trybu formatu BC7

Ta dokumentacja zawiera listę 8 trybów bloków i alokacji bitów dla bloków formatu kompresji tekstury BC7.

Kolory dla każdego podzestawu w bloku są reprezentowane przez dwa jawne kolory punktu końcowego i zestaw kolorów interpolowanych między nimi. W zależności od dokładności indeksu bloku każdy podzbiór może mieć 4, 8 lub 16 możliwych kolorów.

Tryb 0

Tryb BC7 0 ma następujące cechy:

  • Tylko składniki kolorów (bez alfa)
  • 3 podzestawy na blok
  • Punkty końcowe RGBP 4.4.4.1 z unikatowym bitem P na punkt końcowy
  • Indeksy 3-bitowe
  • 16 partycji

tryb 0-bitowy

Tryb 1

Tryb BC7 1 ma następujące cechy:

  • Tylko składniki kolorów (bez alfa)
  • 2 podzbiory na blok
  • Punkty końcowe RGBP 6.6.6.1 z udostępnionym bitem P na podzestaw)
  • Indeksy 3-bitowe
  • 64 partycje

Tryb 2

Tryb BC7 2 ma następujące cechy:

  • Tylko składniki kolorów (bez alfa)
  • 3 podzestawy na blok
  • Punkty końcowe RGB 5.5.5
  • Indeksy 2-bitowe
  • 64 partycje

tryb 2-bitowy

Tryb 3

Tryb BC7 3 ma następujące cechy:

  • Tylko składniki kolorów (bez alfa)
  • 2 podzbiory na blok
  • Punkty końcowe RGBP 7.7.7.1 z unikatowym bitem P na podzestaw)
  • Indeksy 2-bitowe
  • 64 partycje

tryb 3-bitowy

Tryb 4

Tryb BC7 4 ma następujące cechy:

  • Składniki kolorów z oddzielnym składnikiem alfa
  • 1 podzbiór na blok
  • Punkty końcowe koloru RGB 5.5.5
  • 6-bitowe punkty końcowe alfa
  • Indeksy 16 x 2-bitowe
  • Indeksy 3-bitowe 16 x
  • 2-bitowa rotacja składników
  • Selektor indeksu 1-bitowego (czy używane są indeksy 2-lub 3-bitowe)

w trybie 4-bitowym

Tryb 5

Tryb BC7 5 ma następujące cechy:

  • Składniki kolorów z oddzielnym składnikiem alfa
  • 1 podzbiór na blok
  • Punkty końcowe kolorów RGB 7.7.7
  • 8-bitowe punkty końcowe alfa
  • 16 x 2-bitowe indeksy kolorów
  • 16 x 2-bitowe indeksy alfa
  • 2-bitowa rotacja składników

tryb 5-bitowy

Tryb 6

Tryb BC7 6 ma następujące cechy:

  • Połączone składniki kolorów i alfa
  • Jeden podzbiór na blok
  • Punkty końcowe RGBAP 7.7.7.7.1 (i alfa) (unikatowe punkty końcowe P-bit na punkt końcowy)
  • 16 x 4-bitowe indeksy

tryb 6-bitowy

Tryb 7

Tryb BC7 7 ma następujące cechy:

  • Połączone składniki kolorów i alfa
  • 2 podzbiory na blok
  • Punkty końcowe RGBAP 5.5.5.5.1 (i alfa) (unikatowe wartości P-bit na punkt końcowy)
  • Indeksy 2-bitowe
  • 64 partycje

w trybie 7-bitowym

Uwagi

Tryb 8 (najmniej znaczący bajt jest ustawiony na 0x00) jest zarezerwowany. Nie używaj go w koderze. Jeśli przejdziesz ten tryb do sprzętu, zostanie zwrócony blok zainicjowany do wszystkich zer.

W środowisku BC7 można zakodować składnik alfa w jeden z następujących sposobów:

  • Blokuj typy bez jawnego kodowania składników alfa. W tych blokach punkty końcowe kolorów mają kodowanie tylko RGB, a składnik alfa jest zdekodowany do 1,0 dla wszystkich texelsów.

  • Typy bloków ze połączonymi składnikami kolorów i alfa. W tych blokach wartości koloru punktu końcowego są określane w formacie RGBA, a wartości składników alfa są interpolowane wraz z wartościami kolorów.

  • Typy bloków z oddzielnymi kolorami i składnikami alfa. W tych blokach są określane oddzielnie wartości koloru i alfa, z których każdy ma własny zestaw indeksów. W rezultacie mają skuteczny wektor i kanał skalarny oddzielnie zakodowany, gdzie wektor często określa kanały kolorów [R, G, B] i skalarny określa kanał alfa [A]. Aby zapewnić obsługę tego podejścia, w kodowaniu znajduje się oddzielne pole 2-bitowe, które zezwala na specyfikację oddzielnego kodowania kanału jako wartość skalarną. W rezultacie blok może mieć jedną z następujących czterech różnych reprezentacji tego kodowania alfa (co wskazuje pole 2-bitowe):

    • RGB|Elementy: oddzielny kanał alfa
    • AGB|R: "czerwony" kanał kolorów oddzielny
    • RAB|G: "zielony" kanał kolorów oddzielny
    • RGA|B: "niebieski" kanał kolorów oddzielny

    Dekoder zmienia kolejność kanału z powrotem do RGBA po dekodowaniu, więc wewnętrzny format bloku jest niewidoczny dla dewelopera. Bloki z oddzielnymi kolorami i składnikami alfa mają również dwa zestawy danych indeksu: jeden dla wektorowanego zestawu kanałów i jeden dla kanału skalarnego. (W przypadku trybu 4 te indeksy mają różne szerokości [2 lub 3 bity]. Tryb 4 zawiera również selektor 1-bitowy, który określa, czy wektor, czy kanał skalarny używa indeksów 3-bitowych.

format BC7