Compression de blocs de texture dans Direct3D 11

La prise en charge de la compression de blocs (BC) pour les textures a été étendue dans Direct3D 11 pour inclure les algorithmes BC6H et BC7. BC6H prend en charge les données de source de couleurs à plage dynamique élevée, et BC7 fournit une compression de qualité supérieure à la moyenne avec moins d’artefacts pour les données sources RVB standard.

Pour plus d’informations sur la prise en charge des algorithmes de compression de blocs avant Direct3D 11, y compris la prise en charge des formats BC1 à BC5, consultez Compression de bloc (Direct3D 10).

Remarque sur les formats de fichier : Les formats de compression de texture BC6H et BC7 utilisent le format de fichier DDS pour stocker les données de texture compressées. Pour plus d’informations, consultez le Guide de programmation pour DDS .

Formats de compression de bloc pris en charge dans Direct3D 11

Données sources Résolution de compression de données minimale requise Format recommandé Niveau de fonctionnalité minimum pris en charge
Couleur à trois canaux avec canal alpha Trois canaux de couleur (5 bits:6 bits:5 bits), avec 0 ou 1 bit(s) d’alpha BC1 Direct3D 9.1
Couleur à trois canaux avec canal alpha Trois canaux de couleur (5 bits:6 bits:5 bits), avec 4 bits d’alpha BC2 Direct3D 9.1
Couleur à trois canaux avec canal alpha Trois canaux de couleur (5 bits:6 bits:5 bits) avec 8 bits d’alpha BC3 Direct3D 9.1
Couleur à un canal Canal de couleur unique (8 bits) BC4 Direct3D 10
Couleur à deux canaux Deux canaux de couleur (8 bits:8 bits) BC5 Direct3D 10
Couleur HDR (Plage dynamique élevée) à trois canaux Trois canaux de couleur (16 bits:16 bits:16 bits) en virgule flottante « moitié » * BC6H Direct3D 11
Couleur à trois canaux, canal alpha facultatif Trois canaux de couleur (4 à 7 bits par canal) avec 0 à 8 bits d’alpha BC7 Direct3D 11

*"Half » virgule flottante est une valeur de 16 bits qui se compose d’un bit de signe facultatif, d’un exposant biaisé de 5 bits et d’une mantisse de 10 ou 11 bits.

Formats BC1, BC2 et B3

Les formats BC1, BC2 et BC3 sont équivalents aux formats de compression de texture DXTn Direct3D 9 et sont identiques aux formats Direct3D 10 BC1, BC2 et BC3 correspondants. La prise en charge de ces trois formats est requise par tous les niveaux de fonctionnalité (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 et D3D_FEATURE_LEVEL_11_0).

Format de compression de bloc Format DXGI Format équivalent Direct3D 9 Octets par bloc de pixels 4x4
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

*Ces schémas de compression (DXT2 et DXT4) ne font aucune distinction entre les formats alpha prémultipliés Direct3D 9 et les formats alpha standard. Cette distinction doit être gérée par les nuanceurs programmables au moment du rendu.

Formats BC4 et BC5

Format de compression de bloc Format DXGI Format équivalent Direct3D 9 Octets par bloc de pixels 4x4
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

Pour plus d’informations sur ce format, consultez la documentation sur le format BC6H .

Format de compression de bloc Format DXGI Format équivalent Direct3D 9 Octets par bloc de pixels 4x4
BC6H DXGI_FORMAT_BC6H_UF16, DXGI_FORMAT_BC6H_SF16, DXGI_FORMAT_BC6H_TYPELESS N/A 16

Le format BC6H peut sélectionner différents modes d’encodage pour chaque bloc de pixels 4x4. Au total, 14 modes d’encodage différents sont disponibles, chacun avec des compromis légèrement différents dans la qualité visuelle résultante de la texture affichée. Le choix des modes permet un décodage rapide par le matériel avec le niveau de qualité sélectionné ou adapté en fonction du contenu source, mais il augmente également considérablement la complexité de l’espace de recherche.

BC7 Format

Pour plus d’informations sur ce format, consultez la documentation sur le format BC7 .

Format de compression de bloc Format DXGI Format équivalent Direct3D 9 Octets par bloc de pixels 4x4
BC7 DXGI_FORMAT_BC7_UNORM, DXGI_FORMAT_BC7_UNORM_SRGB DXGI_FORMAT_BC7_TYPELESS N/A 16

Le format BC7 peut sélectionner différents modes d’encodage pour chaque bloc de pixels 4x4. Au total, 8 modes d’encodage différents sont disponibles, chacun avec des compromis légèrement différents dans la qualité visuelle résultante de la texture affichée. Le choix des modes permet un décodage rapide par le matériel avec le niveau de qualité sélectionné ou adapté en fonction du contenu source, mais il augmente également considérablement la complexité de l’espace de recherche.

Contenu de cette section

Rubrique Description
BC6H Format
Le format BC6H est un format de compression de texture conçu pour prendre en charge les espaces de couleurs HDR (High Dynamic Range) dans les données sources.
Format BC7
Le format BC7 est un format de compression de texture utilisé pour la compression de haute qualité des données RVB et RVBA.
Informations de référence sur le mode de format BC7
Cette documentation contient une liste des 8 modes de bloc et des allocations de bits pour les blocs de format de compression de texture BC7.

Compression de bloc (Direct3D 10)

Textures