Dela via


Komprimering av strukturblock i Direct3D 11

Stöd för blockkomprimering (BC) för texturer har utökats i Direct3D 11 till att omfatta BC6H- och BC7-algoritmerna. BC6H stöder färgkälldata med hög dynamiskt intervall, och BC7 ger bättre kvalitetskomprimering än genomsnittet med färre artefakter för RGB-standardkälldata.

Mer specifik information om stöd för blockkomprimeringsalgoritmer före Direct3D 11, inklusive stöd för BC1 till BC5-format, finns i Blockkomprimering (Direct3D 10).

Obs! Filformat: BC6H- och BC7-texturkomprimeringsformat använder DDS-filformatet för lagring av komprimerade texturdata. Mer information finns i Programmeringsguide för DDS- för mer information.

Blockkomprimeringsformat som stöds i Direct3D 11

Källdata Minsta möjliga datakomprimeringsmatchning Rekommenderat format Lägsta funktionsnivå som stöds
Trekanalsfärg med alfakanal Tre färgkanaler (5 bitar:6 bitar:5 bitar), med 0 eller 1 bit alfa BC1 Direct3D 9.1
Trekanalsfärg med alfakanal Tre färgkanaler (5 bitar:6 bitar:5 bitar), med 4 bitar alfa BC2 Direct3D 9.1
Trekanalsfärg med alfakanal Tre färgkanaler (5 bitar:6 bitar:5 bitar) med 8 bitar alfa BC3 Direct3D 9.1
Färg på en kanal En färgkanal (8 bitar) BC4 Direct3D 10
Färg med två kanaler Två färgkanaler (8 bitar:8 bitar) BC5 Direct3D 10
HDR-färg (High Dynamic Range) med tre kanaler Tre färgkanaler (16 bitar:16 bitar:16 bitar) i "halv" flyttal* BC6H Direct3D 11
Trekanalsfärg, alfakanal valfritt Tre färgkanaler (4 till 7 bitar per kanal) med 0 till 8 bitar alfa BC7 Direct3D 11

*"Halv" flyttal är ett 16-bitars värde som består av en valfri teckenbit, en 5-bitars partisk exponent och en 10- eller 11-bitars mantissa.

BC1-, BC2- och B3-format

BC1-, BC2- och BC3-formaten motsvarar Direct3D 9 DXTn-texturkomprimeringsformaten och är desamma som motsvarande Direct3D 10 BC1-, BC2- och BC3-format. Stöd för dessa tre format krävs av alla funktionsnivåer (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 och D3D_FEATURE_LEVEL_11_0).

Blockera komprimeringsformat DXGI-format Direct3D 9 motsvarande format Byte per block på 4 x 4 bildpunkter
BC1 DXGI_FORMAT_BC1_UNORM, DXGI_FORMAT_BC1_UNORM_SRGB, DXGI_FORMAT_BC1_TYPELESS D3DFMT_DXT1, FourCC="DXT1" 8
BC2 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

*Dessa komprimeringsscheman (DXT2 och DXT4) gör ingen skillnad mellan de förplikerade alfaformaten direct3D 9 och standard alfaformaten. Den här skillnaden måste hanteras av de programmerbara skuggarna vid återgivningstiden.

BC4- och BC5-format

Blockera komprimeringsformat DXGI-format Direct3D 9 motsvarande format Byte per block på 4 x 4 bildpunkter
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

Mer detaljerad information om det här formatet finns i dokumentationen BC6H Format.

Blockera komprimeringsformat DXGI-format Direct3D 9 motsvarande format Byte per block på 4 x 4 bildpunkter
BC6H DXGI_FORMAT_BC6H_UF16, DXGI_FORMAT_BC6H_SF16, DXGI_FORMAT_BC6H_TYPELESS Ej tillämpligt 16

BC6H-formatet kan välja olika kodningslägen för varje block på 4 x 4 bildpunkter. Totalt finns 14 olika kodningslägen tillgängliga, var och en med något olika kompromisser i den resulterande visuella kvaliteten på den visade strukturen. Valet av lägen möjliggör snabb avkodning av maskinvaran med den kvalitetsnivå som valts eller anpassats enligt källinnehållet, men det ökar också avsevärt komplexiteten i sökutrymmet.

BC7-format

Mer detaljerad information om det här formatet finns i dokumentationen BC7 Format.

Blockera komprimeringsformat DXGI-format Direct3D 9 motsvarande format Byte per block på 4 x 4 bildpunkter
BC7 DXGI_FORMAT_BC7_UNORM, DXGI_FORMAT_BC7_UNORM_SRGB, DXGI_FORMAT_BC7_TYPELESS Ej tillämpligt 16

BC7-formatet kan välja olika kodningslägen för varje block på 4 x 4 bildpunkter. Totalt finns 8 olika kodningslägen tillgängliga, var och en med något olika kompromisser i den resulterande visuella kvaliteten på den visade strukturen. Valet av lägen möjliggör snabb avkodning av maskinvaran med den kvalitetsnivå som valts eller anpassats enligt källinnehållet, men det ökar också avsevärt komplexiteten i sökutrymmet.

I det här avsnittet

Ämne Beskrivning
BC6H-format
BC6H-formatet är ett texturkomprimeringsformat som har utformats för att stödja hdr-färgrymder (high-dynamic range) i källdata.
BC7-format
BC7-formatet är ett texturkomprimeringsformat som används för högkvalitativ komprimering av RGB- och RGBA-data.
BC7-formatlägesreferens
Den här dokumentationen innehåller en lista över 8 blocklägen och bitallokeringar för BC7-texturkomprimeringsformatblock.

blockkomprimering (Direct3D 10)

texturer