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. |