synthèse d'images i plan du cours - institut...

35
1 Venceslas BIRI Venceslas BIRI IGM IGM Université de Marne La Vallée Université de Marne La Vallée Synthèse d'images I Synthèse d'images I 63 Plan du cours Plan du cours I. I. Introduction Introduction II. II. Modélisation Modélisation III. III. Rendu & affichage Rendu & affichage Fabriquer une image de synthèse : Fabriquer une image de synthèse : Venceslas BIRI Venceslas BIRI IGM IGM Université de Marne La Vallée Université de Marne La Vallée Synthèse d'images I Synthèse d'images I II. Modélisation II. Modélisation 65 Plan du cours Plan du cours I. I. Introduction Introduction II. II. Modélisation Modélisation A. A. L’espace 3D L’espace 3D B. B. Les objets Les objets C. C. La scène La scène D. D. La lumière et la matière La lumière et la matière III. III. Rendu & affichage Rendu & affichage Venceslas BIRI Venceslas BIRI IGM IGM Université de Marne La Vallée Université de Marne La Vallée Synthèse d'images I Synthèse d'images I II. Modélisation II. Modélisation B. Objets B. Objets 67 Plan du cours Plan du cours I. I. Introduction Introduction II. II. Modélisation Modélisation A. A. L’espace 3D L’espace 3D B. B. Les objets Les objets 1. 1. Lignes & Courbes Lignes & Courbes 2. 2. Surfaces Surfaces 3. 3. Objets complexes, humains Objets complexes, humains 4. 4. Volumes Volumes C. C. La scène La scène D. D. La lumière et la matière La lumière et la matière III. III. Rendu & affichage Rendu & affichage

Upload: vutruc

Post on 13-May-2018

219 views

Category:

Documents


1 download

TRANSCRIPT

1

Venceslas BIRIVenceslas BIRIIGMIGMUniversité de Marne La ValléeUniversité de Marne La Vallée

Synthèse d'images ISynthèse d'images I

63

Plan du coursPlan du cours

I.I. IntroductionIntroduction

II.II. ModélisationModélisation

III.III. Rendu & affichageRendu & affichage

Fabriquer une image de synthèse :Fabriquer une image de synthèse :

Venceslas BIRIVenceslas BIRIIGMIGMUniversité de Marne La ValléeUniversité de Marne La Vallée

Synthèse d'images ISynthèse d'images I

II. ModélisationII. Modélisation

65

Plan du coursPlan du cours

I.I. IntroductionIntroduction

II.II. ModélisationModélisation

A.A. L’espace 3DL’espace 3D

B.B. Les objetsLes objets

C.C. La scèneLa scène

D.D. La lumière et la matièreLa lumière et la matière

III.III. Rendu & affichageRendu & affichage

Venceslas BIRIVenceslas BIRIIGMIGMUniversité de Marne La ValléeUniversité de Marne La Vallée

Synthèse d'images ISynthèse d'images I

II. ModélisationII. Modélisation

B. ObjetsB. Objets

67

Plan du coursPlan du cours

I.I. IntroductionIntroduction

II.II. ModélisationModélisation

A.A. L’espace 3DL’espace 3D

B.B. Les objetsLes objets

1.1. Lignes & Courbes Lignes & Courbes

2.2. SurfacesSurfaces

3.3. Objets complexes, humainsObjets complexes, humains

4.4. VolumesVolumes

C.C. La scèneLa scène

D.D. La lumière et la matièreLa lumière et la matière

III.III. Rendu & affichageRendu & affichage

2

68

Plan du coursPlan du cours

II.II. ModélisationModélisation

A.A. ObjetsObjets

1.1. Lignes et courbesLignes et courbes

1.1. Modèles mathématiquesModèles mathématiques

a.a. DroitesDroites

b.b. Courbes paramétriquesCourbes paramétriques

c.c. SplinesSplines

2.2. Modèles informatiqueModèles informatique

a.a. Modélisation par segmentModélisation par segment

b.b. BressenhamBressenham

c.c. AntialiasingAntialiasing

2.2. SurfacesSurfaces

3.3. Objets complexes, humainsObjets complexes, humains

4.4. VolumesVolumes

69

Droites en 2DDroites en 2D

Droites affines 2DDroites affines 2D

–– ÉquationÉquation

Coordonnées polaires d’une droiteCoordonnées polaires d’une droite

–– En polaire 2 paramètres suffisent égalementEn polaire 2 paramètres suffisent également

•• Mais équation plus générale, représente toutes les Mais équation plus générale, représente toutes les droitesdroites

ρρ

θθ

0 cbyax bxay ouou

0)sin()cos(

0

yx

cbyax

70

Droites en 2DDroites en 2D

Transformée de HoughTransformée de Hough

–– But : à partir d’un ensemble de pixels d’une But : à partir d’un ensemble de pixels d’une

image, retrouver la droite qui les relieimage, retrouver la droite qui les relie

–– En chaque point (x,y) passent une infinité de En chaque point (x,y) passent une infinité de

droite. droite.

•• Mais elles vérifient toute l’équation :Mais elles vérifient toute l’équation :

–– Espace de Hough :Espace de Hough :

•• Matrice NxN de valeurs des paramètres Matrice NxN de valeurs des paramètres ρ et θρ et θ

•• Discrétisation de l’espace de HoughDiscrétisation de l’espace de Hough

)sin()cos( yx

71

Droites en 2DDroites en 2D

Transformée de HoughTransformée de Hough

–– Méthode : Méthode :

•• Chaque pixel (x,y) créé une courbe dans l’espace de Chaque pixel (x,y) créé une courbe dans l’espace de Hough. Hough.

•• Chaque case de la matrice représentant l’espace de Chaque case de la matrice représentant l’espace de Hough s’incrémente de 1Hough s’incrémente de 1

•• La case ayant la plus grande valeur représente la La case ayant la plus grande valeur représente la droite qui représente le mieux les pixelsdroite qui représente le mieux les pixels

)sin()cos( yx

72

DroitesDroites

Droites 3DDroites 3D

–– Représentation cartésienne :Représentation cartésienne :

•• Une ligne en dimension est l’intersection de 2 plansUne ligne en dimension est l’intersection de 2 plans

–– Représentation paramétrique :Représentation paramétrique :

0

0

2222

1111

dzcybxa

dzcybxa

OO uu

zz

yy

xx

utOz

utOy

utOxPP

PP

avecavec

avecavec

z

y

x

P

z

y

x

O

O

O

O

z

y

x

u

u

u

u

etet

Attention : il est souvent intéressant de choisir u unitaireAttention : il est souvent intéressant de choisir u unitaire

ouou

73

DroitesDroites

Distance d d’un point à une droite D ?Distance d d’un point à une droite D ?

OO

uu

PP

On cherche la longueur bleue :On cherche la longueur bleue :

1.1. Calculer la projection de P sur DCalculer la projection de P sur D2.2. Calculer PP’Calculer PP’3.3. Prendre sa normePrendre sa norme

P’P’

uuOPOP ).(' Calcul de P’ :Calcul de P’ :

DD

Calcul de PP’ :Calcul de PP’ :

Calcul de d :Calcul de d :

uuOPPOPuuOPOPPPP ).().(''

'PPd

3

74

DroitesDroites

Autres problèmes :Autres problèmes :

–– Distance entre deux droites DDistance entre deux droites D11 et Det D22 ::

–– Intersection droite et planIntersection droite et plan

–– Point moyen de 2 droites, de 3 droites...Point moyen de 2 droites, de 3 droites...

OO11

uu11 PP22

PP11

DD11

uu22

OO

22

DD22

Résolution du système linéaire :Résolution du système linéaire :

0.

0.

221

121

uPP

uPP

avecavec

2222

1111

utOP

utOP

75

CourbesCourbes

Comment représenter les courbes ?Comment représenter les courbes ?

–– A l’aide de fonction pour les trois coordonnéesA l’aide de fonction pour les trois coordonnées

–– Représentation paramétrique :Représentation paramétrique :

)(

)(

)(

),,(

tfz

tfy

tfx

zyxP

z

y

x

y = sin(x)y = sin(x)x = r cos(x = r cos(θ)θ)

y = yy = y00 + r sin(θ)+ r sin(θ)

z = z = r cos(r cos(θ/16)θ/16)

76

CourbesCourbes

Comment représenter les courbes ?Comment représenter les courbes ?

–– A l’aide de conditionA l’aide de conditionss (3d) sur les coordonnées(3d) sur les coordonnées

–– Représentation cartésienne :Représentation cartésienne :

0),,(

0),,(),,(

2

1

zyxf

zyxfzyxP

y y -- sin(x) = 0sin(x) = 0

z = 0z = 0??????

77

Courbes paramétriquesCourbes paramétriques

Exemple : trajectoireExemple : trajectoire

–– Particule soumise à accélération a, munie d’une Particule soumise à accélération a, munie d’une

vitesse initiale Vvitesse initiale V00 et situé à l’origine.et situé à l’origine.

VV00

dtvdzga

accélération de la particule :accélération de la particule :

dtdPvztgv 0

vitesse de la particule :vitesse de la particule :

position de la particule :position de la particule : 0

2

2vtztgOP

z

y

x

vttgz

vtyvtx

0

20

0

2

78

Courbes paramétriquesCourbes paramétriques

TangenteTangente

–– Définie en tout point de paramètre t de la courbe Définie en tout point de paramètre t de la courbe

par le vecteur :par le vecteur :

Repère de Fresnet :Repère de Fresnet :

–– Base orthonormaleBase orthonormale

directedirecte

)(

)(

)(

)(

tdtdf

tdtdf

tdtdf

dttdM

v

z

y

x

vvT

N

79

Courbes paramétriquesCourbes paramétriques

Rayon de courbure :Rayon de courbure :

–– courbure algébrique courbure algébrique ::

–– Calcul de Calcul de ::

–– Rayon de courbure :Rayon de courbure :

)()( tNtdtdT car T est un vecteur unitairecar T est un vecteur unitaire

)(.)()( tNtdtdTt avec avec >0>0 positifpositif

)(1)(t

t

4

80

Courbes libresCourbes libres

81

Courbes libresCourbes libres

Courbes définies par des pointsCourbes définies par des points–– ApproximationApproximation

•• Guidée par les pointsGuidée par les points

–– InterpolationsInterpolations•• Passe par les pointsPasse par les points

InterpolationInterpolation–– Linéaire, parabole,Linéaire, parabole,

Spline CatmullSpline Catmull--rom…rom…

ApproximationApproximation–– Bézier, BBézier, B--spline,spline,

ββ--Spline…Spline…

82

Courbes : famillesCourbes : familles

BézierBézier

SplineSpline

BB--SplineSpline

Natural cubique SplineNatural cubique Spline

CatmulCatmul--rom Splinerom Spline

nonperiodic Bnonperiodic B--splinespline

uniform Buniform B--splinespline

NURBSNURBS

KochanekKochanek––Bartels splineBartels spline

ApproximationApproximation

InterpolationInterpolation83

Courbes de BézierCourbes de Bézier

Courbes de Bézier : Courbes de Bézier :

–– Courbes paramétriques épousant la forme d’une Courbes paramétriques épousant la forme d’une

ligne brisée joignant des points prédéfinisligne brisée joignant des points prédéfinis

•• La courbe paramétrique est définie par des polynômesLa courbe paramétrique est définie par des polynômes

Cas particulier avec 3 points : Cas particulier avec 3 points :

bb00

bb

11

bb22

bb0011

bb1111

bb0022

10

1

0 )1()( btbttb

21

1

1 )1()( btbttb

Les points de la courbe sont alors définis par :Les points de la courbe sont alors définis par :

)()()1()( 1

1

1

0

2

0 tbttbttb avecavec 1..0t

84

Courbes de BézierCourbes de Bézier

Algorithme général :Algorithme général :

–– Algorithme de De Casteljau :Algorithme de De Casteljau :

•• Soit m+1 points bSoit m+1 points b00,b,b11, ... , b, ... , bm m et t et t Є Є [0..1][0..1]

)()()1()(],..0[],..1[1

1

1tbttbttbrmimr

r

i

r

i

r

i

iibtbmi )(],..0[

0

bb00mm(t) est le point de paramètre t sur la courbe de Bézier (de degré m)(t) est le point de paramètre t sur la courbe de Bézier (de degré m)

bb00mm(t)(t)

bb00mm--11(t)(t) bb11

mm--11(t)(t)

bbmm00(t)(t)bbmm--11

00(t)(t)bbi+1i+100(t)(t)bbii

00(t)(t)bb1100(t)(t)bb00

00(t)(t)

22mm évaluations !évaluations !

85

Courbes de BézierCourbes de Bézier

Définitions :Définitions :–– Point bPoint bii : point de contrôle ou de Bézier: point de contrôle ou de Bézier

–– Polygone formé des bPolygone formé des bii : polygone de contrôle ou : polygone de contrôle ou de Bézierde Bézier

Propriétés :Propriétés :–– Invariant par transformation affineInvariant par transformation affine

•• On a besoin que de transformer les points de contrôleOn a besoin que de transformer les points de contrôle

–– Invariant par transformation affine du paramètre Invariant par transformation affine du paramètre de parcours tde parcours t

–– Passe par les points bPasse par les points b00 et bet bmm et courbe tangente et courbe tangente au polygone de contrôle en ces pointsau polygone de contrôle en ces points

–– Enveloppe convexeEnveloppe convexe

On peut rajouter des poids associés à chaque point de contrôleOn peut rajouter des poids associés à chaque point de contrôle

5

86

Courbes de BéziersCourbes de Béziers

Forme de BernsteinForme de Bernstein

–– Les polynômes de Berstein sont définis par :Les polynômes de Berstein sont définis par :

•• Satisfont l’équation de récurrence :Satisfont l’équation de récurrence :

–– Les points de la courbe de Bézier peuvent aussi Les points de la courbe de Bézier peuvent aussi

s’écrire :s’écrire :

imim

itt

i

mtB

)1()(

)()()1()(1

1

1tBttBttB

m

i

m

i

m

i

m

i

i

imim btti

mtb

0

)1()(

87

Courbes de BézierCourbes de Bézier

Exemple de courbe de degré 1Exemple de courbe de degré 1

Exemple de courbe de degré 2Exemple de courbe de degré 2

]1...0[)()()1()()(0

1

0

0

1

0 ttbttbttbtB

]1...0[)1()(10

tbtbttBsoitsoit

]1...0[)1(2)1()(2

2

10

2 tbtbttbttB

88

SplinesSplines

Défaut des courbes de BézierDéfaut des courbes de Bézier

–– M points M points polynômes de degré Mpolynômes de degré M--11

–– Si on modifie un point, toute la courbe est Si on modifie un point, toute la courbe est

modifiéemodifiée

•• Impossible de modifier des comportements locaux Impossible de modifier des comportements locaux

sans changer l’ensemble de la courbesans changer l’ensemble de la courbe

Idée : relier des courbes entre des groupes Idée : relier des courbes entre des groupes

de pointsde points

–– Plusieurs possibilitésPlusieurs possibilités

•• Approximation : BApproximation : B--splines …splines …

•• Interpolation : CatmullInterpolation : Catmull--rom …rom …

89

SplinesSplines

Définition :Définition :

–– Soit n+1 valeurs dans [a,b] avec :Soit n+1 valeurs dans [a,b] avec :

on définit la fonction spline de degré mon définit la fonction spline de degré m

par S : R par S : R RR

si :si :

–– C’est le cas général ...C’est le cas général ...

bttttann

110...

),( baS1-mC

]1...0[,],[1

nittSii mP

PPmm est l’ensemble des polynômes de degré mest l’ensemble des polynômes de degré m

Attention : spline d’ordre m = spline de degré mAttention : spline d’ordre m = spline de degré m--11

90

Courbes splinesCourbes splines

DéfinitionDéfinition

–– On a donc :On a donc :

•• N+1 points et N+1 nœudsN+1 points et N+1 nœuds

•• N intervallesN intervalles

•• Des polynômes de degré m sur chaque intervalleDes polynômes de degré m sur chaque intervalle

Une Une courbe splinecourbe spline est définie par est définie par nn+1 points de contrôle et +1 points de contrôle et nn+1 fonctions de+1 fonctions de

pondération :pondération :

-- Les fonctions de pondérations sont définies sur des intervalles [Les fonctions de pondérations sont définies sur des intervalles [ttkk, , ttk+1k+1]. ].

TT=(=(tt00, , tt11,..., ,..., ttnn+1+1) est appelé ) est appelé vecteur de points nodauxvecteur de points nodaux..

-- Les fonctions de pondération sont des Les fonctions de pondération sont des splines d'ordre splines d'ordre mm (des polynômes par(des polynômes par

morceaux continus d'ordre morceaux continus d'ordre mm--1 aux noeuds)1 aux noeuds)

)()(00 tRPtRPP nn

91

BB--SplinesSplines

6

92

BB--SplinesSplines

Cas des BCas des B--Splines :Splines :

–– Les Les ttii s’appellent des nœudss’appellent des nœuds

–– On se donne doncOn se donne donc

•• des polynômes à définition récursive de degré mdes polynômes à définition récursive de degré m

•• n+1 points de contrôles Pn+1 points de contrôles Pkk

•• n intervalles [tn intervalles [t00,t,t11] , [t] , [t11,t,t22] ... [t] ... [tnn--11,t,tnn] et donc n+1 nœuds] et donc n+1 nœuds

En fait on aura besoin de n+m+1 nœudsEn fait on aura besoin de n+m+1 nœuds

–– Polynôme : fonction de pondérationPolynôme : fonction de pondération

93

BB--SplinesSplines

Équations dans le cas généralÉquations dans le cas général

110 ... mnmn tttt

]...[)()( 1

0

nm

n

i

i

i

m tttPtbtS

oùoù

sinontb

tttttsitbi

iiii

i

0)(

&1)(

0

110

etet )()()(1

111

11

tbtt

tttb

tt

tttb

i

kiki

kii

kiki

ii

k

Avec pour convention, si un des dénominateur est nul (nœud multiple)Avec pour convention, si un des dénominateur est nul (nœud multiple)

d’annuler le facteur correspondantd’annuler le facteur correspondant

94

BB--SplinesSplines

Exemple des fonctions de pondération des Exemple des fonctions de pondération des

BB--SplinesSplines

Ordre 1Ordre 1

Degré 0Degré 0

Ordre 2Ordre 2

Degré 1Degré 1

Ordre 3Ordre 3

Degré 2Degré 2

95

BB--SplinesSplines

Différents types de BDifférents types de B--SplineSpline

–– Lorsque les tLorsque les tii sont uniformément répartis, alors sont uniformément répartis, alors

la Bla B--Spline est dite uniformeSpline est dite uniforme

–– Dans certains cas, des tDans certains cas, des tii consécutifs sont égauxconsécutifs sont égaux

•• Les points associés sont identiques égalementLes points associés sont identiques également

•• Appelés nœuds multiplesAppelés nœuds multiples

–– BB--Spline non périodiqueSpline non périodique

•• Nœuds placés au début et à la finNœuds placés au début et à la fin

96

BB--SplinesSplines

Équations dans le cas uniforme :Équations dans le cas uniforme :

–– On peut prendre :On peut prendre :

]1...0[, mniiti

]1...[)()(0

nmtPtbtSn

i

i

i

m

oùoù

sinontb

itisitbi

i

0)(

11)(

0

0

etet )(1

)()(1

11tb

ktki

tbkit

tbi

k

i

k

i

k

97

BB--SplinesSplines

Degré d’une BDegré d’une B--Spline :Spline :

–– Degré commun à chaque courbe de BézierDegré commun à chaque courbe de Bézier

–– Degré 1 : BDegré 1 : B--Spline linéaire CSpline linéaire C00 (m = 1) (m = 1)

•• Chaque courbe de Bézier est une droite. La courbe Chaque courbe de Bézier est une droite. La courbe BB--Spline est le polygone formé des points de contrôleSpline est le polygone formé des points de contrôle

•• La BLa B--Spline est CSpline est C00 partout (continue)partout (continue)

•• Chaque début et fin de courbe de Bézier est relié à Chaque début et fin de courbe de Bézier est relié à

l’autre. Points de jonction = points de contrôlel’autre. Points de jonction = points de contrôle

PP00

PP11

PP22

PP33

7

98

BB--SplinesSplines

–– Degré 2 : BDegré 2 : B--Spline Spline

quadratique Cquadratique C11 (m = 2)(m = 2)

•• Équivalence courbe de Équivalence courbe de Bézier / SplineBézier / Spline

•• Chaque courbe de Bézier Chaque courbe de Bézier sera définie par :sera définie par :

L’intervalle [ tL’intervalle [ ti i ; t; ti+1 i+1 ]]

2 points de Bézier interne 2 points de Bézier interne

bb2i2i et bet b2i+22i+2

1 point de contrôle 1 point de contrôle

bb2i+12i+1 = P= Pi+1i+1

1211

112

11

12

iii

iii

ii

iii

btt

ttb

tt

ttb

avec bavec b--11 = P= P00 et bet b2n+12n+1 = P= Pn+2n+299

BB--SplinesSplines

–– Degré 3 : BDegré 3 : B--Spline cubique CSpline cubique C22 (m = 3)(m = 3)

•• On se donne n+3 points de contrôleOn se donne n+3 points de contrôle

On a 3n+1 points de jonctionOn a 3n+1 points de jonction

•• Chaque courbe cubique sera définie par :Chaque courbe cubique sera définie par :

L’intervalle [ tL’intervalle [ ti i ; t; ti+1 i+1 ]]

2 points interne b2 points interne b3i+13i+1 et bet b3i+23i+2

2 points de contrôle b2 points de contrôle b3i3i = P= Pii et bet b3i+33i+3 = P= Pi+1i+1

3312

113

12

1223

3312

13

12

213

iii

iii

ii

iii

iii

iii

ii

iii

btt

ttb

tt

ttb

btt

ttb

tt

ttb

100

NURBSNURBS

NonUniform Rational BNonUniform Rational B--SplineSpline

–– On rajoute des poids aux nœuds (Rational)On rajoute des poids aux nœuds (Rational)

–– L’équation devient :L’équation devient :

]...[

)(

)(

)( 1

0

0

nmn

i

i

i

m

n

i

ii

i

m

ttt

wtb

Pwtb

tS

Interpolation Interpolation SplineSpline

Famille des Famille des splinessplines d’interpolationd’interpolation–– Cette fois on demande explicitement que la Cette fois on demande explicitement que la

courbe passe par les pointscourbe passe par les points•• Exemple : BExemple : B--SplineSpline linéaire ok (ordre 2 / degré 1)linéaire ok (ordre 2 / degré 1)

–– Soit Soit n+1n+1 nœuds nœuds ttii, on a S défini par, on a S défini par

],[

],[

],[

)(

)(

)(

)(

1

21

10

1

1

0

nnn ttt

ttt

ttt

tS

tS

tS

tS

Interpolation Interpolation SplineSpline

On veut rajouter des conditionsOn veut rajouter des conditions–– Interpolation Interpolation SS((xxii)=)= PPii

•• n+1n+1 conditionsconditions

–– Continuité, Continuité, SSii--11((xxii) = ) = SSii((xxii), ), i i =1,...,=1,...,nn--1 1 •• nn--11 conditionsconditions

–– Dérivable 2 fois, Dérivable 2 fois, SS''ii--11((xxii) = ) = SS''ii((xxii) & ) & SS''''ii--11((xxii) = ) = SS''''ii((xxii))

•• 2*(n2*(n--1)1) conditionsconditions

Impose, au minimum, des polynômes de Impose, au minimum, des polynômes de degréedegrée 33–– CubicCubic interpolation interpolation splinespline

Total : 4n Total : 4n –– 2 conditions2 conditions

–– pour 4n inconnuespour 4n inconnues

–– On a 2 choixOn a 2 choix

102 103

Natural cubic splineNatural cubic spline

Défini parDéfini par

Calcul par résolution de système linéaireCalcul par résolution de système linéaire

0)(''

0)('' 0

nxS

xS

8

104

Spline cubique hermitienneSpline cubique hermitienne

Définition succincte :Définition succincte :

–– Définie à partir de deux points pDéfinie à partir de deux points p00, p, p11 et deux et deux

tangentes mtangentes m00 et met m11

105

Catmull Rom SplineCatmull Rom Spline

Très utilisées en synthèse d’imagesTrès utilisées en synthèse d’images

106

CatmullCatmull Rom Rom SplineSpline

Tangente mTangente m00 et met m11 choisie telle quechoisie telle que

–– Parallèle au segment [PParallèle au segment [Pkk--11 PPk+1k+1]]

–– Chaque tronçon dépend de 4 pointsChaque tronçon dépend de 4 points

D’autres choix possiblesD’autres choix possibles

–– Différence finieDifférence finie

–– Cardinal splineCardinal spline

–– KochanekKochanek––Bartels splineBartels spline

•• Avec 3 paramètres : tension, biais et continuitéAvec 3 paramètres : tension, biais et continuité

2

11 kk

k

ppm

107

Plan du coursPlan du cours

III.III. ModélisationModélisation

A.A. ObjetsObjets

1.1. Lignes et courbesLignes et courbes

1.1. Modèles mathématiquesModèles mathématiques

a.a. DroitesDroites

b.b. Courbes paramétriquesCourbes paramétriques

c.c. SplinesSplines

2.2. Modèles informatiqueModèles informatique

a.a. Modélisation par segmentModélisation par segment

b.b. BressenhamBressenham

c.c. AntialiasingAntialiasing

2.2. SurfacesSurfaces

3.3. Objets complexes, humainsObjets complexes, humains

4.4. VolumesVolumes

108

Modélisation de courbeModélisation de courbe

On travaille sur une imageOn travaille sur une image

–– Espace discret de valeurEspace discret de valeur

–– Comment représenter les courbes ?Comment représenter les courbes ?

•• DéformationsDéformations

Un espace discret ne peut rendre compte d’un espace Un espace discret ne peut rendre compte d’un espace

continucontinu

•• Calcul de chaque pixel, pour chaque petit déplacement Calcul de chaque pixel, pour chaque petit déplacement de la courbe ?de la courbe ?

109

Modélisation par segmentModélisation par segment

Travailler pixel / pixel : trop cherTravailler pixel / pixel : trop cher

–– Discrétisation de la courbeDiscrétisation de la courbe

•• Travailler avec des segmentsTravailler avec des segments

–– Segments :Segments :

•• Facile à dessiner sur une imageFacile à dessiner sur une image

•• Souple, permet d’affiner uniformément, choix du Souple, permet d’affiner uniformément, choix du nombre de segment ...nombre de segment ...

•• Exemple avec le cercleExemple avec le cercle

9

110

Modélisation par segmentModélisation par segment

Algorithme :Algorithme :

fonctionfonction dessine(dessine(C courbe paramétrique, C courbe paramétrique,

réel tinit, réel tinit,

réel tfin, réel tfin,

int nb_segmentint nb_segment););

débutdébut

réel réel t;t;

réelréel pas = (tfin pas = (tfin –– tinit)/nb_segment;tinit)/nb_segment;

for(t=tinit;t<tfin;t+=pas) {for(t=tinit;t<tfin;t+=pas) {

segment(C(t),C(t+pas));segment(C(t),C(t+pas));

}}

finfin

111

BresenhamBresenham

Un algorithme optimisé de tracé de droiteUn algorithme optimisé de tracé de droite

–– Créé en 1961 par Jack BresenhamCréé en 1961 par Jack Bresenham

–– Répond à la question :Répond à la question :

•• Algorithme rapide pour allumer les pixels d’un Algorithme rapide pour allumer les pixels d’un segment (x1,y1) segment (x1,y1) –– (x2,y2)(x2,y2)

112

BresenhamBresenham

Approche naïve :Approche naïve :

–– Cas 0 < dy < dxCas 0 < dy < dx

–– Pour chaque colonnePour chaque colonne

•• Calculer son ordonnée avec :Calculer son ordonnée avec :

•• Prendre la valeur entière la plus proche de yPrendre la valeur entière la plus proche de y

–– Défauts :Défauts :

•• Calcul de la valeur entièreCalcul de la valeur entière

•• Calcul en nombres rationnelsCalcul en nombres rationnels

•• 1 pixel par colonne ?1 pixel par colonne ?

)(1

12

121

xxxx

yyyy

113

BresenhamBresenham

–– Algorithme approche naïve :Algorithme approche naïve :

fonctionfonction tracerSegment(tracerSegment(entierentier xx11,,entierentier yy11,,entierentier xx22,,entierentier yy22))

entierentier x, y, dx, dy ; x, y, dx, dy ;

réelréel err, decal, incr; err, decal, incr;

// Erreurs et increments // Erreurs et increments

dy := ydy := y22 -- yy11 ; ;

dx := xdx := x22 -- xx11 ; ;

y := yy := y11 ; ;

err := 0 ; err := 0 ;

incr := dy / dx ; incr := dy / dx ;

decal := decal := --1.0 ; 1.0 ;

pourpour x x variant devariant de xx11 jusqu’àjusqu’à xx22 par incrément depar incrément de 1 1 fairefaire

tracerPixel(x, y); tracerPixel(x, y);

sisi (err := err + incr) ≥ 0,5 (err := err + incr) ≥ 0,5 alorsalors

y := y + 1 ; y := y + 1 ;

err := err + decal ; err := err + decal ;

finfin

fin fin

fin fin

114

BresenhamBresenham

Optimisation par BresenhamOptimisation par Bresenham

–– MéthodeMéthode

•• Équation :Équation :

•• F(x,y) : distance, erreur entre la droite et un point (x,y)F(x,y) : distance, erreur entre la droite et un point (x,y)

•• Si on calcule F(x+1,y+0.5), on sait quel pixel allumerSi on calcule F(x+1,y+0.5), on sait quel pixel allumer

•• De plus on a la nouvelle erreur pour la prochaine foisDe plus on a la nouvelle erreur pour la prochaine fois

0),( 11 xdyxdyydxydxyxF

dyxFyxF )1()5.0,2(

dxdyxFyxF )1()5.1,2(

Si on allume le pixel du basSi on allume le pixel du bas

Si on allume le pixel du hautSi on allume le pixel du haut

115

BresenhamBresenham

•• Première erreur :Première erreur :

–– Optimisation :Optimisation :

•• Prendre que des valeurs entièresPrendre que des valeurs entières

•• Pas de problème pour les incrémentsPas de problème pour les incréments

Reste la valeur initial Reste la valeur initial

On multiplie tout par 2On multiplie tout par 2

dydxyxF 2

)5.0,1(

10

116

BresenhamBresenham

–– AlgorithmeAlgorithme

fonctionfonction bresenham(bresenham(entierentier xx11,,entierentier yy11,,entierentier xx22,,entierentier yy22))

entierentier x, y, dx, dy ; x, y, dx, dy ;

entierentier err; err;

// Erreurs et increments // Erreurs et increments

x = xx = x11;;

y = yy = y11;;

dy := ydy := y22 -- yy11 ; ;

dx := xdx := x22 -- xx11 ; ;

tracerPixel(x, y); tracerPixel(x, y);

err := err := --dx ; dx ;

pourpour x x variant devariant de xx11+1 +1 jusqu’àjusqu’à xx22 par incrément depar incrément de 1 1 fairefaire

err += 2*dy;err += 2*dy;

sisi (err ≥ 0) (err ≥ 0) alorsalors

y := y + 1 ; y := y + 1 ;

err err --= 2*dx ; = 2*dx ;

fin sifin si

tracerPixel(x, y); tracerPixel(x, y);

fin pour fin pour

finfin

117

BresenhamBresenham

Bien vu mais ...Bien vu mais ...

–– Tout les calculs en valeur entièreTout les calculs en valeur entière

•• Efficace mais maintenant tous les calculs se font en Efficace mais maintenant tous les calculs se font en flottants sur les cartes graphiquesflottants sur les cartes graphiques

Coût de la conversionCoût de la conversion

•• Problème pour gérer l’antialiasing...Problème pour gérer l’antialiasing...

118

AntialiasingAntialiasing

AntiAnti--crénelagecrénelage

–– Les droites discrètes sont peu esthétiques ...Les droites discrètes sont peu esthétiques ...

119

AntialiasingAntialiasing

120

AntialiasingAntialiasing

Allumer les pixels Allumer les pixels

–– suivant leur distance au segment à tracersuivant leur distance au segment à tracer

–– On joue sur l’illuminationOn joue sur l’illumination

AlgorithmeAlgorithme

functionfunction drawLine(x1,y1,x2,y2) { drawLine(x1,y1,x2,y2) {

dx = x2 dx = x2 -- x1; // On suppose x2 > x1x1; // On suppose x2 > x1

dy = y2 dy = y2 -- y1; // On suppose y2 > y1y1; // On suppose y2 > y1

gradient = dy / dx;gradient = dy / dx;

// Gérer le premier point // Gérer le premier point

xend = round(x1);xend = round(x1);

yend = y1 + gradient * (xend yend = y1 + gradient * (xend -- x1);x1);

xgap = (1 xgap = (1 –– partie_rationnelle(x1 + 0.5));partie_rationnelle(x1 + 0.5));

xpxl1 = xend; // premier point entier proche de xendxpxl1 = xend; // premier point entier proche de xend

ypxl1 = partie_entiere(yend); ypxl1 = partie_entiere(yend);

plot(xpxl1, ypxl1, (1 plot(xpxl1, ypxl1, (1 –– partie_rationnelle(yend)) * xgap); partie_rationnelle(yend)) * xgap);

plot(xpxl1, ypxl1 + 1, partie_rationnelle(yend) * xgap); plot(xpxl1, ypxl1 + 1, partie_rationnelle(yend) * xgap);

next_y = yend + gradient; // Premier point d’intersection pour y next_y = yend + gradient; // Premier point d’intersection pour y

......

121

AntialiasingAntialiasing

functionfunction drawLine(x1,y1,x2,y2) { drawLine(x1,y1,x2,y2) {

......

// gerer le second point // gerer le second point

xend = round(x2) xend = round(x2)

yend = y2 + gradient * (xend yend = y2 + gradient * (xend -- x2) x2)

xgap = fpart(x2 + 0.5) xgap = fpart(x2 + 0.5)

xpxl2 = xend // this will be used in the main loop xpxl2 = xend // this will be used in the main loop

ypxl2 = ipart(yend) ypxl2 = ipart(yend)

plot(xpxl2, ypxl2, rfpart(yend) * xgap) plot(xpxl2, ypxl2, rfpart(yend) * xgap)

plot(xpxl2, ypxl2 + 1, fpart(yend) * xgap) plot(xpxl2, ypxl2 + 1, fpart(yend) * xgap)

// main loop // main loop

forfor x x fromfrom xpxl1 + 1 xpxl1 + 1 toto xpxl2 xpxl2 -- 1 1 dodo

plot(x, ipart(intery), rfpart(intery)) plot(x, ipart(intery), rfpart(intery))

plot(x, ipart(intery) + 1, fpart(intery)) plot(x, ipart(intery) + 1, fpart(intery))

intery = intery + gradient intery = intery + gradient

donedone

}}

11

122

AntialiasingAntialiasing

123

Plan du coursPlan du cours

I.I. IntroductionIntroduction

II.II. Les mathématiques de l'imageLes mathématiques de l'image

III.III. ModélisationModélisation

A.A. ObjetsObjets

1.1. Lignes & Courbes Lignes & Courbes

2.2. SurfacesSurfaces

3.3. Objets complexes, humainsObjets complexes, humains

4.4. VolumesVolumes

B.B. ScènesScènes

C.C. Lumière et matièreLumière et matière

IV.IV. Rendu & affichageRendu & affichage

124

Plan du coursPlan du cours

III.III. ModélisationModélisation

A.A. ObjetsObjets

1.1. Lignes et courbesLignes et courbes

2.2. SurfacesSurfaces

1.1. Modèles mathématiquesModèles mathématiques

a.a. Objets géométrique simpleObjets géométrique simple

b.b. Surfaces implicitesSurfaces implicites

2.2. Modèles informatiquesModèles informatiques

a.a. Soupe de trianglesSoupe de triangles

b.b. Ensemble de points, surfelsEnsemble de points, surfels

c.c. Marching cubesMarching cubes

3.3. Objets complexes, humainsObjets complexes, humains

4.4. VolumesVolumes125

Objets géométriquesObjets géométriques

Plan :Plan :–– Équation cartésienne :Équation cartésienne :

•• Normale du plan :Normale du plan :

–– Équations paramétriques :Équations paramétriques :•• Soit O un point du plan, u et v deux vecteurs du plan Soit O un point du plan, u et v deux vecteurs du plan

non colinéairesnon colinéaires

•• Normale :Normale :

0 dzcybxa

zzz

yyy

xxx

vtusOz

vtusOy

vtusOx

vun

Tcban ),,(

126

Cartésien / paramétrique ?Cartésien / paramétrique ?

Différents type de coordonnéesDifférents type de coordonnées

Deux formes distinctesDeux formes distinctes

–– Une représentation fondée sur une Une représentation fondée sur une

paramètrisation des coordonnéesparamètrisation des coordonnées

–– Une représentation fondée sur une contrainte Une représentation fondée sur une contrainte

liée aux coordonnéesliée aux coordonnées

–– Deux façons de voir les courbes, les surfaces ...Deux façons de voir les courbes, les surfaces ...

127

Objets géométriquesObjets géométriques

Sphère :Sphère :

–– Centre C et rayon RCentre C et rayon R

–– Équation cartésienne :Équation cartésienne :

•• Normale en P :Normale en P :

–– Équations Équations

paramétriques ?paramétriques ?

0)()()(2222 Rzzyyxx

CCC

CP

12

128

Objets géométriquesObjets géométriques

Cylindre :Cylindre :

–– Axe (Oy), rayon R, hauteur h à partir de l’origineAxe (Oy), rayon R, hauteur h à partir de l’origine

hy

Rzx

0

0222

Équation cartésienneÉquation cartésienne

Équations paramétriques ?Équations paramétriques ?

129

Différentes coordonnéesDifférentes coordonnées

Coordonnées cartésiennesCoordonnées cartésiennes

–– Celles que l’on vient de voirCelles que l’on vient de voir

–– Utile très souvent mais ... Utile très souvent mais ...

... pour se déplacer sur une sphère ?... pour se déplacer sur une sphère ?

On a défini aussi 2 autres types de On a défini aussi 2 autres types de

coordonnéescoordonnées

–– Coordonnées cylindriques Coordonnées cylindriques

–– Coordonnées sphériquesCoordonnées sphériques

130

Coordonnées cylindriquesCoordonnées cylindriques

θθ

rr

MM

PPzz

zyx

M coordonnéescoordonnées

cartésiennescartésiennes

z

rM coordonnéescoordonnées

cylindriquescylindriques

zzryrx

)(sin)(cos

131

Coordonnées sphériquesCoordonnées sphériques

MM

PP

φφ

θθ

rr

zyx

M coordonnéescoordonnées

cartésiennescartésiennes

r

M coordonnéescoordonnées

sphériquessphériques

)cos()sin()(sin)sin()(cos

rzryrx

132

TrigonométrieTrigonométrie

DéfinitionDéfinition

–– Étude des rapports de distances et d’angle dans Étude des rapports de distances et d’angle dans

les triangles ainsi que les fonctionsles triangles ainsi que les fonctions

trigonométriquestrigonométriques

–– Triangle rectangle en CTriangle rectangle en C

θθ

cb)cos(

ca)sin(

ba)tan(

1)(sin)(cos 22

Par pythagore :Par pythagore :

133

TrigonométrieTrigonométrie

Identités trigonométriques (cf. wikipedia)Identités trigonométriques (cf. wikipedia)

ParitéParité

Addition et soustractionAddition et soustraction

SymétrieSymétrie

DuplicationDuplication

13

134

Trigonométrie : cosinus & sinusTrigonométrie : cosinus & sinus

135

Trigonométrie : table de valeursTrigonométrie : table de valeurs

136

Trigonométrie et vecteursTrigonométrie et vecteurs

Formule avec les vecteursFormule avec les vecteurs

–– Soit u et v deux vecteurs :Soit u et v deux vecteurs :

θθ

u

v

)cos(. vuvu

nvuvu

)sin(

Pour le cosinus :Pour le cosinus :

Pour le sinus :Pour le sinus :

Manière de calculer les fonctions trigonométriques très efficaceManière de calculer les fonctions trigonométriques très efficace

(si on peut éviter les racines carrées)(si on peut éviter les racines carrées)

avec n vecteur normal à u et vavec n vecteur normal à u et v

137

Objets géométriquesObjets géométriques

Cône :Cône :

–– Axe (Oy), pointe en 0, angle Axe (Oy), pointe en 0, angle αα

)()(cot2222zxy

)sin(

)cot(

)cos(

z

y

x

Équation cartésienneÉquation cartésienne

Équations paramétriquesÉquations paramétriques

138

Objets géométriquesObjets géométriques

EllipsoïdesEllipsoïdes

–– Sorte de triple ellipse, un axe pour chaque Sorte de triple ellipse, un axe pour chaque

directiondirection

•• Grand axe a, axe moyen b, petit axe cGrand axe a, axe moyen b, petit axe c

–– Équation cartésienne :Équation cartésienne :

–– Équations Équations

paramétriques :paramétriques :

12

2

2

2

2

2

cz

b

y

ax

)sin(

)sin()cos(

)cos()cos(

cz

by

ax

139

Surfaces implicitesSurfaces implicites

Définir une surface comme un potentielDéfinir une surface comme un potentiel

–– Se munir d’une fonction de potentielSe munir d’une fonction de potentiel

–– La surface S représente tous les points ayant un La surface S représente tous les points ayant un

potentiel précis :potentiel précis :

•• ff peut être une fonction analytiquepeut être une fonction analytique

•• Le plus souvent est défini à partir de squeletteLe plus souvent est défini à partir de squelette

On fixe un squelette (point, ligne ou forme)On fixe un squelette (point, ligne ou forme)

Le potentiel «Le potentiel « irradieirradie » à partir de ce squelette» à partir de ce squelette

0),,( zyxf

isozyxfzyxPSiso

),,(),,(

14

140

Surfaces implicitesSurfaces implicites

Fonction de potentiel par squeletteFonction de potentiel par squelette

–– Soit Soit nn formes de baseformes de base

•• ffii est la fonction de potentiel relative à la iest la fonction de potentiel relative à la ièmeème formeforme

–– La fonction de potentiel est :La fonction de potentiel est :

–– Choix desChoix des ffii

n

ii

zyxfzyxf1

),,(),,(

141

Surfaces implicitesSurfaces implicites

Quelques exemples :Quelques exemples :

142

Plan du coursPlan du cours

III.III. ModélisationModélisation

A.A. ObjetsObjets

1.1. Lignes et courbesLignes et courbes

2.2. SurfacesSurfaces

1.1. Modèles mathématiquesModèles mathématiques

a.a. Objets géométrique simpleObjets géométrique simple

b.b. Surfaces implicitesSurfaces implicites

2.2. Modèles informatiquesModèles informatiques

a.a. Soupe de triangles, de polygonesSoupe de triangles, de polygones

b.b. Ensemble de points, surfelsEnsemble de points, surfels

c.c. Marching cubesMarching cubes

3.3. Objets complexes, humainsObjets complexes, humains

4.4. VolumesVolumes143

Modèles de surfacesModèles de surfaces

5 grandes familles5 grandes familles

–– BB--RepRep

–– Modélisation par point Modélisation par point

–– Marching cubesMarching cubes

–– CSGCSG

–– Modèles paramétriquesModèles paramétriques

–– L systèmes / FractalesL systèmes / Fractales

Prochaine partieProchaine partie

144

BB--RepRep

Philosophie : BPhilosophie : B--reprep

–– Pour Pour Boundary RepresentationBoundary Representation

–– Modélisation des objets par leur limite, leur bordModélisation des objets par leur limite, leur bord

–– BB--reprep

•• Géométrie + Topologie (souvent absente)Géométrie + Topologie (souvent absente)

Origine :Origine :

–– Logiciel de CAO / CADLogiciel de CAO / CAD

•• Maillages très fournis, très complexeMaillages très fournis, très complexe

Exemple : Airbus, Voiture…Exemple : Airbus, Voiture…

–– Logiciel de création : 3DSMax, Maya …Logiciel de création : 3DSMax, Maya …

145

BB--Rep : Soupe de polygonesRep : Soupe de polygones

Objets complexe représentés par un Objets complexe représentés par un

ensemble de polygones (triangles) reliésensemble de polygones (triangles) reliés

–– Exemple : Cube = 12 trianglesExemple : Cube = 12 triangles

–– Autres exemples :Autres exemples :

15

146

BB--Rep : MaillagesRep : Maillages

Maillage = soupe de polygones + adjacenceMaillage = soupe de polygones + adjacence–– Ensemble connecté de polygone (triangles)Ensemble connecté de polygone (triangles)

–– Incorpore la topologie : modèle riche !Incorpore la topologie : modèle riche !

–– Affichage facile en OpenGLAffichage facile en OpenGL•• Mais mauvais choix pour les surfaces courbes...Mais mauvais choix pour les surfaces courbes...

–– D’autres calculs possiblesD’autres calculs possibles•• Courbure, normales, paramétrisationCourbure, normales, paramétrisation

•• Simplification, raffinementSimplification, raffinement

–– Édition difficileÉdition difficile

Modèles disponibles ?Modèles disponibles ?–– Souvent entre la soupe de polygone et le Souvent entre la soupe de polygone et le

maillagemaillage

147

BB--Rep : MaillagesRep : Maillages

Sommet (Vertex / Vertices)Sommet (Vertex / Vertices) : position (et autres données) : position (et autres données)

Arête (Edge)Arête (Edge) : connexion entre 2 sommets: connexion entre 2 sommetsFace (Face)Face (Face) : Ensemble fini et fermé d’arête (cycle): Ensemble fini et fermé d’arête (cycle)-- Triangle : Face à 3 arêtesTriangle : Face à 3 arêtes

-- Quads : Face à 4 arêtesQuads : Face à 4 arêtesPolygone (Polygon)Polygone (Polygon) : Ensemble de faces: Ensemble de facesSurfaceSurface : regroupe des faces (polygones) représentant surface : regroupe des faces (polygones) représentant surface

courbecourbe

Note : Dans les représentations supportant des faces à nombre arbitraire Note : Dans les représentations supportant des faces à nombre arbitraire

d’arêtes, faces et polygones sont identiquesd’arêtes, faces et polygones sont identiques

148

BB--Rep : MaillagesRep : Maillages

Plusieurs représentation Plusieurs représentation

–– VertexVertex--Vertex MeshesVertex Meshes

–– FaceFace--Vertex MeshesVertex Meshes

–– WingedWinged--Edge MeshesEdge Meshes

–– Render Dynamic MeshesRender Dynamic Meshes

Différentes façons de définir /coder la Différentes façons de définir /coder la

topologietopologie

149

BB--Rep : MaillagesRep : Maillages

✔✔ CompactCompact

✘✘ExtractionExtraction

d’informationd’information

difficiledifficile

✘✘ Pas dePas de

représentationreprésentation

directe de ladirecte de la

surfacesurface

150

BB--Rep : MaillagesRep : Maillages

✔✔ SommetsSommets

et face en accèset face en accès

directdirect

✔✔ Utilisation Utilisation

par les pipelinepar les pipeline

graphiquegraphique

✘✘Accès difficileAccès difficile

aux arêtesaux arêtes

✘✘Accès difficileAccès difficile

aux faces aux faces

voisinesvoisines

d’une faced’une face

151

BB--Rep : MaillagesRep : Maillages

✔✔ Topologie expliciteTopologie explicite

✔✔ Utilisation par les Utilisation par les

logiciels de modélisationlogiciels de modélisation

✔✔ SplitSplit et et mergemerge rapidesrapides

✘✘ Taille mémoire Taille mémoire

importanteimportante

✘✘ Complexité à maintenirComplexité à maintenir

16

152

BB--Rep : MaillagesRep : Maillages

✔✔ Utilisation par Utilisation par

pipeline pipeline

graphiquegraphique

✔✔ Topologie Topologie

expliciteexplicite

✔✔Accès directsAccès directs

✘✘ Taille mémoire Taille mémoire

importanteimportante

✘✘ Complexité à Complexité à

maintenirmaintenir

153

BB--Rep : MaillagesRep : Maillages

154

MaillagesMaillages

Quelques algorithmes…Quelques algorithmes…–– Subdivision de surface :Subdivision de surface :

•• Créer des maillages plus lisseCréer des maillages plus lisse

•• Loop, CatmullLoop, Catmull--Clark, Modified butterfly, Clark, Modified butterfly, KobbeltKobbelt

•• Naïvement, pas de respect des arêtes vivesNaïvement, pas de respect des arêtes vives

–– Simplification de maillageSimplification de maillage•• Minimiser le nombre de trianglesMinimiser le nombre de triangles

•• Plusieurs critères importantsPlusieurs critères importants Conservation de la topologieConservation de la topologie

Continuité entre maillagesContinuité entre maillages

Orientation budget ou erreurOrientation budget ou erreur

Propriétés sur sommetsPropriétés sur sommets

155

Algorithme de subdivisionAlgorithme de subdivision

Algorithme de CatmullAlgorithme de Catmull--clarkclark

–– Sur maillage quelconqueSur maillage quelconque

–– Produit un maillage de quadrilatèreProduit un maillage de quadrilatère

–– Schéma d'approximationSchéma d'approximation

–– Peut gérer les bordsPeut gérer les bords

Algorithme de LoopAlgorithme de Loop

–– Sur maillage triangulaireSur maillage triangulaire

–– Schéma d'approximationSchéma d'approximation

–– Simple d'utilisationSimple d'utilisation

–– Gère les bords, les arêtes vivesGère les bords, les arêtes vives

156

n

ivn

f1

1

FACE

4

2121 ffvve

ARETE

SOMMET

j

jj

jii fn

vn

vnnv 221

112

CatmullCatmull--clark (78)clark (78)

157

Loop (87)Loop (87)

8

3

8

1

8

3

8

1

n

n

n1

n

n

n

n

n

n

n

n

n

n

2

2cos2340

64

1

nn

17

158

Loop: Gestion des bordsLoop: Gestion des bords

Masque spécifiqueMasque spécifique

2

1

2

1

8

1

8

1

8

6

Loi d’arêteLoi d’arête Loi de sommetLoi de sommet

159

Algorithme de simplificationAlgorithme de simplification

Algorithme statique (précalculs)Algorithme statique (précalculs)

–– Décimation de sommet : Décimation de sommet : decimationdecimation

•• Conserve topologie et propriété de sommetConserve topologie et propriété de sommet

•• LongLong

–– Regroupement de sommet : Regroupement de sommet : vertex clusteringvertex clustering

•• Simple et rapideSimple et rapide

•• Moche, ne conserve pas la topologieMoche, ne conserve pas la topologie

–– Surface enveloppante : Surface enveloppante : simplification envelopessimplification envelopes

•• Maîtrise de l'erreur, de la distorsionMaîtrise de l'erreur, de la distorsion

•• Très long et peu robusteTrès long et peu robuste

Problème de Problème de poppingpopping !!

160

Algorithme de simplificationAlgorithme de simplification

Algorithme dynamique (maillages continus)Algorithme dynamique (maillages continus)

–– Principe :Principe :

•• Simplification avec préservation de l'apparenceSimplification avec préservation de l'apparence

Maillage + Maillage + normal mapsnormal maps + texture / peu de réduction+ texture / peu de réduction

•• Maillages progressifs (Maillages progressifs (progressive meshesprogressive meshes) de Hoppe ) de Hoppe

Le plus rapide (TR) / peu de réductionLe plus rapide (TR) / peu de réduction

161

Modélisation par pointsModélisation par points

Des points ?Des points ?

–– Objets de plus en plus complexeObjets de plus en plus complexe

•• Triangles de plus en plus petitsTriangles de plus en plus petits

Si le modèle est vu de loin, ils se projettent sur 0,1 voire Si le modèle est vu de loin, ils se projettent sur 0,1 voire

2 pixels2 pixels

Beaucoup de travail inutile : interpolation (couleurs, Beaucoup de travail inutile : interpolation (couleurs,

normales, textures) et rasterisation.normales, textures) et rasterisation.

•• Maillage inefficaceMaillage inefficace

–– Idée : représentation par points de la surfaceIdée : représentation par points de la surface

•• Rendu plus efficace, possibilité de rendu de beaucoup Rendu plus efficace, possibilité de rendu de beaucoup de pointsde points

•• Rajout de propriétés (couleur, texture) aux pointsRajout de propriétés (couleur, texture) aux points

162

Modélisation par pointsModélisation par points

OrigineOrigine

–– Acquisition scannerAcquisition scanner

–– Génération automatique de géométrie (LGénération automatique de géométrie (L--system)system)

ExemplesExemples

163

Modélisation par pointsModélisation par points

Qsplat :Qsplat :

–– Les points sont projetés sur l’écranLes points sont projetés sur l’écran

–– Contribuent à plusieurs pixelsContribuent à plusieurs pixels

•• Suivant leur éloignementSuivant leur éloignement

•• Filtre gaussien, masque pour chaque pointFiltre gaussien, masque pour chaque point

•• RenduRendu

Point OpenGL (un carré)Point OpenGL (un carré)

Cercle (un Quad avec une texture)Cercle (un Quad avec une texture)

Un point flou (un bilboard avec une texture gaussiène)Un point flou (un bilboard avec une texture gaussiène)

18

164

QSplatQSplat

Résultats :Résultats :

A.A.

PointsPoints

(qsplat)(qsplat)

B.B.

PolygonesPolygones

même nombremême nombre

de polygones qu’en A.de polygones qu’en A.

même tempsmême temps

C.C.

PolygonesPolygones

même nombremême nombre

de sommets qu’en A.de sommets qu’en A.

temps x2temps x2

165

Modélisation par pointsModélisation par points

Surfel : Surfel : surface elementsurface element

–– Construits directement à partir d’une surfaceConstruits directement à partir d’une surface

–– Rajoute des informations par rapport aux QsplatRajoute des informations par rapport aux Qsplat

•• TexturesTextures

•• Profondeur, positionProfondeur, position

•• NormalesNormales

–– On utilise ces informations pour projeter le On utilise ces informations pour projeter le

«« pointpoint »»

•• Notamment de coordonnées de texture et les normalesNotamment de coordonnées de texture et les normales

–– Plus long que les QSplatPlus long que les QSplat

166

Modélisation par pointsModélisation par points

IntérêtsIntérêts–– Pas de conservation de la topologie. Données Pas de conservation de la topologie. Données

libreslibres

–– Possibilité de rendu efficace de modèles Possibilité de rendu efficace de modèles complexescomplexes

DéfautsDéfauts–– Problème lors d’un zoom trop importantProblème lors d’un zoom trop important

–– Difficulté de remplir les trousDifficulté de remplir les trous•• Coûte cherCoûte cher

–– Encore peu temps réelEncore peu temps réel•• Sauf si on rend un modèle précisSauf si on rend un modèle précis

•• Applicable néanmoins en hiérarchie de points...Applicable néanmoins en hiérarchie de points...

167

QSplat et GPU...QSplat et GPU...

Gaël Guennebaud, Loïc Gaël Guennebaud, Loïc

Barthe and Mathias Paulin,Barthe and Mathias Paulin,

Deferred SplattingDeferred Splatting

Eurographics 2004, Eurographics 2004,

Grenoble, FranceGrenoble, France

168

Marching cubesMarching cubes

Origine :Origine :

–– Modélisation de surfaces implicitesModélisation de surfaces implicites

–– Données volumiquesDonnées volumiques

Surface définie par Surface définie par

–– Point (x,y,z) a l’intérieur ou à l’extérieurPoint (x,y,z) a l’intérieur ou à l’extérieur

Données d’entréesDonnées d’entrées

–– Ensemble d’échantillons ponctuels organisés en Ensemble d’échantillons ponctuels organisés en

cubescubes

–– Voxels avec 8 sommetsVoxels avec 8 sommets

169

Marching cubesMarching cubes

Principe de base :Principe de base :–– Détermination des Détermination des

éléments interneséléments internes

–– Calcul des bordsCalcul des bords

–– Construction du Construction du contourcontour

19

170

Marching cubesMarching cubes

Sélection des cubes qui intersectent l'isoSélection des cubes qui intersectent l'iso--surface :surface :

–– Au moins un sommet dedans, au moins un sommet Au moins un sommet dedans, au moins un sommet dehorsdehors

Classification des cubes :Classification des cubes :

–– 8 sommets, 2 états (dedans, dehors) 8 sommets, 2 états (dedans, dehors) = 256 possibilités= 256 possibilités

–– Symétrie des 2 états : 128 possibilitésSymétrie des 2 états : 128 possibilités

–– Symétries par rotation : 15 possibilitésSymétries par rotation : 15 possibilités

–– Pour chaque possibilité, une seule triangulation possiblePour chaque possibilité, une seule triangulation possible

–– De 1 à 4 triangles par cubeDe 1 à 4 triangles par cube

171

Marching cubesMarching cubes

Les 15 combinaisons :Les 15 combinaisons :

172

Marching cubes : Calcul des Marching cubes : Calcul des

normalesnormales Les normales sont calculées indépendammentLes normales sont calculées indépendamment

–– Lisser la surface obtenueLisser la surface obtenue

–– Une normale par triangleUne normale par triangle

Calcul :Calcul :

–– Gradient de la fonction : normal à l'isoGradient de la fonction : normal à l'iso--surfacesurface

–– Calcul du gradient aux sommets du cubeCalcul du gradient aux sommets du cube

–– Normalisation : normale aux sommets du cubeNormalisation : normale aux sommets du cube

–– Interpolation linéaire : normales aux sommets des Interpolation linéaire : normales aux sommets des trianglestriangles

–– Interpolation linéaire : normales sur les trianglesInterpolation linéaire : normales sur les triangles

173

Marching cubesMarching cubes

Gradient au sommets Gradient au sommets

–– Estimation par différences centrales :Estimation par différences centrales :

ykjiDkjiD

kjiG

xkjiDkjiD

kjiG

zkjiDkjiD

kjiG

y

x

z

),1,(),1,(),,(

),,1(),,1(),,(

)1,,()1,,(),,(

174

Marching cubesMarching cubes

Exemples :Exemples :

175

Marching cubesMarching cubes

Beaucoup de polygones :Beaucoup de polygones :

–– Même ordre de grandeur que le nombre de Même ordre de grandeur que le nombre de

voxelsvoxels

–– Stockage, affichage…Stockage, affichage…•• Parfois plus cher de stocker les polygones que de stocker le Parfois plus cher de stocker les polygones que de stocker le

volume !volume !

Gros problèmes liés à la précisionGros problèmes liés à la précision

–– SousSous--échantillonnageéchantillonnage

–– ArtefactsArtefacts

20

176

Plan du coursPlan du cours

I.I. IntroductionIntroduction

II.II. Les mathématiques de l'imageLes mathématiques de l'image

III.III. ModélisationModélisation

A.A. ObjetsObjets

1.1. Lignes & Courbes Lignes & Courbes

2.2. SurfacesSurfaces

3.3. Objets complexes, humainsObjets complexes, humains

4.4. VolumesVolumes

B.B. ScènesScènes

C.C. Lumière et matièreLumière et matière

IV.IV. Rendu & affichageRendu & affichage

177

Plan du coursPlan du cours

I.I. ModélisationModélisation

A.A. ObjetsObjets

1.1. Lignes & Courbes Lignes & Courbes

2.2. SurfacesSurfaces

3.3. Objets complexes, humainsObjets complexes, humains

1.1. Modèles procédurauxModèles procéduraux

2.2. CSGCSG

3.3. SkinningSkinning

4.4. VolumesVolumes

178

Objets complexesObjets complexes

On a déjà vu des surfaces complexes :On a déjà vu des surfaces complexes :

–– Modélisation par pointsModélisation par points

–– Certaines soupes de polygonesCertaines soupes de polygones

Leur construction est :Leur construction est :

–– Soit fait par acquisition directeSoit fait par acquisition directe

•• LaserLaser

–– Soit utilise des techniques spécifiques :Soit utilise des techniques spécifiques :

•• Solide de révolutionSolide de révolution

•• ExtrusionExtrusion

179

Modèles procédurauxModèles procéduraux

Primitives géométriques créées par une Primitives géométriques créées par une

procédureprocédure

–– Croissance progressive de la formeCroissance progressive de la forme

Utile pour des objets structurésUtile pour des objets structurés

–– Ex : plante, paysage, villes ...Ex : plante, paysage, villes ...

Plusieurs approches :Plusieurs approches :

–– FractalesFractales

–– LL--systemssystems

–– Système de particulesSystème de particules

180

FractalesFractales

Très mathématique !Très mathématique !

–– autosimilaritéautosimilarité

3 catégories3 catégories

–– Fonctions itéréesFonctions itérées

–– Relation de récurrenceRelation de récurrence

des pointsdes points

–– Fractales stochastiquesFractales stochastiques

MandelbrotMandelbrot 181

LL--systemssystems

Grammaire décrivant la croissanceGrammaire décrivant la croissance

21

182

Systèmes de particulesSystèmes de particules

Peuvent être utilisés pour décrire des Peuvent être utilisés pour décrire des

surfacessurfaces

–– Enveloppe d’un feuEnveloppe d’un feu

–– Surface d’un tas de sable ...Surface d’un tas de sable ...

Problème de connexion entre les particulesProblème de connexion entre les particules

–– Pour avoir des surfaces correctesPour avoir des surfaces correctes

183

Modèles procédurauxModèles procéduraux

Création d’objets complexesCréation d’objets complexes

–– Difficile à créer à la mainDifficile à créer à la main

–– Souvent pour des «Souvent pour des « objetsobjets » naturels» naturels

Problème de l’inversionProblème de l’inversion

–– Non connaissance des effets des paramètresNon connaissance des effets des paramètres

RenduRendu

–– Contraigne à des algorithmes spécifiquesContraigne à des algorithmes spécifiques

AnimationAnimation

–– Grammaire temporelleGrammaire temporelle

–– Système de particulesSystème de particules

184

Plan du coursPlan du cours

I.I. ModélisationModélisation

A.A. ObjetsObjets

1.1. Lignes & Courbes Lignes & Courbes

2.2. SurfacesSurfaces

3.3. Objets complexes, humainsObjets complexes, humains

1.1. Modèles procédurauxModèles procéduraux

2.2. CSGCSG

3.3. SkinningSkinning

4.4. VolumesVolumes

185

CSGCSG

CSG : CSG : Constructive Solid GeometryConstructive Solid Geometry

Processus de construction d’objets Processus de construction d’objets

complexescomplexes

–– A partir de forme de base 3D «A partir de forme de base 3D « simplesimple » »

(analytiques)(analytiques)

•• Cubes, Sphère, Cylindre ...Cubes, Sphère, Cylindre ...

–– Utilisant des opérations ensemblistesUtilisant des opérations ensemblistes

•• Unions, Intersections, DifférencesUnions, Intersections, Différences

19821982

186

CSGCSG

Exemple de constructionExemple de construction

187

CSGCSG

Représentation parReprésentation par

–– Une grammaireUne grammaire

–– Un arbreUn arbre

Rendu parRendu par

–– Ray tracingRay tracing

–– OpenGL ?OpenGL ?

Très intuitif pour modéliserTrès intuitif pour modéliser

–– Utilisé dans le Utilisé dans le builderbuilder de Unrealde Unreal

LimitéLimité

–– Dépend du choix des primitives de baseDépend du choix des primitives de base

Applicable à des modélisation par pointsApplicable à des modélisation par points

exp := prim | transf prim | op exp expexp := prim | transf prim | op exp exp

prim := cube | sphere | cone | …prim := cube | sphere | cone | …

transf := translation | homothétie | transf := translation | homothétie |

rotationrotation

op := union | intersection | differenceop := union | intersection | difference

22

188

Plan du coursPlan du cours

I.I. ModélisationModélisation

A.A. ObjetsObjets

1.1. Lignes & Courbes Lignes & Courbes

2.2. SurfacesSurfaces

3.3. Objets complexes, humainsObjets complexes, humains

1.1. Modèles procédurauxModèles procéduraux

2.2. CSGCSG

3.3. SkinningSkinning

4.4. VolumesVolumes

189

SkinningSkinning

Et pour les humains ?Et pour les humains ?

–– Représentation à base de squelette articuléReprésentation à base de squelette articulé

Michel RogerMichel Roger

http://mr2k.3dvf.net/http://mr2k.3dvf.net/

190

SkinningSkinning

A partir du squelette :A partir du squelette :

191

SkinningSkinning

Un objet autour de chaque «Un objet autour de chaque « osos » :» :

© 1998, Darwin 3D

TrouTrou

192

SkinningSkinning

Joindre les objets :Joindre les objets :

ÉtirementÉtirement

© 1998, Darwin 3D193

SkinningSkinning

Sommets intermédiairesSommets intermédiaires

© 1998, Darwin 3D

•• 50/50 pour chaque os50/50 pour chaque os

•• Pincement visiblePincement visible

23

194

SkinningSkinning

Sommets intermédiairesSommets intermédiaires

© 1998, Darwin 3D

Poids :Poids :

33/66, 50/50 et 33/66, 50/50 et

66/33 66/33

195

Skinning: les mathsSkinning: les maths

Modèle 3D plus squeletteModèle 3D plus squelette

Chaque sommet est attaché à un ou Chaque sommet est attaché à un ou

plusieurs osplusieurs os

–– Somme des poids = 1Somme des poids = 1

Pose «Pose « au reposau repos »»

–– Modèle non déforméModèle non déformé

Pose «Pose « animéeanimée »»

–– Position squelette donnéePosition squelette donnée

–– trouver position des sommetstrouver position des sommets

196

Comment ça marche (1)Comment ça marche (1)

Sommet v, attaché à l’os JSommet v, attaché à l’os J11. Au repos :. Au repos :

J1

J0

y

x

v

© J. Gregory, 2003 197

Comment ça marche (2)Comment ça marche (2)

Nouvelle position du squeletteNouvelle position du squelette

–– Trouver nouvelle position du sommetTrouver nouvelle position du sommet

y

x

v'

v

© J. Gregory, 2003

198

Comment ça marche (3)Comment ça marche (3)

On a v en coordonnées «On a v en coordonnées « absolueabsolue »»

–– Espace du modèleEspace du modèle

On transforme le sommet On transforme le sommet vv ::

–– De l’espace du modèle (espace global)De l’espace du modèle (espace global)

–– Dans l’espace lié à l’osDans l’espace lié à l’os

Le sommet est Le sommet est fixefixe par rapport à l’ospar rapport à l’os

–– Donc on peut bouger le squeletteDonc on peut bouger le squelette

ReRe--transformation dans l’espace du modèletransformation dans l’espace du modèle

–– Donne nouvelles coordonnées du sommet : Donne nouvelles coordonnées du sommet : v’v’

199

Comment ça marche (4)Comment ça marche (4)

Sommet, dans l’espace lié à l’os :Sommet, dans l’espace lié à l’os :

© J. Gregory, 2003

J1

J0

y

x

v

24

200

Comment ça marche (5)Comment ça marche (5)

Sommet toujours dans la même position, Sommet toujours dans la même position,

quelle que soit la position du squelettequelle que soit la position du squelette

© J. Gregory, 2003

y

x

v'

v

201

Comment ça marche (6)Comment ça marche (6)

Retour à l’espace du modèle, position du Retour à l’espace du modèle, position du

sommetsommet

y

x

v'

v

© J. Gregory, 2003

202

Avec des mathsAvec des maths

XXii position de la base de l’os position de la base de l’os ii (translation)(translation)

X0

y

x

X1

v

© J. Gregory, 2003 203

Avec des maths (2)Avec des maths (2)

QQii rotation de l’os rotation de l’os ii

Q0

y

x

Q1

v

© J. Gregory, 2003

204

Avec des maths (3)Avec des maths (3)

Position à l’équilibre de l’os JPosition à l’équilibre de l’os Ji i

–– Produit matriciel des translations et rotations Produit matriciel des translations et rotations

depuis la racine :depuis la racine :

j

i

iij

0

QXB

205

Avec des maths (4)Avec des maths (4)

On déplace le squelette (animation) :On déplace le squelette (animation) :

J1

J0

y

x

v'

© J. Gregory, 2003

25

206

Avec des maths (5)Avec des maths (5)

TTii la translation pour l’os la translation pour l’os ii, , RRii sa rotation :sa rotation :

T0

y

x

T1

R0

R1

v'

© J. Gregory, 2003 207

Avec des maths (6)Avec des maths (6)

Pose Pose actuelleactuelle décrite par matrice :décrite par matrice :

similaire à la matrice de la pose similaire à la matrice de la pose au reposau repos ::

j

i

iij

0

RTP

j

i

iij

0

QXB

208

Avec des maths (7)Avec des maths (7)

Multiplication de Multiplication de vv par par BBjj--11 pour se ramener pour se ramener

dans l’espace lié à l’os (au repos)dans l’espace lié à l’os (au repos)

–– Une fois pour toutesUne fois pour toutes

Puis multiplication du résultat par Puis multiplication du résultat par PPjj pour pour se ramener dans l’espace du modèle, dans se ramener dans l’espace du modèle, dans

la pose actuellela pose actuelle

209

Avec des maths (8)Avec des maths (8)

Ce qui nous donne :Ce qui nous donne :

vBBPPv

vBPv

vBPv

1

0

1

110

1

1

ij

jj

210

Avec des maths (9)Avec des maths (9)

Calculs effectués pour chaque sommet du Calculs effectués pour chaque sommet du

modèlemodèle

–– Tracé des sommets obtenusTracé des sommets obtenus

Interpolation des positions pour les Interpolation des positions pour les sommets qui dépendent de plusieurs ossommets qui dépendent de plusieurs os

–– Chaque sommet partagé par plusieurs os Chaque sommet partagé par plusieurs os

possède un poids pour chaque ospossède un poids pour chaque os

211

Avec des maths (10)Avec des maths (10)

Interpolation pour les sommets qui Interpolation pour les sommets qui

dépendent de plusieurs os :dépendent de plusieurs os :

kkjj

jii

j

iik

j

ii

j

iij

ww '''

'

'

01

0

0

1

0

vvv

vBPv

vBPv

26

212

Plan du coursPlan du cours

I.I. IntroductionIntroduction

II.II. Les mathématiques de l'imageLes mathématiques de l'image

III.III. ModélisationModélisation

A.A. ObjetsObjets

1.1. Lignes & Courbes Lignes & Courbes

2.2. SurfacesSurfaces

3.3. Objets complexes, humainsObjets complexes, humains

4.4. VolumesVolumes

B.B. ScènesScènes

C.C. Lumière et matièreLumière et matière

IV.IV. Rendu & affichageRendu & affichage

213

Modélisation des volumesModélisation des volumes

Problème difficileProblème difficile

–– Passer de la 2D à la 3D demande :Passer de la 2D à la 3D demande :

•• Plus de mémoire :Plus de mémoire :

Exemple : un plan discrétisé en 10*10 fait 200 triangles, Exemple : un plan discrétisé en 10*10 fait 200 triangles,

un espace discrétiser en 10*10*10 fait 1000 cubes soit un espace discrétiser en 10*10*10 fait 1000 cubes soit

12 000 triangles12 000 triangles

•• Plus de temps de calculPlus de temps de calcul

Origine :Origine :

–– Calcul scientifiqueCalcul scientifique

–– Gaz et fluides Gaz et fluides

214

Modélisation des volumesModélisation des volumes

Trois schémas de modélisation :Trois schémas de modélisation :

–– Par système de particulesPar système de particules

•• Adapté pour le feu, la fumée, la pluie, la neige ...Adapté pour le feu, la fumée, la pluie, la neige ...

–– Par fonction implicitePar fonction implicite

•• Pour modéliser des zones homogènes Pour modéliser des zones homogènes

•• Couche de brume ...Couche de brume ...

–– Par projection dans une base de fonctionPar projection dans une base de fonction

•• Adapté pour des milieux recouvrant l’ensemble de la Adapté pour des milieux recouvrant l’ensemble de la

scènescène

215

Modélisation des volumesModélisation des volumes

Modélisation par nature d’élémentModélisation par nature d’élément

–– Brouillard :Brouillard :

•• Homogène ou hétérogèneHomogène ou hétérogène

Calcul direct par la carte graphiqueCalcul direct par la carte graphique

Calcul indirect par la carte graphiqueCalcul indirect par la carte graphique

216

Modélisation des volumesModélisation des volumes

Feux et fuméesFeux et fumées

–– A coder : densité du milieu dans l’airA coder : densité du milieu dans l’air

–– Très souvent modélisé par des systèmes de Très souvent modélisé par des systèmes de

particulesparticules

•• Bon rendu et avantage de la rapiditéBon rendu et avantage de la rapidité

•• On peut faire un équivalent de fonctions implicites (3D)On peut faire un équivalent de fonctions implicites (3D)

Venceslas BIRIVenceslas BIRIIGMIGMUniversité de Marne La ValléeUniversité de Marne La Vallée

Synthèse d'images ISynthèse d'images I

III. ModélisationIII. Modélisation

B. ScènesB. Scènes

27

218

Plan du coursPlan du cours

I.I. IntroductionIntroduction

II.II. Les mathématiques de l'imageLes mathématiques de l'image

III.III. ModélisationModélisation

A.A. ObjetsObjets

B.B. ScènesScènes

C.C. Lumière et matièreLumière et matière

IV.IV. Rendu & affichageRendu & affichage

219

Plan du coursPlan du cours

I.I. IntroductionIntroduction

II.II. Les mathématiques de l'imageLes mathématiques de l'image

III.III. ModélisationModélisation

A.A. ObjetsObjets

B.B. ScènesScènes

1.1. Les Les objets et leur positionnementobjets et leur positionnement

2.2. Graphes de scènesGraphes de scènes

C.C. Lumière et matièreLumière et matière

IV.IV. Rendu & affichageRendu & affichage

220

Objets canoniquesObjets canoniques

Construction d’une scène complexe :Construction d’une scène complexe :

–– Tout est lié à un référentiel uniqueTout est lié à un référentiel unique

•• Pour conserver les positions relatives des éléments Pour conserver les positions relatives des éléments entre euxentre eux

•• Pour conserver les tailles des éléments entre euxPour conserver les tailles des éléments entre eux

–– Mais tout construire depuis ce référentiel unique Mais tout construire depuis ce référentiel unique

est pénibleest pénible

•• Stratégie : Stratégie :

construire un objet dans un repère local propre à lui construire un objet dans un repère local propre à lui

le déplacer et l’orienter dans le référentiel généralle déplacer et l’orienter dans le référentiel général

221

Objets canoniquesObjets canoniques

Construction d’un objetConstruction d’un objet–– Constitué d’objets canoniquesConstitué d’objets canoniques

•• Brique de base. Pas forcément des primitives Brique de base. Pas forcément des primitives géométrique type cube, sphère. Peut être plus géométrique type cube, sphère. Peut être plus complexecomplexe

•• Ne doivent pas être constitués d’éléments en Ne doivent pas être constitués d’éléments en déplacement les uns par rapport aux autresdéplacement les uns par rapport aux autres

•• Muni de repères propresMuni de repères propres

PositionnementPositionnement–– Déplacer et orienter les repères propres par Déplacer et orienter les repères propres par

rapport :rapport :

•• A d’autres repères propresA d’autres repères propres

•• Au référentiel globalAu référentiel global

222

Objets canoniquesObjets canoniques

Exemple de construction : le bras articuléExemple de construction : le bras articulé

223

PositionnementPositionnement

Positionner les repères propres :Positionner les repères propres :

: rotation du bras par rapport à la tige: rotation du bras par rapport à la tige

: rotation de l’arbre par rapport au bras: rotation de l’arbre par rapport au bras

28

224

Pour bien comprendrePour bien comprendre

X0

y

x

X1

v

y

x

Q1

v

XX00 : translation = Matrice de : translation = Matrice de

passage du repère Rpassage du repère R00 au repère Rau repère R11

R0

R1

R1

R3

R2 R3

R4

R2

Q0

XX11 : translation = Matrice de : translation = Matrice de

passage du repère Rpassage du repère R22 au repère Rau repère R33

QQ00 : rotation = Matrice de passage : rotation = Matrice de passage

du repère Rdu repère R11 au repère Rau repère R22

QQ11 : rotation = Matrice de passage : rotation = Matrice de passage

du repère Rdu repère R33 au repère Rau repère R44

j

i

iij

0

QXB

11001QXQXB

40433221101 RRRRRRRRRR MMMMMB

225

Pour bien comprendrePour bien comprendre

v a 2 «v a 2 « ensemblesensembles » de coordonnées :» de coordonnées :

•• celles du repère propres liées à Jcelles du repère propres liées à J11

•• celles du référentiel initialcelles du référentiel initial

y

x

v

J1J

0

4Rproprevv

0Rrefvv

4400 RRRRvMv

40 1100 RRvQXQXv

Q1

Q0

X1

X0

226

Plan du coursPlan du cours

I.I. IntroductionIntroduction

II.II. Les mathématiques de l'imageLes mathématiques de l'image

III.III. ModélisationModélisation

A.A. ObjetsObjets

B.B. ScènesScènes

1.1. L’espace homogèneL’espace homogène

2.2. Les Les objets et leur positionnementobjets et leur positionnement

3.3. Graphes de scènesGraphes de scènes

C.C. Lumière et matièreLumière et matière

IV.IV. Rendu & affichageRendu & affichage

227

Graphes de scènesGraphes de scènes

Idée : organiser les objets en hiérarchieIdée : organiser les objets en hiérarchie

–– Qui est «Qui est « contenucontenu » dans quoi ?» dans quoi ?

–– A quel repère un objet estA quel repère un objet est--il lié?il lié?

–– Arborescence ... grapheArborescence ... graphe

228

Modèle hiérarchiqueModèle hiérarchique

Modèle divisé en morceauxModèle divisé en morceaux

Relations entre les morceauxRelations entre les morceaux

Paramètres pour :Paramètres pour :–– Forme des morceaux (écrasement)Forme des morceaux (écrasement)

–– Position des morceaux (inclinaison)Position des morceaux (inclinaison)

Hiérarchie du modèle : exempleHiérarchie du modèle : exemple–– Base se déplace : tout suitBase se déplace : tout suit

–– Torse se déplace : Torse se déplace : boutons et tête suiventboutons et tête suivent

–– Tête se déplace : Tête se déplace : yeux et nez suiventyeux et nez suivent

229

Hiérarchie de nœudsHiérarchie de nœuds

Chaque nœud :Chaque nœud :

–– Transformation en coordonnées localesTransformation en coordonnées locales

–– Modèle simple en coordonnées localesModèle simple en coordonnées locales

–– Dessin des enfants (qui héritent des Dessin des enfants (qui héritent des

coordonnées locales)coordonnées locales)

Après le nœud :Après le nœud :

–– Retour aux coordonnées locales précédentesRetour aux coordonnées locales précédentes

–– Couleur, matériau, style, etc. ?Couleur, matériau, style, etc. ?

•• Pas fixéPas fixé

29

230

Bonhomme de neigeBonhomme de neige

Base

Torse

Bouton3Bouton1 Bouton2 Tête

Œil2Œil1Nez

231

PersonnagePersonnage

© 1998, Darwin 3D

232

Graphes de scènesGraphes de scènes

Différents types de noeuds :Différents types de noeuds :

–– Maillages, objets ...Maillages, objets ...

–– Matériaux, ApparencesMatériaux, Apparences

–– Nœuds de transformationNœuds de transformation

–– Noeuds camérasNoeuds caméras

–– Nœuds de groupesNœuds de groupes

•• Notamment des nœuds switch permettant de choisir un objet Notamment des nœuds switch permettant de choisir un objet

ou un autre par rapport à une variableou un autre par rapport à une variable

–– Nœuds LODNœuds LOD

•• Géométrie choisie par rapport à la distance à l’observateurGéométrie choisie par rapport à la distance à l’observateur

–– Nœuds action, événementNœuds action, événement

•• Déclenchent des comportements, font l’animation...Déclenchent des comportements, font l’animation...

233

Graphes de scènesGraphes de scènes

Intérêts :Intérêts :–– Culling (automatique)Culling (automatique)

–– HiérarchieHiérarchie

•• Imposé par le cullingImposé par le culling

•• Pour la dynamique des Pour la dynamique des objetsobjets

–– CollisionCollision•• Bounding box sur Bounding box sur

chaque nœudchaque nœud

–– Optimisation de renduOptimisation de rendu

•• En fixant des états En fixant des états (matériaux, texture) sur (matériaux, texture) sur chaque nœudchaque nœud

–– FactorisationFactorisation

Des nœuds «Des nœuds « maillagemaillage » » peuvent être communspeuvent être communs

234

Graphes de scènesGraphes de scènes

Existe (notamment) Existe (notamment)

–– OpenSGOpenSG

–– OpenSceneGraphOpenSceneGraph

•• Le plus complet ... très bon rapport qualité/prix !Le plus complet ... très bon rapport qualité/prix !

–– X3DX3D

•• Commercial. Tentative de standardisation Commercial. Tentative de standardisation

industrielleindustrielle

–– Java 3DJava 3D

–– Gizmo3DGizmo3D

–– Open(gl)PerformerOpen(gl)Performer

–– VirtoolsVirtools

235

Graphe de scène OpenInventorGraphe de scène OpenInventor

30

236

Graphe de scène Java3DGraphe de scène Java3D

237

Alias|Wavefront «Alias|Wavefront « SBDSBD »»

238

OpenSceneGraphOpenSceneGraph

Une API C++ fondée sur OpenGL pourUne API C++ fondée sur OpenGL pour

–– Le management de scènesLe management de scènes

–– L’optimisation du rendu de scènesL’optimisation du rendu de scènes

CrossCross--platformplatform

Windowing system agnostiqueWindowing system agnostique

Open SourceOpen Source

239

OpenSceneGraphOpenSceneGraph

ComposantsComposants

OSG

Scene Graph

Rendering Elements

OSGDB

Data Base Loading

Plug-in Management

OSGUtil

Traversers

Enhancements

OSGText OSGSim Node Kits…

Plug-Ins

240

OpenSceneGraphOpenSceneGraph

Formats de fichier supportésFormats de fichier supportés

–– Formats de fichier 3D Formats de fichier 3D

•• 3dc, 3ds, ac3, dw, flt, freetype3dc, 3ds, ac3, dw, flt, freetype

•• Iv, ive, logo, lwo, md2, objIv, ive, logo, lwo, md2, obj

•• osg, osgtgz, tgz, txp, directX, ziposg, osgtgz, tgz, txp, directX, zip

–– Formats de fichier imageFormats de fichier image

•• bmp, dds, pic, pngbmp, dds, pic, png

•• pnm, qt, rgb, tgapnm, qt, rgb, tga

241

Autres représentations de scèneAutres représentations de scène

Quadtree / OctreeQuadtree / Octree

–– + souvent quadtree (plus léger)+ souvent quadtree (plus léger)

–– Partition de l'espace en quatre / huit suivantPartition de l'espace en quatre / huit suivant

•• Quadtree : les coordonnées x,y relative au solQuadtree : les coordonnées x,y relative au sol

•• Octree : les coordonnées x,y,z dans l'espaceOctree : les coordonnées x,y,z dans l'espace

–– Permet de séparer les données en zonesPermet de séparer les données en zones

•• Plus il y a de données dans un endroit, plus la Plus il y a de données dans un endroit, plus la décomposition est fortedécomposition est forte

31

242

Autres représentations de scèneAutres représentations de scène

Les portesLes portes

–– Les scènes complexes sont organisées en Les scènes complexes sont organisées en

différentes sectionsdifférentes sections

–– Chaque section est séparée de la suivante par Chaque section est séparée de la suivante par

une zone de transfertune zone de transfert

–– D'une section, on ne voit pas l'autre sectionD'une section, on ne voit pas l'autre section

•• Par un jeu de visibilitéPar un jeu de visibilité

Autre section trop loinAutre section trop loin

Autre section cachée par des éléments de décorsAutre section cachée par des éléments de décors

–– Permet le chargement de quelques sectionsPermet le chargement de quelques sections

•• Chacune peut avoir une représentation de scène à Chacune peut avoir une représentation de scène à

l'aide des structures vues précédemmentl'aide des structures vues précédemment Venceslas BIRIVenceslas BIRIIGMIGMUniversité de Marne La ValléeUniversité de Marne La Vallée

Synthèse d'images ISynthèse d'images I

III. ModélisationIII. Modélisation

C. Lumière et matièreC. Lumière et matière

244

Plan du coursPlan du cours

I.I. IntroductionIntroduction

II.II. Les mathématiques de l'imageLes mathématiques de l'image

III.III. ModélisationModélisation

A.A. ObjetsObjets

B.B. ScènesScènes

C.C. Lumière et matièreLumière et matière

IV.IV. Rendu & affichageRendu & affichage

245

Plan du coursPlan du cours

I.I. IntroductionIntroduction

II.II. Les mathématiques de l'imageLes mathématiques de l'image

III.III. ModélisationModélisation

A.A. ObjetsObjets

B.B. ScènesScènes

C.C. Lumière et matièreLumière et matière

1.1. Les énergies de la lumièreLes énergies de la lumière

2.2. Les yeux : la photométrieLes yeux : la photométrie

3.3. Les matériauxLes matériaux

IV.IV. Rendu & affichageRendu & affichage

246

La lumièreLa lumière

Lumière :Lumière :–– Une onde électromagnétiqueUne onde électromagnétique

•• Phénomène ondulatoire, diffractionPhénomène ondulatoire, diffraction

–– Porté par des photonsPorté par des photons•• Phénomène particulairePhénomène particulaire

–– A une longueur d’ondeA une longueur d’onde

En synthèse d’imagesEn synthèse d’images–– Peu de travail sur l’aspect Peu de travail sur l’aspect

ondulatoireondulatoire

–– On s’intéresse au comportement On s’intéresse au comportement du photondu photon

•• Les photons ont une longueur d’ondeLes photons ont une longueur d’onde

247

La lumièreLa lumière

Grandeurs physiquesGrandeurs physiques

–– Flux énergétique Flux énergétique ee

•• Valeur instantanée d’un débit de rayonnementValeur instantanée d’un débit de rayonnement

•• Puissance (en Watt)Puissance (en Watt)

–– Intensité énergétique Intensité énergétique IIee•• Puissance émise par unité d’angle solide (W/sr)Puissance émise par unité d’angle solide (W/sr)

–– Angle solide ?Angle solide ?

d

dI ee

rS

unité : stéradian (sr)unité : stéradian (sr)

32

248

La lumièreLa lumière

–– Éclairement énergétique Éclairement énergétique EEee

•• Quantité de flux reçu par unité de surface (W/m²)Quantité de flux reçu par unité de surface (W/m²)

•• Une valeur analogue, appelé radiosité ou exitance, Une valeur analogue, appelé radiosité ou exitance, indique la quantité de flux émis par unité de surfaceindique la quantité de flux émis par unité de surface

–– Luminance LLuminance Lee

•• flux d’énergie quittant une surface dans une direction flux d’énergie quittant une surface dans une direction donnéedonnée

dS

dE ee

)cos(

2

dSd

dL ee

angle solide angle solide

projetéprojeté

249

Plan du coursPlan du cours

I.I. IntroductionIntroduction

II.II. Les mathématiques de l'imageLes mathématiques de l'image

III.III. ModélisationModélisation

A.A. ObjetsObjets

B.B. ScènesScènes

C.C. Lumière et matièreLumière et matière

1.1. Les énergies de la lumièreLes énergies de la lumière

2.2. Les yeux : la photométrieLes yeux : la photométrie

3.3. Les matériauxLes matériaux

IV.IV. Rendu & affichageRendu & affichage

250

Le système visuel humainLe système visuel humain

Iris + corné + cristallinIris + corné + cristallin

–– Appareil optiqueAppareil optique

Rétine :Rétine :

–– C'est la pellicule !C'est la pellicule !

–– Cônes Cônes

•• Sensibilité différente suivant les Sensibilité différente suivant les

longueur d’onde : pour les couleurslongueur d’onde : pour les couleurs

•• Peu sensible à l’intensité lumineusePeu sensible à l’intensité lumineuse

–– Bâtonnets : Bâtonnets :

•• Sensible à l'intensité lumineuseSensible à l'intensité lumineuse

Étude de la sensibilité de l’œil :Étude de la sensibilité de l’œil :

Domaine de la Domaine de la photométriephotométrie !!

251

PhotométriePhotométrie

Vision de nuit : domaine Vision de nuit : domaine

scotopiquescotopique

–– Bâtonnets principalement Bâtonnets principalement sollicitéssollicités

Vision de jour : domaine Vision de jour : domaine

photopiquephotopique

–– Cônes principalement Cônes principalement sollicitéssollicités

Étude de la réponse de Étude de la réponse de

l’œill’œil

–– Fonction d’efficacité Fonction d’efficacité

spectralespectrale

252

Grandeurs photométriquesGrandeurs photométriques

RadiométrieRadiométrie PhotométriePhotométrie

FluxFlux ee Watt(W)Watt(W) vv Lumen (lm)Lumen (lm)

IntensitéIntensité IIee W/srW/sr IIvvCandela Candela

(cd = lm/sr)(cd = lm/sr)

ÉclairementÉclairement EEee W/m²W/m² EEvvLux Lux

(lx = lm/m²)(lx = lm/m²)

LuminanceLuminance LLee W/m² srW/m² sr LLvv cd/m²cd/m²

Conversion :Conversion :

vD,ev

dVXKX

domaine de sensibilité de l'oeildomaine de sensibilité de l'oeilconstante = 683 lm/Wconstante = 683 lm/W

grandeur radiométrique spectralegrandeur radiométrique spectrale

253

ColorimétrieColorimétrie

Espace des couleurs CIE XYZEspace des couleurs CIE XYZ

–– Les couleurs peuvent être reproduites par Les couleurs peuvent être reproduites par

combinaison linéaire de 3 couleurs combinaison linéaire de 3 couleurs

monochromatiquesmonochromatiques

•• Ce sont les couleurs primairesCe sont les couleurs primaires

–– Décomposition de toute couleur C(Décomposition de toute couleur C( ))

dzCZ

dyCY

dxCX

)(

)(

)(

33

254

ColorimétrieColorimétrie

Espace LxyEspace Lxy

–– Dissocier la teinte de la luminosité :Dissocier la teinte de la luminosité :

–– D'autres espacesD'autres espaces

•• LuvLuv

•• LabLab

ZYXYy

ZYXXx

YL

255

ColorimétrieColorimétrie

Espace dépendant du matérielEspace dépendant du matériel

–– Passage des couleurs RGB à XYZ par une Passage des couleurs RGB à XYZ par une

matricematrice

•• Matrice donnée par le fabriquantMatrice donnée par le fabriquant

–– Autre jeux de couleurAutre jeux de couleur

•• CMYKCMYK

256

Plan du coursPlan du cours

I.I. IntroductionIntroduction

II.II. Les mathématiques de l'imageLes mathématiques de l'image

III.III. ModélisationModélisation

A.A. ObjetsObjets

B.B. ScènesScènes

C.C. Lumière et matièreLumière et matière

1.1. Les énergies de la lumièreLes énergies de la lumière

2.2. Les yeux : la photométrieLes yeux : la photométrie

3.3. Les matériauxLes matériaux

IV.IV. Rendu & affichageRendu & affichage

257

MatériauxMatériaux

3 comportements des matériaux3 comportements des matériaux

–– AbsorptionAbsorption

•• Très peu utilisée en synthèse d’imagesTrès peu utilisée en synthèse d’images

–– ÉmissionÉmission

•• Peu de dépendance à la températurePeu de dépendance à la température

–– RéflexionRéflexion

•• Capacité de la matière de réfléchir, d’une direction Capacité de la matière de réfléchir, d’une direction donnée vers une autre direction donnée, une partie de donnée vers une autre direction donnée, une partie de

la lumière reçuela lumière reçue

),,( uTa

),,( uT

''cos)',,(

),,()',,,(

dudSL

udSLuudS

e

ebd

258

MatériauxMatériaux

La réflexion LambertienneLa réflexion Lambertienne

–– La réflexion ne dépend pas de l’angle La réflexion ne dépend pas de l’angle

d’incidence, ni de l’angle de réflexiond’incidence, ni de l’angle de réflexion

–– Matériaux isotropeMatériaux isotrope

–– Réflexion Lambertienne ou réflexion diffuseRéflexion Lambertienne ou réflexion diffuse

),()',,,( dSuudSdbd

259

MatériauxMatériaux

Réflexion spéculaire pureRéflexion spéculaire pure

–– Propre aux surfaces très réfléchissantesPropre aux surfaces très réfléchissantes

–– Induit une réflexion de lumière symétrique par Induit une réflexion de lumière symétrique par

rapport à la normale de la surfacerapport à la normale de la surface

–– Seule une proportion est réfléchie indiquée par Seule une proportion est réfléchie indiquée par

le coefficient de réflexion spéculaire le coefficient de réflexion spéculaire

NNII RR Calculez R !Calculez R !

),( dSs

34

260

Matériaux : FDRBMatériaux : FDRB

FDRB (BRDF) :FDRB (BRDF) :

–– Fonction de répartition spatiale de l’énergie Fonction de répartition spatiale de l’énergie

reçue en fonction de son angle d’incidencereçue en fonction de son angle d’incidence

–– Indique une proportion (entre 0 et 1)Indique une proportion (entre 0 et 1)

•• Obéi aux lois de réciprocité d’HelmholtzObéi aux lois de réciprocité d’Helmholtz

•• L’intégrale doit être égale à 1L’intégrale doit être égale à 1-- absorptionabsorption

)',,,( uudSbd

position invariantposition invariant )',,( uubd

261

Matériaux : FDTBMatériaux : FDTB

FDTB (BTDF) :FDTB (BTDF) :

–– Même chose mais pour la transmissionMême chose mais pour la transmission

–– C’est l’hémisphère «C’est l’hémisphère « soussous » la surface concerné» la surface concerné

•• A l’opposé de la normaleA l’opposé de la normale

–– Transmission pure :Transmission pure :

•• Obéi aux lois de DescartesObéi aux lois de Descartes

)sin()sin( 2211 nn

262

Matériaux : texturesMatériaux : textures

Certains détails complexes à représenter Certains détails complexes à représenter

géométriquement et radiométriquementgéométriquement et radiométriquement

–– FissuresFissures

–– SalissureSalissure

–– Détails de revêtementDétails de revêtement

Utilisation d’une image «Utilisation d’une image « plaquéeplaquée » sur la » sur la

surfacesurface

–– Représente la couleurReprésente la couleur

–– Peut représenter aussi des déformations Peut représenter aussi des déformations

géométriquesgéométriques

263

Matériaux : texturesMatériaux : textures

PrincipePrincipe

–– Chaque sommet est associé à une position dans Chaque sommet est associé à une position dans

l’imagel’image

•• Ce sont les coordonnées de texture (2D)Ce sont les coordonnées de texture (2D)

–– La partie de l’image correspondant aux La partie de l’image correspondant aux

sommets est appliquée sur la surfacesommets est appliquée sur la surface

264

Matériaux : texturesMatériaux : textures

Application des texturesApplication des textures

–– Peuvent se combiner avec la couleur déterminée Peuvent se combiner avec la couleur déterminée

par l’éclairementpar l’éclairement

–– Peuvent se combiner entre ellesPeuvent se combiner entre elles

La plupart du temps : réutilisation ...La plupart du temps : réutilisation ...

QuakeQuake

Id SoftwareId Software 265

Matériaux : texturesMatériaux : textures

Autres types de texture :Autres types de texture :

–– Bump mappingBump mapping : rajouter de la granularité: rajouter de la granularité

•• Réalisé avec une textureRéalisé avec une texture

•• On souhaite conserver une surface simpleOn souhaite conserver une surface simple

++ =>=>

35

266

Matériaux : texturesMatériaux : textures

Bump MappingBump Mapping : algorithme initial: algorithme initial

–– A l'aide de la carte de A l'aide de la carte de bumpbump

•• En chaque point, perturber la normale suivant la En chaque point, perturber la normale suivant la "hauteur" du point et de ses voisins sur la carte de "hauteur" du point et de ses voisins sur la carte de

bumpbump

–– Équation de perturbation de la normale :Équation de perturbation de la normale :

–– Avant : Fonctionnalité dépendante de la carteAvant : Fonctionnalité dépendante de la carte

–– Maintenant : Utilisable directement via un "pixel Maintenant : Utilisable directement via un "pixel

shader"shader"

FF : bump map: bump map

PP : surface: surface

N : normaleN : normale

267

Documentation technique MatroxDocumentation technique Matrox

http://www.matrox.com/mga/francais/products/te ch_info/http://www.matrox.com/mga/francais/products/te ch_info/

Matériaux : texturesMatériaux : textures

Exemple de Exemple de bump mappingbump mapping

MarekMarek MizaninMizanin :: httphttp:://www//www..zanirzanir..szmszm..sksk

268

Matériaux : texturesMatériaux : textures

Cartes de normales (Cartes de normales (normal mapsnormal maps))

–– Similaire au Similaire au bump mappingbump mapping ... en plus simple... en plus simple

–– La texture code directement la variation de la La texture code directement la variation de la

normale en chaque point : normale en chaque point : offset vectoroffset vector DD

DNN '

Autre stratégie : Autre stratégie : rotation vectorrotation vector

269

Matériaux : texturesMatériaux : textures

Cartes de déplacement (Cartes de déplacement (displacement displacement

mappingmapping))

–– A priori peu utilisées encoreA priori peu utilisées encore

–– Permet de «Permet de « décalerdécaler » la géométrie suivant une » la géométrie suivant une

texturetexture

•• Création de nouveaux pointsCréation de nouveaux points

•• Devient envisageable grâce aux Devient envisageable grâce aux geometry shadergeometry shader