Delen via


Structuurblokcompressie in Direct3D 11

Ondersteuning voor blokcompressie (BC) voor patronen is uitgebreid in Direct3D 11 om de BC6H- en BC7-algoritmen op te nemen. BC6H ondersteunt kleurbrongegevens van hoog dynamisch bereik en BC7 biedt betere dan gemiddelde kwaliteitscompressie met minder artefacten voor standaard RGB-brongegevens.

Zie Blokcompressie (Direct3D 10)voor meer specifieke informatie over ondersteuning voor blokcompressiealgoritmen vóór Direct3D 11, inclusief ondersteuning voor de BC1 tot en met BC5-indelingen.

Opmerking over bestandsindelingen: de compressieindelingen BC6H en BC7 gebruiken de DDS-bestandsindeling voor het opslaan van de gecomprimeerde structuurgegevens. Zie de Programmeerhandleiding voor DDS- voor meer informatie.

Compressie-indelingen blokkeren die worden ondersteund in Direct3D 11

Brongegevens Minimale vereiste resolutie voor gegevenscompressie Aanbevolen indeling Minimaal ondersteund functieniveau
Driekanaalskleur met alfakanaal Drie kleurkanalen (5 bits:6 bits:5 bits), met 0 of 1 bits alfa BC1 Direct3D 9.1
Driekanaalskleur met alfakanaal Drie kleurkanalen (5 bits:6 bits:5 bits), met 4 bits alfa BC2 Direct3D 9.1
Driekanaalskleur met alfakanaal Drie kleurkanalen (5 bits:6 bits:5 bits) met 8 bits alfa BC3 Direct3D 9.1
Kleur van één kanaal Eén kleurkanaal (8 bits) BC4 Direct3D 10
Tweekanaalskleur Twee kleurkanalen (8 bits:8 bits) BC5 Direct3D 10
HDR-kleur (High Dynamic Range) met drie kanalen Drie kleurkanalen (16 bits:16 bits:16 bits) in 'half' drijvende komma* BC6H Direct3D 11
Driekanaalskleur, alfakanaal optioneel Drie kleurkanalen (4 tot 7 bits per kanaal) met 0 tot 8 bits alfa BC7 Direct3D 11

*"Half" drijvende komma is een 16-bits waarde die bestaat uit een optionele teken-bit, een 5-bits exponent en een 10- of 11-bits mantissa.

BC1-, BC2- en B3-indelingen

De indelingen BC1, BC2 en BC3 zijn gelijk aan de indelingen direct3D 9 DXTn-textuurcompressie en zijn hetzelfde als de bijbehorende Indelingen voor Direct3D 10 BC1, BC2 en BC3. Ondersteuning voor deze drie indelingen is vereist voor alle functieniveaus (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 en D3D_FEATURE_LEVEL_11_0).

Compressie-indeling blokkeren DXGI-indeling Equivalente indeling van Direct3D 9 Bytes per 4x4 pixelblok
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

*Deze compressieschema's (DXT2 en DXT4) maken geen onderscheid tussen de vooraf vermenigvuldigde alfa-indelingen van Direct3D 9 en de standaard alfa-indelingen. Dit onderscheid moet worden verwerkt door de programmeerbare shaders op het moment van renderen.

BC4- en BC5-indelingen

Compressie-indeling blokkeren DXGI-indeling Equivalente indeling van Direct3D 9 Bytes per 4x4 pixelblok
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-indeling

Zie de documentatie BC6H Format voor meer informatie over deze indeling.

Compressie-indeling blokkeren DXGI-indeling Equivalente indeling van Direct3D 9 Bytes per 4x4 pixelblok
BC6H DXGI_FORMAT_BC6H_UF16, DXGI_FORMAT_BC6H_SF16, DXGI_FORMAT_BC6H_TYPELESS N.V.T 16

De BC6H-indeling kan verschillende coderingsmodi voor elk blok van 4x4 pixels selecteren. Er zijn in totaal 14 verschillende coderingsmodi beschikbaar, elk met iets andere afwegingen in de resulterende visuele kwaliteit van het weergegeven patroon. De keuze van modi maakt snelle decodering door de hardware mogelijk met het kwaliteitsniveau geselecteerd of aangepast op basis van de broninhoud, maar het verhoogt ook de complexiteit van de zoekruimte aanzienlijk.

BC7-indeling

Zie de documentatie BC7 Format voor meer informatie over deze indeling.

Compressie-indeling blokkeren DXGI-indeling Equivalente indeling van Direct3D 9 Bytes per 4x4 pixelblok
BC7 DXGI_FORMAT_BC7_UNORM, DXGI_FORMAT_BC7_UNORM_SRGB, DXGI_FORMAT_BC7_TYPELESS N.V.T 16

De BC7-indeling kan verschillende coderingsmodi voor elk blok van 4x4 pixels selecteren. Er zijn in totaal 8 verschillende coderingsmodi beschikbaar, elk met iets verschillende afwegingen in de resulterende visuele kwaliteit van het weergegeven patroon. De keuze van modi maakt snelle decodering door de hardware mogelijk met het kwaliteitsniveau geselecteerd of aangepast op basis van de broninhoud, maar het verhoogt ook de complexiteit van de zoekruimte aanzienlijk.

In deze sectie

Onderwerp Beschrijving
BC6H-indeling
De BC6H-indeling is een structuurcompressie-indeling die is ontworpen ter ondersteuning van HDR-kleurruimten (High-Dynamic Range) in brongegevens.
BC7-indeling
De BC7-indeling is een patrooncompressie-indeling die wordt gebruikt voor hoogwaardige compressie van RGB- en RGBA-gegevens.
Naslaginformatie BC7-indelingsmodus
Deze documentatie bevat een lijst met de 8 blokmodi en bittoewijzingen voor compressieblokken voor BC7-patronen.

Blokcompressie (Direct3D 10)

patronen