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