REFERENZ ZUM BC7-Formatmodus
Diese Dokumentation enthält eine Liste der 8 Blockmodi und Bitzuordnungen für BC7-Texturkomprimierungsformatblöcke.
Die Farben für jede Teilmenge innerhalb eines Blocks werden durch zwei explizite Endpunktfarben und einen Satz interpolierter Farben zwischen ihnen dargestellt. Je nach Indexgenauigkeit des Blocks kann jede Teilmenge 4, 8 oder 16 mögliche Farben haben.
Modus 0
BC7 Mode 0 hat die folgenden Merkmale:
- Nur Farbkomponenten (kein Alpha)
- 3 Teilmengen pro Block
- RGBP 4.4.4.1-Endpunkte mit einem eindeutigen P-Bit pro Endpunkt
- 3-Bit-Indizes
- 16 Partitionen

Modus 1
BC7-Modus 1 hat die folgenden Merkmale:
- Nur Farbkomponenten (kein Alpha)
- 2 Teilmengen pro Block
- RGBP 6.6.6.1-Endpunkte mit einem freigegebenen P-Bit pro Teilmenge)
- 3-Bit-Indizes
- 64 Partitionen

Modus 2
BC7 Mode 2 hat die folgenden Merkmale:
- Nur Farbkomponenten (kein Alpha)
- 3 Teilmengen pro Block
- RGB 5.5.5-Endpunkte
- 2-Bit-Indizes
- 64 Partitionen

Modus 3
BC7-Modus 3 hat die folgenden Merkmale:
- Nur Farbkomponenten (kein Alpha)
- 2 Teilmengen pro Block
- RGBP 7.7.7.1-Endpunkte mit einem eindeutigen P-Bit pro Teilmenge)
- 2-Bit-Indizes
- 64 Partitionen

Modus 4
BC7 Mode 4 hat die folgenden Merkmale:
- Farbkomponenten mit separater Alphakomponente
- 1 Teilmenge pro Block
- RGB 5.5.5-Farbendpunkte
- 6-Bit-Alphaendpunkte
- 16 x 2-Bit-Indizes
- 16 x 3-Bit-Indizes
- 2-Bit-Komponentenrotation
- 1-Bit-Indexauswahl (unabhängig davon, ob die 2- oder 3-Bit-Indizes verwendet werden)

Modus 5
BC7 Mode 5 hat die folgenden Merkmale:
- Farbkomponenten mit separater Alphakomponente
- 1 Teilmenge pro Block
- RGB 7.7.7-Farbendpunkte
- 8-Bit-Alphaendpunkte
- 16 x 2-Bit-Farbindizes
- 16 x 2-Bit-Alphaindizes
- 2-Bit-Komponentenrotation

Modus 6
BC7 Mode 6 hat die folgenden Merkmale:
- Kombinierte Farb- und Alphakomponenten
- Eine Teilmenge pro Block
- RGBAP 7.7.7.7.1-Farbendpunkte (und Alphaendpunkte) (eindeutigeS P-Bit pro Endpunkt)
- 16 x 4-Bit-Indizes

Modus 7
BC7 Mode 7 hat die folgenden Merkmale:
- Kombinierte Farb- und Alphakomponenten
- 2 Teilmengen pro Block
- RGBAP 5.5.5.5.1-Farbendpunkte (und Alphaendpunkte) (eindeutigeS P-Bit pro Endpunkt)
- 2-Bit-Indizes
- 64 Partitionen

Hinweise
Modus 8 (das am wenigsten signifikante Byte ist auf 0x00) ist reserviert. Verwenden Sie sie nicht in Ihrem Encoder. Wenn Sie diesen Modus an die Hardware übergeben, wird ein mit allen Nullen initialisierter Block zurückgegeben.
In BC7 können Sie die Alphakomponente auf eine der folgenden Arten codieren:
Blocktypen ohne explizite Alphakomponentencodierung. In diesen Blöcken verfügen die Farbendpunkte über eine nur RGB-Codierung, bei der die Alphakomponente für alle Texel auf 1,0 decodiert wird.
Blocktypen mit kombinierten Farb- und Alphakomponenten. In diesen Blöcken werden die Endpunktfarbwerte im RGBA-Format angegeben, und die Alphakomponentenwerte werden zusammen mit den Farbwerten interpoliert.
Blocktypen mit getrennten Farb- und Alphakomponenten. In diesen Blöcken werden die Farb- und Alphawerte separat angegeben, jeweils mit einem eigenen Satz von Indizes. Daher verfügen sie über einen effektiven Vektor und einen separat codierten Skalarkanal, wobei der Vektor häufig die Farbkanäle R, G, B und der Skalar den Alphakanal [ A ] [ ] angibt. Zur Unterstützung dieses Ansatzes wird ein separates 2-Bit-Feld in der Codierung bereitgestellt, das die Angabe der separaten Kanalcodierung als Skalarwert ermöglicht. Daher kann der -Block eine der folgenden vier verschiedenen Darstellungen dieser Alphacodierung haben (wie durch das 2-Bit-Feld angegeben):
- RGB | A: Alphakanal getrennt
- COLOR | R: "roter" Farbkanal getrennt
- SENDER | G: "green" color channel separate
- RGA | B: "blauer" Farbkanal getrennt
Der Decoder ordnet die Kanalreihenfolge nach der Decodierung wieder in RGBA an, sodass das interne Blockformat für den Entwickler nicht sichtbar ist. Blöcke mit separaten Farb- und Alphakomponenten verfügen auch über zwei Sätze von Indexdaten: einen für den vektorisierten Satz von Kanälen und einen für den skalaren Kanal. (Im Modus 4 weisen diese Indizes eine unterschiedliche Breite von [ 2 oder 3 Bits ] auf. Modus 4 enthält auch eine 1-Bit-Auswahl, die angibt, ob der Vektor oder der Skalarkanal die 3-Bit-Indizes verwendet.)