Texturblockkomprimierung
Die Blockkomprimierungsunterstützung (BC) für Texturen wurde in Direct3D 11 erweitert, um die BC6H- und BC7-Algorithmen einzuschließen. BC6H unterstützt Farbquellendaten mit hohem Dynamischen Bereich, und BC7 bietet eine bessere als durchschnittliche Qualitätskomprimierung mit weniger Artefakten für Standard-RGB-Quelldaten.
Spezifischere Informationen zur Unterstützung des Blockkomprimierungsalgorithmus vor Direct3D 11, einschließlich der Unterstützung für bc1 bis BC5-Formate, finden Sie unter Blockkomprimierung (Direct3D 10).
**Hinweis zu Dateiformaten: ** Die Bc6H- und BC7-Texturkomprimierungsformate 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 | Minimale erforderliche Datenkomprimierungsauflösung | Empfohlenes Format | Mindest unterstützte Featureebene |
---|---|---|---|
Farbe mit drei Kanälen mit Alphakanal | Drei Farbkanäle (5 Bit:6 Bits:5 Bit) mit 0 oder 1 Bit(n) alphan | BU1 | Direct3D 9.1 |
Farbe mit drei Kanälen mit Alphakanal | Drei Farbkanäle (5 Bit:6 Bits:5 Bit) mit 4 Bit Alpha | BU2 | Direct3D 9.1 |
Farbe mit drei Kanälen mit Alphakanal | Drei Farbkanäle (5 Bit:6 Bits:5 Bit) mit 8 Bit Alpha | BU3 | Direct3D 9.1 |
Einkanalfarbe | Ein Farbkanal (8 Bit) | BC4 | Direct3D 10 |
Farbe mit zwei Kanälen | Zwei Farbkanäle (8 Bit:8 Bit) | BC5 | Direct3D 10 |
Hdr-Farbe (High Dynamic Range) mit drei Kanälen | Drei Farbkanäle (16 Bits:16 Bits:16 Bit) in "halber" Gleitkomma* | BC6H | Direct3D 11 |
3-Kanal-Farbe, Alphakanal optional | Drei Farbkanäle (4 bis 7 Bit pro Kanal) mit 0 bis 8 Bit Alpha | BC7 | Direct3D 11 |
*"Halb"-Gleitkomma ist ein 16-Bit-Wert, der aus einem optionalen Vorzeichenbit, einem 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 entsprechen den entsprechenden Direct3D 10 BC1-, BC2- und BC3-Formaten. Die 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-Äquivalentformat | Bytes pro 4x4-Pixelblock |
---|---|---|---|
BU1 | 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 |
BU3 | 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 sich nicht zwischen den vor 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-Äquivalentformat | 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 BC6H-Formatdokumentation .
Blockkomprimierungsformat | DXGI-Format | Direct3D 9-Äquivalentformat | Bytes pro 4x4-Pixelblock |
---|---|---|---|
BC6H | DXGI_FORMAT_BC6H_UF16, DXGI_FORMAT_BC6H_SF16, DXGI_FORMAT_BC6H_TYPELESS | N/V | 16 |
Das BC6H-Format kann unterschiedliche Codierungsmodi für jeden 4x4-Pixelblock auswählen. Insgesamt sind 14 verschiedene Codierungsmodi verfügbar, jeweils mit geringfügig unterschiedlichen Kompromissen in der resultierenden visuellen Qualität der angezeigten Textur. Die Auswahl der Modi ermöglicht eine schnelle Decodierung durch die Hardware mit ausgewählter oder angepasster Qualitätsstufe nach dem Quellinhalt, erhöht aber auch die Komplexität des Suchraums erheblich.
BC7-Format
Ausführlichere Informationen zu diesem Format finden Sie in der BC7 Format-Dokumentation .
Blockkomprimierungsformat | DXGI-Format | Direct3D 9-Äquivalentformat | Bytes pro 4x4-Pixelblock |
---|---|---|---|
BC7 | DXGI_FORMAT_BC7_UNORM, DXGI_FORMAT_BC7_UNORM_SRGB, DXGI_FORMAT_BC7_TYPELESS | N/V | 16 |
Das BC7-Format kann unterschiedliche Codierungsmodi für jeden 4x4-Pixelblock auswählen. Insgesamt sind 8 verschiedene Codierungsmodi verfügbar, jeweils mit geringfügig unterschiedlichen Kompromissen in der resultierenden visuellen Qualität der angezeigten Textur. Die Auswahl der Modi ermöglicht eine schnelle Decodierung durch die Hardware mit ausgewählter oder angepasster Qualitätsstufe nach dem Quellinhalt, erhöht aber auch die Komplexität des Suchraums erheblich.
Verwandte Themen