Ressources de texture compressées
Les cartes de texture sont des images numérisées dessinées sur des formes tridimensionnelles pour ajouter des détails visuels. Elles sont mappées dans ces formes pendant la rastérisation, et le processus peut consommer de grandes quantités de la mémoire et du bus système. Pour réduire la quantité de mémoire consommée par les textures, Direct3D prend en charge la compression des surfaces de texture. Certains appareils Direct3D prennent en charge les surfaces de texture compressées en mode natif. Sur ces appareils, lorsque vous avez créé une surface compressée et chargé les données dans celle-ci, la surface peut être utilisée dans Direct3D comme n’importe quelle autre surface de texture. Direct3D gère la décompression lorsque la texture est mappée à un objet 3D.
Efficacité du stockage et compression de texture
Tous les formats de compression de texture sont des puissances de deux. Bien que cela ne signifie pas qu’une texture soit nécessairement carrée, cela signifie que x et y sont tous deux des pouvoirs de deux. Par exemple, si une texture est initialement de 512 sur 128 octets, le mipmapping suivant est de 256 par 64 et ainsi de suite, chaque niveau diminuant d’une puissance de deux. Aux niveaux inférieurs, où la texture est filtrée à 16 par 2 et à 8 par 1, il y aura des bits gaspillés, car le bloc de compression est toujours un bloc 4 par 4 de texels. Les parties inutilisées du bloc sont rembourrées.
Bien qu’il y ait des bits gaspiller aux niveaux les plus bas, le gain global reste significatif. Le pire cas est, en théorie, une texture 2K par 1 (2⁰ puissance). Ici, une seule ligne de pixels est encodée par bloc, tandis que le reste du bloc n’est pas utilisé.
Mélange de formats au sein d’une texture unique
Il est important de noter que toute texture unique doit spécifier que ses données sont stockées sous forme de 64 ou 128 bits par groupe de 16 texels. Si les blocs 64 bits (autrement dit, le format de compression de blocs BC1) sont utilisés pour la texture, il est possible de mélanger les formats opaque et alpha 1 bits par bloc au sein de la même texture. En d’autres termes, la comparaison de la magnitude entière non signée de color_0 et color_1 est effectuée de manière unique pour chaque bloc de 16 texels.
Une fois les blocs 128 bits utilisés, le canal alpha doit être spécifié en mode explicite (format BC2) ou interpolé (format BC3) pour l’ensemble de la texture. Comme pour la couleur, lorsque le mode interpolé (format BC3) est sélectionné, huit alphas interpolés ou six alphas interpolés peuvent être utilisés bloc par bloc. Là encore, la comparaison de la magnitude des alpha_0 et des alpha_1 est effectuée de manière unique, bloc par bloc.
Direct3D fournit des services de compression des surfaces utilisées pour la texturation de modèles 3D. Cette section fournit des informations sur la création et la manipulation des données dans une surface de texture compressée.
Dans cette section
Rubrique | Description |
---|---|
Le format de texture BC1 s’adresse aux textures opaques ou ayant une seule couleur transparente. |
|
Il existe deux façons d’encoder des cartes de texture qui présentent une transparence plus complexe. Dans chaque cas, un bloc qui décrit la transparence précède le bloc 64 bits déjà décrit. La transparence est représentée sous la forme d’une bitmap 4x4 avec 4 bits par pixel (encodage explicite), ou avec moins de bits et une interpolation linéaire qui est analogue à ce qui est utilisé pour l’encodage des couleurs. |
|
La compression de blocs est une technique de compression de texture avec perte pour réduire la taille de la texture et l’empreinte mémoire, ce qui améliore les performances. Une texture compressée en bloc peut être plus petite qu’une texture avec 32 bits par couleur. |
|
Cette section contient des informations sur les organization internes des formats de texture compressés. Vous n’avez pas besoin de ces détails pour utiliser des textures compressées, car vous pouvez utiliser des fonctions Direct3D pour la conversion vers et à partir de formats compressés. Toutefois, ces informations sont utiles si vous souhaitez utiliser directement des données de surface compressées. |
Rubriques connexes
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour