IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de...

50
IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal

Transcript of IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de...

Page 1: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

IFT3730: Infographie 3D

Textures 

Pierre Poulin, Derek Nowrouzezahrai

Hiver 2013DIRO, Université de Montréal

Page 2: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, 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.)

Page 3: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 4: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.
Page 5: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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.

Page 6: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 7: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 8: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 9: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 10: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

πθ

Z

Y

r

h

mapping 1-à-1 car chaque point correspond à un et un seul point (u,v)),( hθ

Page 11: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

θ

Page 12: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 13: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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é.

Page 14: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 15: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 16: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

Mappings par fonction intermédiaire (3)

cube map en 3D

cube map encodage

wikipedia

Page 17: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 18: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

Distorsion due au type de projection Mapping par projection

(linéaire)à partir d'en haut

Page 19: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

Mapping en cartographie

Miller, wikipedia

Page 20: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

Mapping en cartographie

HEALPix, wikipedia

Eckert IV, wikipediaGoode Homolosine, wikipedia

Page 21: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

Impression de papier peint

Page 22: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

Effet de bordure

Page 23: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

Synthèse de texture

Quilting, Efros

Page 24: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

Classes de textures

wikipedia

Page 25: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 26: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 27: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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…

Page 28: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

Filtrage (exemple sur-échantillonnage)

Sans filtrage de la texture Avec filtrage de la texture

Page 29: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

Filtrage (exemplesous-échantillonnage)

Texture

Image résultante

Si on approche la caméra du plan…1 pixel >> 1 texel

Artéfacts : Moiré

Page 30: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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)

Page 31: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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’

Page 32: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 33: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

É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

Page 34: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 35: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 36: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 37: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 38: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

Textures 3D

Crédit: Ken Perlin

Page 39: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

Textures 3D

Visualisation de modèles 3D multicouches

[McGuffin 03]

Page 40: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 41: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 42: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 43: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

Texture d’environnement (3)

Terminator 2

Page 44: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 45: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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 ′

Page 46: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

Page 47: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

Bump map (exemple)

Crédit : L.McMillan

cylindreTexture bump map Cylindre rendu

Page 48: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

Bump map (exemple)

Crédit : Jim Blinn

Page 49: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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

+ =

Page 50: IFT3730: Infographie 3D Textures Pierre Poulin, Derek Nowrouzezahrai Hiver 2013 DIRO, Université de Montréal.

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