Plaquage de textures - Algorithmique Graphique et Modélisation
Transcription
Plaquage de textures - Algorithmique Graphique et Modélisation
Plaquage de textures Algorithmique Graphique et Modélisation Séverine Dubuisson 14 avril 2008 Séverine Dubuisson Plaquage de textures Introduction Texture : détail de la surface d’un objet Ajoute du réalisme à l’image : Ajout d’un motif à un objet (couverture sur un livre, ...) Répétition de motifs (carrelage, papier peint, ...) Aspect de certaines matières (rugosité, ...) On doit utiliser une fonction de mappage (mapping) Mapping de texture 2D (carrelage, papier peint, ...) Mapping de texture 3D (bois, marbre, ...) Eventuellement : ajout d’une fonction de perturbation : bump mapping Séverine Dubuisson Plaquage de textures But du plaquage de texture On veut association un point 2D d’une texture à un point de l’écran, projeté d’un point 3D d’une surface Il existe trois mapping principaux : mapping planaire, mapping sphérique, mapping cylindrique. Séverine Dubuisson Plaquage de textures Mapping 2D Objectif : plaquer une image 2D (bitmap) sur un objet 3D Principe (très) général : 1 2 Trouver la correspondance entre l’image 2D et l’objet 3D (parfois difficile) Afficher l’objet ”recouvert” de l’image Séverine Dubuisson Plaquage de textures Correspondance entre objet 3D et bitmap Soit un point de l’objet S(x, y , z), on cherche la point I(u, v ) du bitmap associé Pour un objet quelconque la relation est difficile (voire impossible) à calculer Pour certains objets de forme géométrique simple, une association est possible Décomposition en deux étapes : 1 2 Mapper la texture 2D sur une surface 3D simple : S mapping : T (u, v ) −→ P(xi , yi , zi ) Mapper le modèle de texture 3D sur l’objet : O mapping P(xi , yi , zi ) −→ P(xw , yw , zw ) Application : mapping inverse Séverine Dubuisson Plaquage de textures Correspondance entre objet 3D et bitmap Séverine Dubuisson Plaquage de textures Un exemple On souhaite mapper le motif de la figure, image de gauche, sur l’élément de surface défini par l’octant de sphère représenté sur l’image du milieu, afin d’obtenir le résultat de l’image de droite. Motif : grille régulière de droites sécantes en deux dimensions. Séverine Dubuisson Plaquage de textures Représentation paramétrique de l’octant Coordonnées sphériques : tan θ = tan φ = sin θ x = (1) cos θ z√ sin φ x 2 + z2 = cos φ y (2) Passage en équation paramétrique : (1) ⇔ x = z tan θ q p (2) ⇔ sin φ = x 2 + z 2 = (z tan θ)2 + z 2 r q z2 = z 2 (tan2 θ + 1) = cos2 θ Séverine Dubuisson Plaquage de textures Représentation paramétrique de l’octant D’après le schéma, on se situe dans la partie de la sphère z où cos θ > 0 et z > 0, donc sin φ = cos θ , d’où z = sin θ cos θ et x = sin φ sin θ. L’équation paramétrique de l’octant est donc la suivante : 0 ≤ θ ≤ π2 x = sin θ cos φ y = cos φ π π z = cos θsinφ 4 ≤φ≤ 2 Séverine Dubuisson Plaquage de textures Paramètres de la fonction de mapping La fonction de mapping f : [u, w] ⇒ [θ, φ] est supposée linéaire, donc on a θ = Au + B et φ = Cw + D. Les 4 coins du motif de texture sont positionnés sur les 4 coins de l’objet sur lequel on mappe la texture, donnant : (0, 0) → (0, π2 ) (0, 1) → (0, π4 ) (1, 0) → ( π2 , π2 ) (1, 1) → ( π2 , π4 ) En résolvant, on trouve : θ = π2 u φ = − π4 w + π 2 Séverine Dubuisson ⇔ u = π2 θ ⇔ w = − π4 φ − π2 Plaquage de textures Mappage d’une droite de l’espace (u, w) vers (θ, φ) Cas de la droite u = 14 u w θ φ x 1 4 1 4 1 4 1 4 1 4 0 1 4 1 2 3 4 1 π 8 π 8 π 8 π 8 π 8 π 2 7π 16 3π 8 5π 16 pi 4 0.38 0.38 0.35 0.32 0.27 Séverine Dubuisson y z 0 0.2 0.38 0.56 0.71 0.92 0.91 0.85 0.77 0.65 Plaquage de textures Objets intermédiaires Plusieurs objets intermédiaires possibles : plan, cube, sphère, cylindre. Correspondance entre un objet 3D et un objet intermédiaire : normale, centrée ou intermédiare Séverine Dubuisson Plaquage de textures Mapping sphérique centré (1) O mapping inverse : Correspondance entre un point de l’objet 3D et l’objet intermédiaire (la sphère) Sphère centrée sur le centre de gravité de l’objet 3D La sphère englobe totalement l’objet 3D Calcul de l’intersection de la droite (CS) avec la sphère : xP = xC + (xS − xC )t y = yC + (yS − yC )t P zP = zC + (zS − zC )t Séverine Dubuisson Plaquage de textures Mapping sphérique centré (2) S mapping : Trouver le point T (u, v ) de la texture correspondant au point P de la sphère intermédiaire Les coordonnées sphériques (θ, φ) de P (dans le repère de la sphère) sont données par : 0 P = P − C θ = arctan yxP 00 P zP 0 φ = arctan √ 2 2 xP 0 +yP 0 Séverine Dubuisson Plaquage de textures Mapping sphérique centré (3) Calcul des coordonnées (u, v ) de la texture : ( θ −π ≤θ ≤π u = π/2 v= φ π/4 − π 2 ≤φ≤ π 2 Normalisation des valeurs comprises entre 0 et 1 : 0 u 1 u = 4+2 1 v 0 = −v 4 + 2 Séverine Dubuisson Plaquage de textures Mapping cylindrique centré (1) O mapping inverse : Correspondance entre un point de l’objet 3D et l’objet intermédiaire (le cylindre) Cylindre centré sur le centre de gravité de l’objet 3D (centre du cylindre) La sphère englobe totalement l’objet 3D (rayon R et hauteur H du cylindre) Cylindre parallèle à l’axe des z Calcul des coordonnées du point P sur le cylindre : xP = xC + (xS − xC )t y = yC + (yS − yC )t P zP = zS Séverine Dubuisson Plaquage de textures Mapping cylindrique centré (2) Calcul des coordonnées (u, v ) de la texture : ( θ u = π/2 −π ≤θ ≤π v = zP − zmin Normalisation des valeurs comprises entre 0 et 1 : 0 u 1 u = 4+2 v 0 = 1 − Hv Séverine Dubuisson Plaquage de textures