Texturblockkomprimierung in Direct3D 11

Die Unterstützung der Blockkomprimierung (Block Compression, BC) für Texturen wurde in Direct3D 11 um die Algorithmen BC6H und BC7 erweitert. BC6H unterstützt Farbquellendaten mit hohem Dynamischen Bereich, und BC7 bietet eine überdurchschnittliche Qualitätskomprimierung mit weniger Artefakten für Standard-RGB-Quelldaten.

Spezifischere Informationen zur Unterstützung von Blockkomprimierungsalgorithmus vor Direct3D 11, einschließlich der Unterstützung für die Formate BC1 bis BC5, finden Sie unter Block compression (Direct3D 10).

Hinweis zu Dateiformaten: Die Texturkomprimierungsformate BC6H und BC7 verwenden das DDS-Dateiformat zum Speichern der komprimierten Texturdaten. Weitere Informationen finden Sie im Programmierhandbuch für DDS .

In Direct3D 11 unterstützte Blockkomprimierungsformate

Quelldaten Erforderliche Datenkomprimierungsauflösung Empfohlenes Format Unterstützte Mindestfunktionsebene
Dreikanalfarbe mit Alphakanal Drei Farbkanäle (5 Bits:6 Bits:5 Bits), mit 0 oder 1 Bit(s) alpha BC1 Direct3D 9.1
Dreikanalfarbe mit Alphakanal Drei Farbkanäle (5 Bits:6 Bits:5 Bits), mit 4 Bits Alpha BU2 Direct3D 9.1
Dreikanalfarbe mit Alphakanal Drei Farbkanäle (5 Bits:6 Bits:5 Bits) mit 8 Bits Alpha BC3 Direct3D 9.1
Einkanalige Farbe Ein Farbkanal (8 Bit) BC4 Direct3D 10
Zweikanalige Farbe Zwei Farbkanäle (8 Bit: 8 Bits) BC5 Direct3D 10
HDR-Farbe (High Dynamic Range) mit drei Kanälen Drei Farbkanäle (16 Bit: 16 Bits:16 Bits) in "halber" Gleitkomma* BC6H Direct3D 11
Dreikanalfarbe, Alphakanal optional Drei Farbkanäle (4 bis 7 Bit pro Kanal) mit 0 bis 8 Bit Alpha BC7 Direct3D 11

*"Half"-Gleitkomma ist ein 16-Bit-Wert, der aus einem optionalen Vorzeichenbit, einem voreingenommenen 5-Bit-Exponenten und einer 10- oder 11-Bit-Mantissa besteht.

BC1-, BC2- und B3-Formate

Die Formate BC1, BC2 und BC3 entsprechen den Direct3D 9 DXTn-Texturkomprimierungsformaten und sind mit den entsprechenden Direct3D 10 BC1-, BC2- und BC3-Formaten identisch. Unterstützung für diese drei Formate ist für alle Featureebenen (D3D_FEATURE_LEVEL_9_1, D3D_FEATURE_LEVEL_9_2, D3D_FEATURE_LEVEL_9_3, D3D_FEATURE_LEVEL_10_0, D3D_FEATURE_LEVEL_10_1 und D3D_FEATURE_LEVEL_11_0) erforderlich.

Blockkomprimierungsformat DXGI-Format Direct3D 9-äquivalentes Format Bytes pro 4x4 Pixelblock
BC1 DXGI_FORMAT_BC1_UNORM, DXGI_FORMAT_BC1_UNORM_SRGB, DXGI_FORMAT_BC1_TYPELESS D3DFMT_DXT1, FourCC="DXT1" 8
BU2 DXGI_FORMAT_BC2_UNORM, DXGI_FORMAT_BC2_UNORM_SRGB, DXGI_FORMAT_BC2_TYPELESS D3DFMT_DXT2*, FourCC="DXT2", D3DFMT_DXT3, FourCC="DXT3" 16
BC3 DXGI_FORMAT_BC3_UNORM, DXGI_FORMAT_BC3_UNORM_SRGB, DXGI_FORMAT_BC3_TYPELESS D3DFMT_DXT4*, FourCC="DXT4", D3DFMT_DXT5, FourCC="DXT5" 16

*Diese Komprimierungsschemas (DXT2 und DXT4) unterscheiden nicht zwischen den vorab multiplizierten Direct3D 9-Alphaformaten und den Standard-Alphaformaten. Diese Unterscheidung muss von den programmierbaren Shadern zur Renderzeit behandelt werden.

BC4- und BC5-Formate

Blockkomprimierungsformat DXGI-Format Direct3D 9-äquivalentes Format Bytes pro 4x4 Pixelblock
BC4 DXGI_FORMAT_BC4_UNORM, DXGI_FORMAT_BC4_SNORM, DXGI_FORMAT_BC4_TYPELESS FourCC="ATI1" 8
BC5 DXGI_FORMAT_BC5_UNORM, DXGI_FORMAT_BC5_SNORM, DXGI_FORMAT_BC5_TYPELESS FourCC="ATI2" 16

BC6H-Format

Ausführlichere Informationen zu diesem Format finden Sie in der Dokumentation zum BC6H-Format .

Blockkomprimierungsformat DXGI-Format Direct3D 9-äquivalentes Format Bytes pro 4x4 Pixelblock
BC6H DXGI_FORMAT_BC6H_UF16, DXGI_FORMAT_BC6H_SF16, DXGI_FORMAT_BC6H_TYPELESS 16

Das BC6H-Format kann verschiedene Codierungsmodi für jeden 4x4-Pixelblock auswählen. Insgesamt stehen 14 verschiedene Codierungsmodi zur Verfügung, die jeweils leicht unterschiedliche Kompromisse in der resultierenden visuellen Qualität der angezeigten Textur aufweisen. Die Wahl der Modi ermöglicht eine schnelle Decodierung durch die Hardware mit dem entsprechend dem Quellinhalt ausgewählten oder angepassten Qualitätsniveau, aber es erhöht auch die Komplexität des Suchraums erheblich.

BC7-Format

Ausführlichere Informationen zu diesem Format finden Sie in der Dokumentation zum BC7-Format .

Blockkomprimierungsformat DXGI-Format Direct3D 9-äquivalentes Format Bytes pro 4x4 Pixelblock
BC7 DXGI_FORMAT_BC7_UNORM, DXGI_FORMAT_BC7_UNORM_SRGB, DXGI_FORMAT_BC7_TYPELESS 16

Das BC7-Format kann verschiedene Codierungsmodi für jeden 4x4-Pixelblock auswählen. Insgesamt stehen 8 verschiedene Codierungsmodi zur Verfügung, die jeweils leicht unterschiedliche Kompromisse in der resultierenden visuellen Qualität der angezeigten Textur aufweisen. Die Wahl der Modi ermöglicht eine schnelle Decodierung durch die Hardware mit der ausgewählten oder angepassten Qualitätsstufe an den Quellinhalt, erhöht aber auch die Komplexität des Suchbereichs erheblich.

In diesem Abschnitt

Thema Beschreibung
BC6H-Format
Das BC6H-Format ist ein Texturkomprimierungsformat, das entwickelt wurde, um HDR-Farbräume (High Dynamic Range) in Quelldaten zu unterstützen.
BC7-Format
Das BC7-Format ist ein Texturkomprimierungsformat, das für die hochwertige Komprimierung von RGB- und RGBA-Daten verwendet wird.
BC7-Formatmodusreferenz
Diese Dokumentation enthält eine Liste der 8 Blockmodi und Bitzuordnungen für BC7-Texturkomprimierungsformate.

Blockkomprimierung (Direct3D 10)

Texturen