Freigeben über


BC7-Formatmodusreferenz

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 eine Reihe interpolierter Farben dazwischen dargestellt. Je nach Indexgenauigkeit des Blocks kann jede Teilmenge 4, 8 oder 16 mögliche Farben aufweisen.

Modus 0

BC7 Mode 0 weist die folgenden Merkmale auf:

  • 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 0-Bit-Layout-

Modus 1

BC7 Mode 1 weist die folgenden Merkmale auf:

  • Nur Farbkomponenten (kein Alpha)
  • 2 Teilmengen pro Block
  • RGBP 6.6.6.1-Endpunkte mit freigegebenem P-Bit pro Teilmenge)
  • 3-Bit-Indizes
  • 64 Partitionen

Modus 1-Bit-Layout-

Modus 2

BC7 Mode 2 weist die folgenden Merkmale auf:

  • Nur Farbkomponenten (kein Alpha)
  • 3 Teilmengen pro Block
  • RGB 5.5.5-Endpunkte
  • 2-Bit-Indizes
  • 64 Partitionen

Modus 2-Bit-Layout

Modus 3

BC7 Mode 3 weist die folgenden Merkmale auf:

  • 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 3-Bit-Layout-

Modus 4

BC7 Mode 4 weist die folgenden Merkmale auf:

  • 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-Komponentendrehung
  • 1-Bit-Indexauswahl (unabhängig davon, ob die Indizes 2- oder 3-Bit-Indizes verwendet werden)

Modus 4-Bit-Layout-

Modus 5

BC7 Mode 5 weist die folgenden Merkmale auf:

  • Farbkomponenten mit separater Alphakomponente
  • 1 Teilmenge pro Block
  • RGB 7.7.7.7 Farbendpunkte
  • 8-Bit-Alphaendpunkte
  • 16 x 2-Bit-Farbindizes
  • 16 x 2-Bit-Alphaindizes
  • 2-Bit-Komponentendrehung

Modus 5-Bit-Layout

Modus 6

BC7 Mode 6 weist die folgenden Merkmale auf:

  • Kombinierte Farb- und Alphakomponenten
  • Eine Teilmenge pro Block
  • RGBAP 7.7.7.7.1-Farbendpunkte (und Alpha)-Endpunkte (eindeutige P-Bit pro Endpunkt)
  • 16 x 4-Bit-Indizes

Modus 6-Bit-Layout-

Modus 7

BC7 Mode 7 weist die folgenden Merkmale auf:

  • Kombinierte Farb- und Alphakomponenten
  • 2 Teilmengen pro Block
  • RGBAP 5.5.5.5.1-Farbendpunkte (und Alpha)-Endpunkte (eindeutige P-Bit pro Endpunkt)
  • 2-Bit-Indizes
  • 64 Partitionen

Modus 7-Bit-Layout-

Bemerkungen

Modus 8 (das am wenigsten signifikante Byte ist auf 0x00 festgelegt) ist reserviert. Verwenden Sie sie nicht in Ihrem Encoder. Wenn Sie diesen Modus an die Hardware übergeben, wird ein für alle 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 weisen die Farbendpunkte eine RGB-only-Codierung auf, wobei die Alphakomponente für alle Texel auf 1,0 decodiert ist.

  • 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 haben sie einen effektiven Vektor und einen skalaren Kanal separat codiert, wobei der Vektor häufig die Farbkanäle angibt [R, G, B] und der Skalar den Alphakanal [A]. Zur Unterstützung dieses Ansatzes wird ein separates 2-Bit-Feld in der Codierung bereitgestellt, das die Spezifikation der separaten Kanalcodierung als skalaren Wert zulässt. Daher kann der Block eine der folgenden vier verschiedenen Darstellungen dieser Alphacodierung aufweisen (wie durch das 2-Bit-Feld angegeben):

    • RGB|A: Alphakanal getrennt
    • AGB|R: "roter" Farbkanal getrennt
    • RAB|G: "grüner" Farbkanal getrennt
    • RGA|B: "blauer" Farbkanal getrennt

    Der Decoder sortiert die Kanalreihenfolge nach der Decodierung zurück an RGBA, sodass das interne Blockformat für den Entwickler unsichtbar ist. Blöcke mit separaten Farb- und Alphakomponenten verfügen auch über zwei Sätze von Indexdaten: eine für den vektorierten Satz von Kanälen und eine für den skalaren Kanal. (Bei Modus 4 weisen diese Indizes unterschiedliche Breite auf [2 oder 3 Bits] auf. Modus 4 enthält auch einen 1-Bit-Selektor, der angibt, ob der Vektor oder der Skalarkanal die 3-Bit-Indizes verwendet.)

BC7-Format-