Article de reference

Cartographie de texture projective

Le mapping de texture projectif est une méthode de mapping de texture qui permet de projeter une image texturée sur une scène comme avec un projecteur de diapositives . Le mappi...

Le mapping de texture projectif est une méthode de mapping de texture qui permet de projeter une image texturée sur une scène comme avec un projecteur de diapositives . Le mapping de texture projectif est utile dans de nombreuses techniques d'éclairage et constitue le point de départ du mapping d'ombres .

Le mappage de texture projectif est essentiellement une transformation matricielle spéciale qui est effectuée par vertex puis interpolée linéairement en tant que mappage de texture standard.

Approche par pipeline à fonction fixe

Historiquement [1] , l'utilisation du mappage de texture projectif impliquait de considérer une forme spéciale de génération de coordonnées de texture linéaire de l'œil [2] transformée ( tcGen en abrégé). Cette transformation était ensuite multipliée par une autre matrice représentant les propriétés du projecteur qui étaient stockées dans la matrice de transformation des coordonnées de texture [3] . La matrice concentrée résultante était essentiellement une fonction à la fois des propriétés du projecteur et des positions des yeux au sommet.

Les points clés de cette approche sont que le tcGen linéaire pour les yeux est une fonction des coordonnées des vertex des yeux, qui résultent à la fois des propriétés des yeux et des coordonnées des vertex de l'espace objet (plus précisément, la position des vertex de l'espace objet est transformée par la matrice modèle-vue-projection). De ce fait, la matrice de texture correspondante peut être utilisée pour « décaler » les propriétés des yeux de sorte que le résultat concentré soit le même que l'utilisation d'un tcGen linéaire pour les yeux à partir d'un point de vue qui peut être différent de celui de l'observateur.

Approche par pipeline programmable

Une méthode moins complexe pour calculer cette approche est devenue possible avec les vertex shaders .

L'algorithme précédent peut alors être reformulé en considérant simplement deux matrices modèle-vue-projection : l'une du point de vue de l'œil et l'autre du point de vue du projecteur.

Dans ce cas, la matrice modèle-vue-projection du projecteur est essentiellement la concentration susmentionnée de tcGen linéaire oculaire avec la fonction de décalage du projecteur prévue. En utilisant ces deux matrices, quelques instructions suffisent pour générer la position du sommet de l'espace oculaire transformé et une coordonnée de texture projective. Cette coordonnée est simplement obtenue en considérant la matrice modèle-vue-projection du projecteur : en d'autres termes, il s'agit de la position du sommet de l'espace oculaire si le projecteur considéré avait été un observateur.

Mises en garde

Dans les deux approches proposées, il existe deux petits problèmes qui peuvent être résolus de manière triviale et qui proviennent des différentes conventions utilisées par l'espace oculaire et l'espace de texture.

La définition des propriétés de ces espaces dépasse le cadre de cet article, mais il est bien connu que les textures doivent généralement être traitées dans la plage [0..1] tandis que les coordonnées de l'espace oculaire sont traitées dans la plage [-1..1]. Selon le mode d'enveloppement de texture utilisé, divers artefacts peuvent se produire, mais il est évident qu'une opération de décalage et d'échelle est absolument nécessaire pour obtenir le résultat attendu.

L'autre problème est en fait un problème mathématique. Il est bien connu que les calculs matriciels utilisés produisent une rétroprojection. Cet artefact a été historiquement évité en utilisant une texture noire et blanche spéciale pour éliminer les contributions de projection inutiles. En utilisant des shaders de pixels, une approche différente peut être utilisée : une vérification des coordonnées suffit à faire la distinction entre les contributions avant (correctes) et les contributions arrière (incorrectes, à éviter).

  1. ^ Le document original du site Web de nVIDIA inclut toute la documentation nécessaire sur ce problème. Le même site contient également des conseils supplémentaires.
  2. ^ La génération de coordonnées de texture est traitée dans la section 2.11.4 « Génération de coordonnées de texture » ​​de la spécification OpenGL 2.0. La génération de coordonnées de texture linéaires de l'œil est un cas particulier.
  3. ^ La matrice de texture est introduite dans la section 2.11.2 « Matrices » de la spécification OpenGL 2.0.

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index