Partager via


Modes d’adressage de texture

Votre application Direct3D peut affecter des coordonnées de texture à n’importe quel sommet de n’importe quelle primitive. En règle générale, les coordonnées u- et v-texture que vous affectez à un sommet sont comprises entre 0,0 et 1,0 inclus. Toutefois, en affectant des coordonnées de texture en dehors de cette plage, vous pouvez créer certains effets de texturation spéciaux. .

Vous contrôlez ce que Fait Direct3D avec les coordonnées de texture qui se trouvent en dehors de la plage [0.0, 1.0] en définissant le mode d’adressage de texture. Par instance, vous pouvez demander à votre application de définir le mode d’adressage de texture afin qu’une texture soit mosaïque sur une primitive.

Direct3D permet aux applications d’effectuer un habillage de texture. Consultez Enveloppement de texture.

L’activation de l’habillage de texture rend efficacement les coordonnées de texture en dehors de la plage [0.0, 1.0] non valides, et le comportement de rastérisation de telles coordonnées de texture délinquantes n’est pas défini dans ce cas. Lorsque l’habillage de texture est activé, les modes d’adressage de texture ne sont pas utilisés. Veillez à ce que votre application ne spécifie pas de coordonnées de texture inférieures à 0.0 ou supérieures à 1.0 lorsque l’habillage de texture est activé.

Résumé des modes d’adressage de texture

Mode d’adressage de texture Description
Encapsuler Répète la texture sur chaque jonction d’entiers.
Miroir Met en miroir la texture à chaque limite entière.
Clamp Attache vos coordonnées de texture à la plage [0.0, 1.0] ; Le mode De serrage applique la texture une fois, puis enduit la couleur des pixels de bord.
Couleur de la bordure Utilise une couleur de bordure arbitraire pour toutes les coordonnées de texture situées en dehors de la plage comprise entre 0,0 et 1,0, inclus.

 

Mode d’adresse de texture encapsuler

Le mode d’adresse de texture Encapsuler permet à Direct3D de répéter la texture sur chaque jonction d’entiers.

Supposons, par exemple, que votre application crée une primitive carrée et spécifie les coordonnées de texture de (0.0,0.0), (0.0,3.0), (3.0,3.0) et (3.0,0.0). En définissant le mode d’adressage de texture sur « Wrap », la texture est appliquée trois fois dans les directions u et v, comme illustré dans l’illustration suivante.

illustration d’une texture de visage encapsulée dans la direction u et la direction V

Comparez cela avec le mode d’adresse de texture miroir suivant.

Mode d’adresse de texture miroir

Le mode d’adresse de texture miroir permet à Direct3D de miroir la texture à chaque limite entière.

Supposons, par exemple, que votre application crée une primitive carrée et spécifie les coordonnées de texture de (0.0,0.0), (0.0,3.0), (3.0,3.0) et (3.0,0.0). En définissant le mode d’adressage de texture sur « Miroir », la texture est appliquée trois fois dans les directions u et v. Toutes les autres lignes et colonnes auxquelles elle est appliquée sont une image miroir de la ligne ou de la colonne précédente, comme illustré dans l’illustration suivante.

illustration d’images miroir dans une grille 3x3

Comparez cela avec le mode d’adresse de texture Wrap précédent.

Mode d’adresse de texture de serrage

Le mode d’adresse de texture Clamp permet à Direct3D de fixer vos coordonnées de texture à la plage [0.0, 1.0] ; Le mode De serrage applique la texture une fois, puis enduit la couleur des pixels de bord.

Supposons que votre application crée une primitive carrée et affecte des coordonnées de texture de (0.0,0.0), (0.0,3.0), (3.0,3.0) et (3.0,0.0) aux sommets de la primitive. La définition du mode d’adressage de texture sur « Clamp » entraîne l’application de la texture une seule fois. Les couleurs de pixels en haut des colonnes et à la fin des lignes sont étendues respectivement en haut et à droite de la primitive.

L’illustration suivante montre une texture serrée.

illustration d’une texture et d’une texture serrée

Mode d’adresse de texture de couleur de bordure

Le mode d’adresse de texture de couleur de bordure permet à Direct3D d’utiliser une couleur arbitraire, appelée couleur de bordure, pour toutes les coordonnées de texture situées en dehors de la plage comprise entre 0,0 et 1,0, inclus.

Dans l’illustration suivante, l’application spécifie que la texture doit être appliquée à la primitive à l’aide d’une bordure rouge.

illustration d’une texture et d’une texture avec une bordure rouge

Limitations de l’appareil

Bien que le système autorise généralement les coordonnées de texture en dehors de la plage de 0.0 et 1.0, les limitations matérielles ont souvent une incidence sur la distance qui peut se trouver en dehors de cette plage de coordonnées de texture. Un appareil de rendu communique la limite pour la plage complète de coordonnées de texture autorisée par l’appareil, lorsque vous récupérez les fonctionnalités de l’appareil.

Par instance, si cette valeur est 128, les coordonnées de texture d’entrée doivent être conservées dans la plage -128.0 à +128.0. Le passage de sommets avec des coordonnées de texture en dehors de cette plage n’est pas valide. La même restriction s’applique aux coordonnées de texture générées à la suite de la génération automatique de coordonnées de texture et des transformations de coordonnées de texture.

Les limitations de répétition de texture peuvent dépendre de la taille de la texture indexée par les coordonnées de texture. Dans ce cas, en supposant que la dimension de texture est 32, et que la plage de coordonnées de texture autorisée par l’appareil est 512, la plage de coordonnées de texture valide réelle est donc 512/32 = 16, de sorte que les coordonnées de texture de cet appareil doivent être comprises dans la plage de -16.0 à +16.0.

Textures