Informations de référence sur le mode de format BC7
Cette documentation contient une liste des 8 modes de blocs et allocations de bits pour les blocs de format de compression de texture BC7.
Les couleurs de chaque sous-ensemble d’un bloc sont représentées par deux couleurs de point de terminaison explicites et un ensemble de couleurs interpolées entre elles. Selon la précision de l’index du bloc, chaque sous-ensemble peut avoir 4, 8 ou 16 couleurs possibles.
Mode 0
BC7 Mode 0 présente les caractéristiques suivantes :
- Composants de couleur uniquement (pas d’alpha)
- 3 sous-ensembles par bloc
- Points de terminaison RVBP 4.4.4.1 avec un P-bit unique par point de terminaison
- Index 3 bits
- 16 partitions
Mode 1
BC7 Mode 1 présente les caractéristiques suivantes :
- Composants de couleur uniquement (pas d’alpha)
- 2 sous-ensembles par bloc
- Points de terminaison RVBP 6.6.6.1 avec un P-bit partagé par sous-ensemble)
- Index 3 bits
- 64 partitions
Mode 2
BC7 Mode 2 présente les caractéristiques suivantes :
- Composants de couleur uniquement (pas d’alpha)
- 3 sous-ensembles par bloc
- Points de terminaison RVB 5.5.5
- Index 2 bits
- 64 partitions
Mode 3
BC7 Mode 3 présente les caractéristiques suivantes :
- Composants de couleur uniquement (pas d’alpha)
- 2 sous-ensembles par bloc
- Points de terminaison RVBP 7.7.7.1 avec un P-bit unique par sous-ensemble)
- Index 2 bits
- 64 partitions
Mode 4
BC7 Mode 4 présente les caractéristiques suivantes :
- Composants de couleur avec composant alpha distinct
- 1 sous-ensemble par bloc
- Points de terminaison de couleur RVB 5.5.5
- Points de terminaison alpha 6 bits
- 16 x index 2 bits
- 16 x index 3 bits
- Rotation des composants 2 bits
- Sélecteur d’index 1 bits (si les index 2 ou 3 bits sont utilisés)
Mode 5
BC7 Mode 5 présente les caractéristiques suivantes :
- Composants de couleur avec composant alpha distinct
- 1 sous-ensemble par bloc
- Points de terminaison de couleur RVB 7.7.7
- Points de terminaison alpha 8 bits
- Index de couleur 16 x 2 bits
- Index alpha 16 x 2 bits
- Rotation des composants 2 bits
Mode 6
BC7 Mode 6 présente les caractéristiques suivantes :
- Composants de couleur et alpha combinés
- Un sous-ensemble par bloc
- Points de terminaison de couleur (et alpha) RVBAP 7.7.7.1 (bit P unique par point de terminaison)
- Index 16 x 4 bits
Mode 7
BC7 Mode 7 présente les caractéristiques suivantes :
- Composants de couleur et alpha combinés
- 2 sous-ensembles par bloc
- Points de terminaison de couleur (et alpha) RVBAP 5.5.5.1 (bit P unique par point de terminaison)
- Index 2 bits
- 64 partitions
Notes
Le mode 8 (l’octet le moins significatif est défini sur 0x00) est réservé. Ne l’utilisez pas dans votre encodeur. Si vous passez ce mode au matériel, un bloc initialisé à tous les zéros est retourné.
Dans BC7, vous pouvez encoder le composant alpha de l’une des manières suivantes :
Types de blocs sans encodage de composant alpha explicite. Dans ces blocs, les points de terminaison de couleur ont un encodage RVB uniquement, avec le composant alpha décodé en 1.0 pour tous les texels.
Types de blocs avec des composants de couleur et alpha combinés. Dans ces blocs, les valeurs de couleur de point de terminaison sont spécifiées au format RVBA, et les valeurs de composant alpha sont interpolées avec les valeurs de couleur.
Types de blocs avec des composants de couleur et alpha séparés. Dans ces blocs, les valeurs de couleur et alpha sont spécifiées séparément, chacune avec son propre ensemble d’index. Par conséquent, ils ont un vecteur effectif et un canal scalaire encodés séparément, où le vecteur spécifie généralement les canaux de couleur [R, G, B] et le scalaire spécifie le canal alpha [A]. Pour prendre en charge cette approche, un champ 2 bits distinct est fourni dans l’encodage, ce qui permet de spécifier l’encodage de canal distinct en tant que valeur scalaire. Par conséquent, le bloc peut avoir l’une des quatre représentations différentes suivantes de cet encodage alpha (comme indiqué par le champ 2 bits) :
- RVB| A : canal alpha séparé
- AGB| R : canal de couleur « rouge » séparé
- RAB| G : canal de couleur « vert » séparé
- RGA| B : canal de couleur « bleu » séparé
Le décodeur réorganise l’ordre de canal en RVBA après le décodage, de sorte que le format de bloc interne est invisible pour le développeur. Les blocs avec des composants de couleur et alpha distincts ont également deux jeux de données d’index : un pour l’ensemble vectoriel de canaux et un pour le canal scalaire. (Dans le cas du mode 4, ces index sont de largeurs différentes [2 ou 3 bits]. Le mode 4 contient également un sélecteur 1 bits qui spécifie si le vecteur ou le canal scalaire utilise les index 3 bits.)
Rubriques connexes