ift3730: infographie 3d textures pierre poulin, derek nowrouzezahrai hiver 2013 diro, université de...
Post on 04-Apr-2015
103 Views
Preview:
TRANSCRIPT
IFT3730: Infographie 3D
Textures
Pierre Poulin, Derek Nowrouzezahrai
Hiver 2013DIRO, Université de Montréal
Textures• Pour simuler la complexité des détails
sur une surface, on peut augmenter le nombre de polygones (micro-polygones) définissant la surface
• Cependant, il en résulte une augmentation de la complexité de la modélisation (taille de l’objet, coût de génération, etc.) et du rendu (visibilité, scan conversion, illumination, etc.)
Textures• Peut simuler l’effet visuel des détails en
apposant une texture sur la surface, tel du papier peint
• Texture peut être apposée sur différents objets• Traitement des détails est laissé au processus
de shading dans le pipeline graphique• Devient aussi possible de mieux filtrer les
effets des détails au niveau de qualité désiré• Matériel efficace pour les polygones texturés
Textures : applications• Une texture peut altérer plusieurs
propriétés :– couleur
• image digitale, motif (quadrillé), procédure (marbre)
– normale (bump map)– géométrie (displacement map)– réflexion (environment map)– illumination (photon map)– transparence– etc.
Définitions• Texture mapping
technique consistant à appliquer une texture sur une surface
• Texture maptexture apposée sur une surface
• Texelélément de base d’une texture, analogue
au pixel d’une image
Texture mapping (1)
Espace image
pixel de l’image
Espace objet
projection du pixelsur la surface 3D
Espace texture
texels couvertspar le pixel
u
v
projection
projection -1
mapping
mapping-1
Texture mapping (2)Pixel texel
Seulement les texels visibles sont traitésIl faut calculer la projection inverse du pixel en espace objet, et puis les coordonnées correspondantes en espace texturePlus complexe, mais orienté vers le traitement du pipeline conventionnelqui procède pixel par pixel
Crédit : L.McMillan
Mapping (1)• On va chercher à identifier une fonction
(mapping) qui permet d’associer un texel à un point de la surface
• Souvent un mapping 1-à-1 est préférable, car cela minimise les distorsions et les pertes d’information– Exemple : mapper une texture sur un
rectangle
Mapping rectangle - cylindre
1,0
10
20
≤≤≤≤≤≤
vuh
πθ
21
sin
cos
−===
hzryrx
θθ
10
10 2
≤≤
≤≤
hπθ
21
2)/arccos(
2)/arccos(
)/arctan( encoreou
0 si 1
0 si
+==
=⎩⎨⎧
<−>
==
z
rx
rx
vxyu
hv
yy
uπ
πθ
Z
Y
Xθ
r
h
mapping 1-à-1 car chaque point correspond à un et un seul point (u,v)),( hθ
Mapping rectangle - sphère (1)
2/2/
20
πθππφ
≤≤−≤≤
θφθφθ
sin
sincos
coscos
rz
ry
rx
=
=
=
15.00
10
2/
2
≤+≤
≤≤
πθ
πφ
5.02/
)r/zarcsin(v
0y1
0y
2u
2)yx/xarccos(
2)yx/xarccos(
22
22
+==
⎪⎩
⎪⎨
⎧
<−
>==
+
+
ππθ
πφ
π
π
si
si
Z
Y
X
θ
Mappings (2)• Souvent on veut passer d’une surface
3D arbitraire à une texture rectangulaire
• Une fonction de mapping est souvent complexe et souffre de propriétés indésirables– distorsion des formes et des distances
Texture (rectangulaire)Surface sphérique : distorsion
Mappings (3)• Obtenir le mapping désiré pour une
surface quelconque n’est pas une tâche facile. Il y a même des topologies qui ne permettent pas d’atteindre le but désiré.
Mappings par fonction intermédiaire• Il existe plusieurs fonctions de défaut:
– coordonnées cylindriques– coordonnées sphériques– coordonnées de projection (linéaire)
• La position de l’objet par rapport à la fonction intermédiaire définit le mapping et donc l’apparence de la texture sur l’objet
Mappings par fonction intermédiaire (2)Exemple: Coordonnées sphériques• Placer l’objet 3D au centre de la sphère• Associer une coordonnée à chaque point (x,y,z)
de l’objet 3D• Trouver la valeur (u,v) associée à • Associer la couleur T(u,v) au point (x,y,z)
),( φθ
),( φθ
),( φθ
),( vu
(x,y,z)
Objet 3D quelconque
Texture
Mappings par fonction intermédiaire (3)
cube map en 3D
cube map encodage
wikipedia
Problèmes avec le mapping 3D à 2D• Définition de la fonction de mapping• Conservation des distances entre les
éléments de la texture• Effet de bordure de la texture lorsqu’elle
doit être répétée• Donne une impression de papier peint au
lieu de matériel 3D
Distorsion due au type de projection Mapping par projection
(linéaire)à partir d'en haut
Mapping en cartographie
Miller, wikipedia
Mapping en cartographie
HEALPix, wikipedia
Eckert IV, wikipediaGoode Homolosine, wikipedia
Impression de papier peint
Effet de bordure
Synthèse de texture
Quilting, Efros
Classes de textures
wikipedia
Filtrage• Ne traite pas de point-à-point mais
plutôt d’aire-à-aire, ce qui crée des problèmes d’aliassing
• Lorsque la taille des pixels (une fois projetés dans le domaine texture) est différente de la taille des voxels, il y a 3 cas de figure possibles :
• Peu de problème : 1 pixel 1 texel• Sur-échantillonnage : 1 pixel << 1 texel• Sous-échantillonnage : 1 pixel >> 1 texel
≈
Filtrage (exemple sur-échantillonnage)
Texture
Texture projetéesur un rectangle Si la caméra est placée trop
près du plan, 1 pixel << 1 texel
Filtrage (sur-échantillonnage)
• Des solutions? Il n’y a pas grand chose à faire puisqu’on a atteint la limite de la texture. Elle ne peut nous donner plus que ce qui est inscrit dans ses texels!– Le filtrage de la texture peut
légèrement masquer cet artéfact…– Avoir une deuxième texture de
résolution plus élevée…
Filtrage (exemple sur-échantillonnage)
Sans filtrage de la texture Avec filtrage de la texture
Filtrage (exemplesous-échantillonnage)
Texture
Image résultante
Si on approche la caméra du plan…1 pixel >> 1 texel
Artéfacts : Moiré
Filtrage (sous-échantillonnage)
• L’aliassing (Moiré) apparaît dans les textures lorsqu’un échantillonnage insuffisant est utilisé
• Pour lutter contre ce problème, il faut implémenter une méthode d’anti-aliassing
• Lorsque plusieurs texels se projettent dans un même pixel, il faut filtrer leur contribution
• Si chaque texel contribue également au pixel, peu importe son emplacement dans le pixel, il s’agit alors de faire la moyenne des contributions (filtre boîte)
Filtrage (sous-échantillonnage)
u
v
projection-1 mapping-1
ImageObjet 3D
Texture 2D
Pixel P
Centre du pixel
P’
• P’ est la projection du pixel P sur la texture 2D• L’anti-aliassing consiste à associer au pixel P non pas seulement la couleur du centre de P’, mais la moyenne de tous les texels couverts par P’
Supersampling (anti-aliassing)• On peut échantillonner régulièrement dans un pixel et pondéré
également (filtre boîte) les couleurs des échantillons
• Un supersampling de 4x4 est souvent considéré comme étant un bon compromis qualité vs. temps de calcul
1 échantillon/pixel 4 échantillons/pixel 25 échantillons/pixel
Échantillonnage adaptatif• Les nombres minimum et maximum de
niveaux de subdivision sont indiqués sous chaque image
min 1max 1
min 1max 2
min 1max 4
min 2max 4
Perturbations stochastiques• Au lieu d’échantillonner régulièrement,
on peut perturber aléatoirement (jitter) la position de chaque échantillon
• On introduit alors du bruit dans l’image qui remplace en partie l’aliassage
1 pixel
Pas de supersampling
supersampling3x3
supersampling3x3+
Perturbations
Filtrage de pixels adjacents• Si la contribution ne dépend pas de la
position à l’intérieur du pixel, il s’agit d’une somme non-pondérée
• Au lieu de faire la moyenne des couleurs des échantillons, on peut leur donner un poids différent en fonction de leur distance du centre du pixel
filtre linéaire àbase circulaire
MIP mapping (multum in parvo)• Les éléments de la texture sont
préfiltrés (moyennés) dans une pyramide
• La texture résulte en 4/3 de sa taille originale
• Lorsque plusieurs texels projettent dans un pixel, le niveau le plus approprié dans la pyramide est choisi
Crédit : L.McMillan
Textures 3D (solid textures)• Par défaut, chaque point 3D peut
correspondre à un point dans la texture• Textures
– table 3D de valeurs discrètes– fonction 3D (procédurale) définit une
valeur UVW de texture dans l’espace XYZ• Surface apparaît sculptée dans un matériel
– marbre, bois, etc.• Un problème important de ces textures 3D
réside dans son filtrage efficace
Textures 3D
Crédit: Ken Perlin
Textures 3D
Visualisation de modèles 3D multicouches
[McGuffin 03]
Autres applications des textures
• Jusqu’à présent on a vu que les textures pouvaient servir à modifier la couleur des objets
• Maintenant, voyons ce que nous pouvons faire de plus…
1. Simuler la réflexion miroir : environment maps
2. Modifier l’orientation des normales : bump maps
3. Modifier la position des sommets 3D d’un modèle : displacement maps
Texture d’environnement (1)• Une surface miroir réfléchit son
environnement, mais le lancer de rayons est trop coûteux pour espérer un rendu en temps réel
• On crée une image de la scène (sans l’objet réfléchissant) qu’on projette ensuite sur un objet intermédiaire– cube (six projections), sphère, cylindre, etc.
• La direction réfléchie sur la surface est utilisée comme index dans les images de la scène
Texture d’environnement (2)
Credit:Hakura
+photo «fish eye»mapping de la photosur une sphère 3D
mapping par fonction intermédiaire entrele teapot et la sphère 3D
Texture d’environnement (3)
Terminator 2
Texture d’environnement (4)• Aucune réflexion multiple ou réflexion
de l’objet sur lui-même• Puisque l’image de l’environnement est
formée à partir d’un point de vue arbitraire, les objets près de l’objet miroir seront incorrectement déformés dans l’image finale
• Fonctionne bien lorsque l’objet réfléchissant est petit et près du centre de la texture
Bump map (1)• La normale à la surface influence
grandement l’apparence de la surface lors du calcul d’illumination
vu
vu
TTTT
N××=
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
∂∂
∂∂∂∂
uz
uy
ux
uT
⎥⎥⎥
⎦
⎤
⎢⎢⎢
⎣
⎡=
∂∂
∂∂∂∂
vz
vy
vx
vTuTvT
N
N ′
Bump map (2)• Soit une fonction d(u,v) qui perturbe
légèrement un point à la surface le long de sa normale
d
)(ou vu
N
N’vu
vu
TTTT
N
NvudPP
′×′′×′=′
+=′ ),(
P′
P
Bump map (exemple)
Crédit : L.McMillan
cylindreTexture bump map Cylindre rendu
Bump map (exemple)
Crédit : Jim Blinn
Displacement Map
• Même idée que le bump map, mais on déplace physiquement les sommets au lieu de juste perturber leur normale
Crédit : L.McMillan
+ =
En résumé• Mapping texel/pixel et pixel/texel• Mapping cylindrique, sphérique et de
projection• Texture 3D• Aliassage et filtrage de texture 2D• Mip mapping• Texture d’environnement• Bump mapping • Displacement mapping
top related