Komprimierte Texturformate
Dieser Abschnitt enthält Informationen zur internen Organisation komprimierter Texturformate. Sie benötigen diese Details nicht für die Verwendung komprimierter Texturen, da Sie Direct3D-Funktionen für die Konvertierung in und aus komprimierten Formaten verwenden können. Diese Informationen sind jedoch hilfreich, wenn Sie direkt mit komprimierten Oberflächendaten arbeiten möchten.
Direct3D verwendet ein Komprimierungsformat, das Texturzuordnungen in 4x4-Texelblöcke unterteilt. Enthält die Textur keine Transparenz - ist undurchsichtig - oder wenn die Transparenz durch ein 1-Bit-Alpha angegeben wird, stellt ein 8-Byte-Block den Texturzuordnungsblock dar. Wenn die Texturzuordnung transparente Texel enthält, stellt ein Alphakanal einen 16-Byte-Block dar.
Jede einzelne Textur muss angeben, dass ihre Daten als 64 oder 128 Bit pro Gruppe von 16 Texeln gespeichert werden. Wenn 64-Bit-Blöcke – d. h. BC1 - für die Textur verwendet werden, ist es möglich, die undurchsichtigen und 1-Bit-Alphaformate pro Block innerhalb derselben Textur zu mischen. Mit anderen Worten, der Vergleich der nicht signierten ganzzahligen Größe von color_0 und color_1 wird für jeden Block von 16 Texeln eindeutig durchgeführt.
Wenn 128-Bit-Blöcke verwendet werden, muss der Alphakanal entweder im expliziten (Format BC2) oder im interpolierten Modus (Format BC3) für die gesamte Textur angegeben werden. Wie bei der Farbe können bei auswahl des interpolierten Modus entweder acht interpolierte Alphas oder sechs interpolierte Alphas-Modus auf Blockbasis verwendet werden. Auch hier erfolgt der Größenvergleich von alpha_0 und alpha_1 eindeutig auf Blockbasis.
Der Abstand für BCn-Formate wird in Bytes gemessen (nicht in Blöcken). Wenn Sie beispielsweise eine Breite von 16 haben, haben Sie eine Neigung von vier Blöcken (4*8 für BC1, 4*16 für BC2 oder BC3).
Verwandte Themen