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