Algorithmique et programmation

publicité
Synthèse d'images I
Plan du cours
Fabriquer une image de synthèse :
I.
Introduction
II.
Modélisation
III.
Rendu & affichage
Venceslas BIRI
IGM
Université de Marne La Vallée
Synthèse d'images I
II. Modélisation
63
Plan du cours
I.
II.
Introduction
Modélisation
A.
L’espace 3D
B.
Les objets
C.
La scène
D.
La lumière et la matière
III. Rendu & affichage
Venceslas BIRI
IGM
Université de Marne La Vallée
Synthèse d'images I
II. Modélisation
B. Objets
65
Plan du cours
I.
II.
Introduction
Modélisation
A.
B.
Venceslas BIRI
IGM
Université de Marne La Vallée
L’espace 3D
Les objets
1.
Lignes & Courbes
2.
Surfaces
3.
4.
Objets complexes, humains
Volumes
C.
La scène
D.
La lumière et la matière
III. Rendu & affichage
67
1
Plan du cours
II.
Droites en 2D
Modélisation
A.

Droites affines 2D
– Équation axbyc  0
Objets
1.
Lignes et courbes
1.
2.

Modèles mathématiques
ou
y a x b
Coordonnées polaires d’une droite
– En polaire 2 paramètres suffisent également
a.
Droites
b.
Courbes paramétriques
c.
Splines
• Mais équation plus générale, représente toutes les
droites
Modèles informatique
a.
Modélisation par segment
b.
Bressenham
c.
Antialiasing
axbyc  0
cos( ) x  sin( ) y    0
ρ
2.
Surfaces
3.
Objets complexes, humains
4.
Volumes
θ
68
Droites en 2D

69
Droites en 2D
Transformée de Hough

Transformée de Hough
– But : à partir d’un ensemble de pixels d’une
image, retrouver la droite qui les relie
– En chaque point (x,y) passent une infinité de
droite.
– Méthode :
• Chaque pixel (x,y) créé une courbe dans l’espace de
Hough.   x cos( )  y sin( )
• Chaque case de la matrice représentant l’espace de
Hough s’incrémente de 1
• La case ayant la plus grande valeur représente la
droite qui représente le mieux les pixels
• Mais elles vérifient toute l’équation :
  x cos( )  y sin( )
– Espace de Hough :
• Matrice NxN de valeurs des paramètres ρ et θ
• Discrétisation de l’espace de Hough
70
Droites

71
Droites
Droites 3D

Distance d d’un point à une droite D ?
P’
– Représentation cartésienne :
• Une ligne en dimension est l’intersection de 2 plans
 a1 xb1 yc1 z  d1  0
a xb yc z  d  0
2
2
2
 2
P
avec
u
 x
P  y
z
 
O
D
– Représentation paramétrique :
P
O
u
avec
Ox 
O Oy 
O 
 z
et
u
  x
u uy 
u 
 z
ou
P
On cherche la longueur bleue :
1. Calculer la projection de P sur D
2. Calculer PP’
3. Prendre sa norme
 x  Ox  t ux

 y  Oy  t uy

 z  Oz  t uz
Calcul de P’ :
P'  O  (OP. u) u
Calcul de PP’ :
PP'  P'  P  O  (OP. u) u  P  PO  (OP. u) u
Calcul de d :
d  PP'
Attention : il est souvent intéressant de choisir u unitaire
72
73
2
Droites

Courbes
Autres problèmes :

– Distance entre deux droites D1 et D2 :
P1
u1
O1
– A l’aide de fonction pour les trois coordonnées
– Représentation paramétrique :
Résolution du système linéaire :
D2
P2
u2
O
2
D1
 P1P2.u1  0



P1P2.u2  0
Comment représenter les courbes ?
x  fx(t)

P(x, y,z)   y  f y(t)

z  fz (t)
P1  O1  t1 u1
avec
P2  O2  t2 u2
x = r cos(θ)
cos(θ)
y = y0 + r sin(θ)
z = r cos(θ/16)
cos(θ/16)
y = sin(x)
– Intersection droite et plan
– Point moyen de 2 droites, de 3 droites...
74
Courbes

75
Courbes paramétriques
Comment représenter les courbes ?

– A l’aide de conditions
conditions (3d) sur les coordonnées
– Représentation cartésienne :
 f ( x, y, z )  0
P( x, y, z )   1
 f 2 ( x, y, z )  0
y - sin(x) = 0
z=0
V0
???
Exemple : trajectoire
– Particule soumise à accélération a, munie d’une
vitesse initiale V0 et situé à l’origine.

 dv
accélération de la particule : a   g z 
dt

  dP
vitesse de la particule : v   g t z  v0 
dt
2 

position de la particule : OP   g t z  t v0
2
x t v0x
y t v0y
z  g
76
Courbes paramétriques


Repère de Fresnet :
Rayon de courbure :
– courbure algébrique  :
– Définie en tout point de paramètre t de la courbe
par le vecteur :

77
Courbes paramétriques
Tangente
 dfx 
 dt (t)


dM(t)  df y 
v

(t)
 dt 
dt
 dfz 
 (t)
 dt 
t2
 t v0z
2
dT   (t) N(t) car T est un vecteur unitaire
dt
– Calcul de  :
 (t)  dT (t) . N(t)
N
dt

T  v
v
avec  >0 positif
– Rayon de courbure :
 (t)  1
 (t)
– Base orthonormale
directe
78
79
3
Courbes libres
Courbes libres

Courbes définies par des points
– Approximation
• Guidée par les points
– Interpolations
• Passe par les points

Interpolation
– Linéaire, parabole,
Spline CatmullCatmull-rom…

Approximation
– Bézier, BB-spline,
β-Spline…
80
Courbes : familles
81
Courbes de Bézier

NURBS
Courbes de Bézier :
– Courbes paramétriques épousant la forme d’une
ligne brisée joignant des points prédéfinis
Kochanek–
Kochanek
–Bartels spline
uniform BB-spline
• La courbe paramétrique est définie par des polynômes
Natural cubique Spline
nonperiodic BB -spline
B-Spline

Cas particulier avec 3 points :
b
Catmul--rom Spline
Catmul
1
b01(t)  (1t)b0  t b1
b11
b2
b01
Spline
b0
Approximation
Bézier
b02
b11(t)  (1t)b1  t b2
Les points de la courbe sont alors définis par :
b02(t)  (1t)b01(t)  t b11(t)
avec
t0..1
Interpolation
82
Courbes de Bézier

83
Courbes de Bézier
Algorithme général :

• Soit m+1 points b0,b1, ... , bm et t Є [0..1]
0
i [0..m], bi (t)  bi
r[1..m], i[0..mr],
r 1
r

r 1
bi (t)  (1t)bi (t)  t bi1 (t)
b1m-1(t)
2m évaluations !
b0
0(t)
b1
0(t)
bi0(t)
bi+1
0(t)
bm - 1
0(t)
bm0(t)
Propriétés :
– Invariant par transformation affine
b0m(t) est le point de paramètre t sur la courbe de Bézier (de degré m)
b0m(t)
b0m-1(t)
Définitions :
– Point bi : point de contrôle ou de Bézier
– Polygone formé des b i : polygone de contrôle ou
de Bézier
– Algorithme de De Casteljau :
84
• On a besoin que de transformer les points de contrôle
– Invariant par transformation affine du paramètre
de parcours t
– Passe par les points b 0 et bm et courbe tangente
au polygone de contrôle en ces points
– Enveloppe convexe
On peut rajouter des poids associés à chaque point de contrôle
85
4
Courbes de Béziers

Courbes de Bézier
Forme de Bernstein

Exemple de courbe de degré 1
1
– Les polynômes de Berstein sont définis par :
 m
Bim(t)    ti(1t)mi
i
0
0
B(t)  b0(t)  (1t)b0 (t)  t b1 (t) t[0...1]
soit
B(t)  (1t)b0  t b1 t[0...1]
• Satisfont l’équation de récurrence :
m
m1
m1
Bi (t)  (1t)Bi (t)  t Bi1 (t)
– Les points de la courbe de Bézier peuvent aussi
s’écrire :
m
 m
b m (t )     t i (1  t ) mi bi
i 0  i 

Exemple de courbe de degré 2
2
2
B(t)  (1t) b0  2(1t) t b1  t b2 t[0...1]
86
Splines

Splines
Défaut des courbes de Bézier

– M points  polynômes de degré MM-1
– Si on modifie un point, toute la courbe est
modifiée
Définition :
– Soit n+1 valeurs dans [a,b] avec :
a t0  t1 ...tn1tn  b
on définit la fonction spline de degré m
par S : R  R
si : S C m-1(a,b)
• Impossible de modifier des comportements locaux
sans changer l’ensemble de la courbe

87
Idée : relier des courbes entre des groupes
de points
S[ti,ti1]Pm , i[0...n1]
– Plusieurs possibilités
Pm est l’ensemble des polynômes de degré m
• Approximation : BB-splines …
• Interpolation : CatmullCatmull-rom …
– C’est le cas général ...
Attention : spline d’ordre m = spline de degré mm-1
88
Courbes splines

89
B-Splines
Définition
Une courbe spline est définie par n+1 points de contrôle et n+1 fonctions de
pondération :
P  P0 R0 (t )    Pn Rn (t )
- Les fonctions de pondérations sont définies sur des intervalles [t
[tk , tk+1].
T=(
=(tt0, t1,..., tn+1) est appelé vecteur de points nodaux.
nodaux.
- Les fonctions de pondération sont des splines d'ordre m (des polynômes par
morceaux continus d'ordre m -1 aux noeuds)
– On a donc :
• N+1 points et N+1 nœuds
• N intervalles
• Des polynômes de degré m sur chaque intervalle
90
91
5
B-Splines

B-Splines
Cas des BB-Splines :

Équations dans le cas général
– Les ti s’appellent des nœuds
– On se donne donc
t0  t1  ...  tn m  tn m1
n
S (t )   bmi (t ) Pi
• des polynômes à définition récursive de degré m
• n+1 points de contrôles Pk
• n intervalles [t0,t1] , [t1,t2] ... [tn-1,tn] et donc n+1 nœuds
i 0
 En fait on aura besoin de n+m+1 nœuds
t  [t m ... t n 1 ]
où
b0i (t )  1 si ti  t  ti 1 & ti  ti 1
 i
b0 (t )  0 sinon
et
bki (t) 
– Polynôme : fonction de pondération
t  ti i
t  t i1
b (t)  ik 1
b (t)
tik  ti k 1
tik 1  ti1 k 1
Avec pour convention, si un des dénominateur est nul (nœud multiple)
d’annuler le facteur correspondant
92
B-Splines

93
B-Splines
Exemple des fonctions de pondération des
B-Splines

Différents types de BB-Spline
– Lorsque les ti sont uniformément répartis, alors
la BB-Spline est dite uniforme
– Dans certains cas, des ti consécutifs sont égaux
• Les points associés sont identiques également
• Appelés nœuds multiples
– B-Spline non périodique
Ordre 3
2
1
Degré 2
1
0
• Nœuds placés au début et à la fin
94
B-Splines

95
B-Splines
Équations dans le cas uniforme :

– On peut prendre :
– Degré commun à chaque courbe de Bézier
– Degré 1 : BB-Spline linéaire C0 (m = 1)
ti  i, i [0...n  m  1]
• Chaque courbe de Bézier est une droite. La courbe
B-Spline est le polygone formé des points de contrôle
• La BB-Spline est C0 partout (continue)
• Chaque début et fin de courbe de Bézier est relié à
l’autre. Points de jonction = points de contrôle
n
S (t )   bmi (t ) Pi t  [m...n  1]
i 0
où
b0i(t)  1 si i  t  i 1
 i
b0(t)  0 sinon
et
bki (t) 
Degré d’une BB-Spline :
t i i
ik 1 t i1
b (t) 
bk 1(t)
k k 1
k
P3
P1
P2
P0
96
97
6
B-Splines
B-Splines
– Degré 3 : BB-Spline cubique C2 (m = 3)
– Degré 2 : BB-Spline
quadratique C1 (m = 2)
• On se donne n+3 points de contrôle
 On a 3n+1 points de jonction
• Équivalence courbe de
Bézier / Spline
• Chaque courbe de Bézier
sera définie par :
• Chaque courbe cubique sera définie par :
 L’intervalle [ ti ; ti+1 ]
 2 points interne b 3i+1 et b3i+2
 2 points de contrôle b 3i = Pi et b3i+3 = Pi+1
 L’intervalle [ ti ; ti+1 ]
 2 points de Bézier interne
b2i et b2i+2
 1 point de contrôle
b2i+1 = Pi+1
ti2 ti
t t
b  i i1 b
ti2 ti1 3i ti2 ti1 3i3
t t
t t
b3i2  i2 i1 b3i  i1 i1 b3i3
ti2 ti1
ti2 ti1
b3i1
t t
t t
b2i  i1 i b2i1  i1 i b2i1
ti1 ti1
ti1 ti1
avec b-1 = P0 et b2n+1 = Pn+2
98
NURBS

99
Interpolation Spline
NonUniform Rational BB-Spline

S (t ) 
b
i 0
n
m
(t ) wi Pi
b
i 0
i
m
Famille des splines d’interpolation
– Cette fois on demande explicitement que la
courbe passe par les points
– On rajoute des poids aux nœuds (Rational)
n
– L’équation devient :
i
• Exemple : BB-Spline linéaire ok (ordre 2 / degré 1)
t  [t m ... t n 1 ]
– Soit n+1 nœuds ti, on a S défini par
(t ) wi
t  [t0 , t1 ]
 S 0 (t )
 S (t )
t  [t1 , t 2 ]

S (t )   1

 
S n 1 (t ) t  [t n 1 , t n ]
100
Interpolation Spline

Natural cubic spline
On veut rajouter des conditions

– Interpolation S(xi)= Pi
– Continuité, Si-1(xi) = Si(xi), i =1,...,
=1,...,n
n-1
• n-1 conditions
– Dérivable 2 fois, S'i-1(xi) = S'i(xi) & S''i-1(xi) = S''i(xi)

• 2*(n
2*(n--1) conditions

Impose, au minimum, des polynômes de
degrée 3

Total : 4n – 2 conditions
Défini par S ' ' ( x )  0
0

 S ' ' ( xn )  0
• n+1 conditions
Calcul par résolution de système linéaire
– Cubic interpolation spline
– pour 4n inconnues
– On a 2 choix
102
103
7
Spline cubique hermitienne

Catmull Rom Spline
Définition succincte :

Très utilisées en synthèse d’images
– Définie à partir de deux points p0, p1 et deux
tangentes m0 et m1
104
Catmull Rom Spline

Plan du cours
Tangente m0 et m1 choisie telle que
mk 
105
III.
Modélisation
A.
pk 1  pk 1
2
Objets
1.
Lignes et courbes
1.
– Parallèle au segment [Pk-1 Pk+1]
– Chaque tronçon dépend de 4 points

D’autres choix possibles
2.
– Différence finie
– Cardinal spline
– Kochanek
Kochanek–
–Bartels spline
• Avec 3 paramètres : tension, biais et continuité
Modèles mathématiques
a.
Droites
b.
Courbes paramétriques
c.
Splines
Modèles informatique
a.
Modélisation par segment
b.
Bressenham
c.
Antialiasing
2.
Surfaces
3.
Objets complexes, humains
4.
Volumes
106
Modélisation de courbe

107
Modélisation par segment
On travaille sur une image

– Espace discret de valeur
– Comment représenter les courbes ?
Travailler pixel / pixel : trop cher
– Discrétisation de la courbe
• Travailler avec des segments
– Segments :
• Déformations
 Un espace discret ne peut rendre compte d’un espace
continu
• Calcul de chaque pixel, pour chaque petit déplacement
de la courbe ?
108
• Facile à dessiner sur une image
• Souple, permet d’affiner uniformément, choix du
nombre de segment ...
• Exemple avec le cercle
109
8
Modélisation par segment

Bresenham
Algorithme :

fonction dessine(C
dessine( C courbe paramétrique,
réel tinit,
réel tfin,
int nb_segment);
nb_segment);
début
réel t;
réel pas = (tfin – tinit)/nb_segment;
for(t=tinit;t<tfin;t+=pas) {
segment(C(t),C(t+pas));
}
fin
Un algorithme optimisé de tracé de droite
– Créé en 1961 par Jack Bresenham
– Répond à la question :

• Algorithme rapide pour allumer les pixels d’un
segment (x1,y1) – (x2,y2)
110
Bresenham

111
Bresenham
Approche naïve :
– Algorithme approche naïve :
– Cas 0 < dy < dx
– Pour chaque colonne
fonction tracerSegment(
tracerSegment(entier
entier x1, entier y1, entier x2, entier y2)
entier x, y, dx, dy ;
réel err, decal, incr;
// Erreurs et increments
dy := y2 - y1 ;
dx := x2 - x1 ;
y := y1 ;
err := 0 ;
incr := dy / dx ;
decal := - 1.0 ;
pour x variant de x1 jusqu’à x2 par incrément de 1 faire
tracerPixel(x, y);
si (err := err + incr) ≥ 0,5 alors
y := y + 1 ;
err := err + decal ;
fin
fin
fin
• Calculer son ordonnée avec :
y y1
y2 y1
(x  x1)
x2x1
• Prendre la valeur entière la plus proche de y
– Défauts :
• Calcul de la valeur entière
• Calcul en nombres rationnels
• 1 pixel par colonne ?
112
Bresenham

113
Bresenham
• Première erreur :
Optimisation par Bresenham
– Méthode
•
•
•
•

Équation : F ( x, y)  dx y  dx y1  dy x  dy x1  0
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 allumer
De plus on a la nouvelle erreur pour la prochaine fois
F(x 1, y  0.5)   dx  dy
2
– Optimisation :
• Prendre que des valeurs entières
• Pas de problème pour les incréments
 Reste la valeur initial
 On multiplie tout par 2
Si on allume le pixel du bas
F(x2, y0.5)  F(x1)  dy
Si on allume le pixel du haut
F(x  2, y 1.5)  F(x1)  dy  dx
114
115
9
Bresenham
Bresenham
– Algorithme

fonction bresenham(
bresenham(entier
entier x1, entier y1, entier x2, entier y2)
entier x, y, dx, dy ;
entier err;
// Erreurs et increments
x = x1 ;
y = y1 ;
dy := y2 - y1 ;
dx := x2 - x1 ;
tracerPixel(x, y);
err := - dx ;
pour x variant de x1 +1 jusqu’à x2 par incrément de 1 faire
err += 2*dy;
si (err ≥ 0) alors
y := y + 1 ;
err - = 2*dx ;
fin si
tracerPixel(x, y);
fin pour
fin

Bien vu mais ...
– Tout les calculs en valeur entière
• Efficace mais maintenant tous les calculs se font en
flottants sur les cartes graphiques
 Coût de la conversion
• Problème pour gérer l’antialiasing...
116
Antialiasing

117
Antialiasing
Anti--crénelage
Anti
– Les droites discrètes sont peu esthétiques ...
118
Antialiasing

Antialiasing
Allumer les pixels
– suivant leur distance au segment à tracer
– On joue sur l’illumination

119
function drawLine(x1,y1,x2,y2) {
...
// gerer le second point
xend = round(x2)
yend = y2 + gradient * (xend - x2)
xgap = fpart(x2 + 0.5)
xpxl2 = xend // this will be used in the main loop
ypxl2 = ipart(yend)
plot(xpxl2, ypxl2, rfpart(yend) * xgap)
plot(xpxl2, ypxl2 + 1, fpart(yend) * xgap)
// main loop
for x from xpxl1 + 1 to xpxl2 - 1 do
plot(x, ipart(intery), rfpart(intery))
plot(x, ipart(intery) + 1, fpart(intery))
intery = intery + gradient
done
}
Algorithme
function drawLine(x1,y1,x2,y2) {
dx = x2 - x1; // On suppose x2 > x1
dy = y2 - y1; // On suppose y2 > y1
gradient = dy / dx;
// Gérer le premier point
xend = round(x1);
yend = y1 + gradient * (xend - x1);
xgap = (1 – partie_rationnelle(x1 + 0.5));
xpxl1 = xend; // premier point entier proche de xend
ypxl1 = partie_entiere(yend);
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
...

120

121
10
Antialiasing
Plan du cours
I.
Introduction
II.
Les mathématiques de l'image
III.
Modélisation
A.
B.
C.
IV.
Objets
1.
Lignes & Courbes
2.
Surfaces
3.
Objets complexes, humains
4.
Volumes
Scènes
Lumière et matière
Rendu & affichage
122
Plan du cours
Objets géométriques
III. Modélisation
A.
123

– Équation cartésienne :
a x b y  c z  d  0

T
• Normale du plan : n
 (a,b,c)
Objets
1.
2.
Lignes et courbes
Surfaces
1.
2.
Modèles mathématiques
a.
Objets géométrique simple
b.
Surfaces implicites
– Équations paramétriques :
• Soit O un point du plan, u et v deux vecteurs du plan
non colinéaires
Modèles informatiques
a.
Soupe de triangles
b.
Ensemble de points, surfels
c.
Marching cubes
3.
Objets complexes, humains
4.
Volumes
Plan :
 x  Ox  s ux  t vx

 y  Oy  s uy  t vy

 z  Oz  s uz  t vz
  
• Normale : n  u  v
124
Cartésien / paramétrique ?


125
Objets géométriques
Différents type de coordonnées
Deux formes distinctes

– Une représentation fondée sur une
paramètrisation des coordonnées
– Une représentation fondée sur une contrainte
liée aux coordonnées
– Deux façons de voir les courbes, les surfaces ...
126
Sphère :
– Centre C et rayon R
– Équation cartésienne :
2
2
2
2
(x  xC) (y  yC)  (z  zC)  R  0
• Normale en P : CP
– Équations
paramétriques ?
127
11
Objets géométriques

Différentes coordonnées
Cylindre :

– Axe (Oy), rayon R, hauteur h à partir de l’origine
Équation cartésienne
Coordonnées cartésiennes
– Celles que l’on vient de voir
– Utile très souvent mais ...
... pour se déplacer sur une sphère ?

x2 z2  R2  0

0  y  h
On a défini aussi 2 autres types de
coordonnées
– Coordonnées cylindriques
– Coordonnées sphériques
Équations paramétriques ?
128
Coordonnées cylindriques
M
r
z
Coordonnées sphériques
M
 x
M y
 z
P
129
coordonnées
cartésiennes
r
φ
 x
M y
 z
coordonnées
cartésiennes
P
θ
x  r cos ( )
 y  r sin ( )

zz
r
M 
 z
θ

x  r cos ( ) sin( )
 y  r sin ( ) sin( )

 z  r cos( )
r
M 

coordonnées
cylindriques
coordonnées
sphériques
130
Trigonométrie

Trigonométrie
Définition

– Étude des rapports de distances et d’angle dans
les triangles ainsi que les fonctions
trigonométriques
– Triangle rectangle en C
cos( )  b
c
a
sin( ) 
c
tan( )  a
b
131
Identités trigonométriques (cf. wikipedia)
Parité
Symétrie
Addition et soustraction
θ
Duplication
Par pythagore :
cos ( )  sin ( )  1
2
2
132
133
12
Trigonométrie : cosinus & sinus
Trigonométrie : table de valeurs
134
Trigonométrie et vecteurs

135
Objets géométriques
Formule avec les vecteurs

– Soit u et v deux vecteurs :

u
– Axe (Oy), pointe en 0, angle α
Pour le cosinus :

v
θ
Cône :
   
u . v  u v cos( )
Équation cartésienne
y2  cot2( )(x2 z2)
Pour le sinus :
  
u v  u
Équations paramétriques


v sin( ) n
x   cos( )

 y   cot( )

z   sin( )
avec n vecteur normal à u et v
Manière de calculer les fonctions trigonométriques très efficace
(si on peut éviter les racines carrées)
136
Objets géométriques

137
Surfaces implicites
Ellipsoïdes

– Sorte de triple ellipse, un axe pour chaque
direction
Définir une surface comme un potentiel
– Se munir d’une fonction de potentiel
f (x, y,z)  0
• Grand axe a, axe moyen b, petit axe c
– La surface S représente tous les points ayant un
potentiel précis :
– Équation cartésienne :
2
2
x  y  z2 1
a2 b2 c2
Siso P(x, y,z) f (x, y,z)  iso
– Équations
paramétriques :
• f peut être une fonction analytique
• Le plus souvent est défini à partir de squelette
x  a cos( ) cos( )

 y  b cos( ) sin( )

z  c sin( )
 On fixe un squelette (point, ligne ou forme)
 Le potentiel « irradie » à partir de ce squelette
138
139
13
Surfaces implicites

Surfaces implicites
Fonction de potentiel par squelette

Quelques exemples :
– Soit n formes de base
• fi est la fonction de potentiel relative à la ième forme
– La fonction de potentiel est :
n
f (x, y,z)   fi (x, y,z)
i1
– Choix des fi
140
Plan du cours
Modèles de surfaces
III. Modélisation
A.
141

–
–
–
–
–
–
Objets
1.
2.
Lignes et courbes
Surfaces
1.
2.
Modèles mathématiques
a.
Objets géométrique simple
b.
Surfaces implicites
Modèles informatiques
a.
Soupe de triangles, de polygones
b.
Ensemble de points, surfels
c.
Marching cubes
3.
Objets complexes, humains
4.
Volumes
5 grandes familles
B-Rep
Modélisation par point
Marching cubes
CSG
Modèles paramétriques
L systèmes / Fractales
Prochaine partie
142
B-Rep

143
B-Rep : Soupe de polygones
Philosophie : BB-rep

– Pour Boundary Representation
– Modélisation des objets par leur limite, leur bord
– B-rep
Objets complexe représentés par un
ensemble de polygones (triangles) reliés
– Exemple : Cube = 12 triangles
– Autres exemples :
• Géométrie + Topologie (souvent absente)

Origine :
– Logiciel de CAO / CAD
• Maillages très fournis, très complexe
 Exemple : Airbus, Voiture…
– Logiciel de création : 3DSMax, Maya …
144
145
14
B-Rep : Maillages

B-Rep : Maillages
Maillage = soupe de polygones + adjacence
– Ensemble connecté de polygone (triangles)
– Incorpore la topologie : modèle riche !
– Affichage facile en OpenGL
• Mais mauvais choix pour les surfaces courbes...
– D’autres calculs possibles
Sommet (Vertex / Vertices) : position (et autres données)
Arête (Edge) : connexion entre 2 sommets
Face (Face) : Ensemble fini et fermé d’arête (cycle)
- Triangle : Face à 3 arêtes
- Quads : Face à 4 arêtes
Polygone (Polygon) : Ensemble de faces
Surface : regroupe des faces (polygones) représentant surface
courbe
• Courbure, normales, paramétrisation
• Simplification, raffinement
– Édition difficile

Modèles disponibles ?
– Souvent entre la soupe de polygone et le
maillage
146
B-Rep : Maillages

B-Rep : Maillages
Plusieurs représentation
–
–
–
–

Note : Dans les représentations supportant des faces à nombre arbitraire
d’arêtes, faces et polygones sont identiques
147
Vertex-Vertex Meshes
VertexFace--Vertex Meshes
Face
Winged--Edge Meshes
Winged
Render Dynamic Meshes
✔ Compact
✘ Extraction
d’information
difficile
Différentes façons de définir /coder la
topologie
✘ Pas de
représentation
directe de la
surface
148
B-Rep : Maillages
149
B-Rep : Maillages
✔ Topologie explicite
✔ Sommets
et face en accès
direct
✔ Utilisation
par les pipeline
graphique
✘ Accès difficile
aux arêtes
✔ Utilisation par les
logiciels de modélisation
✔ Split et merge rapides
✘ Taille mémoire
importante
✘ Complexité à maintenir
✘ Accès difficile
aux faces
voisines
d’une face
150
151
15
B-Rep : Maillages
B-Rep : Maillages
✔ Utilisation par
pipeline
graphique
✔ Topologie
explicite
✔ Accès directs
✘ Taille mémoire
importante
✘ Complexité à
maintenir
152
Maillages

153
Algorithme de subdivision
Quelques algorithmes…
Algorithme de CatmullCatmull-clark

– Subdivision de surface :
–
–
–
–
• Créer des maillages plus lisse
• Loop, Catmull
Catmull--Clark, Modified butterfly,
Kobbelt
• Naïvement, pas de respect des arêtes vives
– Simplification de maillage
• Minimiser le nombre de triangles
• Plusieurs critères importants




Sur maillage quelconque
Produit un maillage de quadrilatère
Schéma d'approximation
Peut gérer les bords
Algorithme de Loop

–
–
–
–
Conservation de la topologie
Continuité entre maillages
Orientation budget ou erreur
Propriétés sur sommets
Sur maillage triangulaire
Schéma d'approximation
Simple d'utilisation
Gère les bords, les arêtes vives
154
Catmull--clark (78)
Catmull
155
Loop (87)
1
8
FACE
f 
1 n
 vi
n 1
3
8
3
8
ARETE
v  v  f  f2
e 1 2 1
4
1
8
n
n
n
n
v  n1  f
j
j
2
j
n
n
j
n 
156
n
n
1n
SOMMET
vi1  n2 vi  12
n
n
n
n
n
n
2

1 
 2   
40   3  2 cos
 
64 
 n   

157
16
Loop: Gestion des bords

Algorithme de simplification
Masque spécifique

Algorithme statique (précalculs)
– Décimation de sommet : decimation
• Conserve topologie et propriété de sommet
• Long
– Regroupement de sommet : vertex clustering
1
2
1
2
Loi d’arête
1
8
6
8
• Simple et rapide
• Moche, ne conserve pas la topologie
1
8
– Surface enveloppante : simplification envelopes
• Maîtrise de l'erreur, de la distorsion
• Très long et peu robuste
Loi de sommet
 Problème de popping !
158
Algorithme de simplification

159
Modélisation par points
Algorithme dynamique (maillages continus)

– Principe :
Des points ?
– Objets de plus en plus complexe
• Triangles de plus en plus petits
 Si le modèle est vu de loin, ils se projettent sur 0,1 voire
2 pixels
 Beaucoup de travail inutile : interpolation (couleurs,
normales, textures) et rasterisation.
• Maillage inefficace
– Idée : représentation par points de la surface
• Simplification avec préservation de l'apparence
• Rendu plus efficace, possibilité de rendu de beaucoup
de points
• Rajout de propriétés (couleur, texture) aux points
 Maillage + normal maps + texture / peu de réduction
• Maillages progressifs (progressive
(progressive meshes)
meshes) de Hoppe
 Le plus rapide (TR) / peu de réduction
160
Modélisation par points

Modélisation par points
Origine

– Acquisition scanner
– Génération automatique de géométrie (L(L-system)

161
Qsplat :
– Les points sont projetés sur l’écran
– Contribuent à plusieurs pixels
• Suivant leur éloignement
• Filtre gaussien, masque pour chaque point
• Rendu
Exemples
 Point OpenGL (un carré)
 Cercle (un Quad avec une texture)
 Un point flou (un bilboard avec une texture gaussiène)
162
163
17
QSplat

Modélisation par points
Résultats :

Surfel : surface element
– Construits directement à partir d’une surface
– Rajoute des informations par rapport aux Qsplat
• Textures
• Profondeur, position
• Normales
A.
Points
(qsplat)
B.
Polygones
même nombre
de polygones qu’en A.
même temps
– On utilise ces informations pour projeter le
« point »
C.
Polygones
même nombre
de sommets qu’en A.
temps x2
• Notamment de coordonnées de texture et les normales
– Plus long que les QSplat
164
Modélisation par points

165
QSplat et GPU...
Intérêts
– Pas de conservation de la topologie. Données
libres
– Possibilité de rendu efficace de modèles
complexes

Défauts
Gaël Guennebaud, Loïc
Barthe and Mathias Paulin,
Deferred Splatting
Eurographics 2004,
Grenoble, France
– Problème lors d’un zoom trop important
– Difficulté de remplir les trous
• Coûte cher
– Encore peu temps réel
• Sauf si on rend un modèle précis
• Applicable néanmoins en hiérarchie de points...
166
Marching cubes

Marching cubes
Origine :

Surface définie par
– Point (x,y,z) a l’intérieur ou à l’extérieur

Principe de base :
– Détermination des
éléments internes
– Modélisation de surfaces implicites
– Données volumiques

167
– Calcul des bords
Données d’entrées
– Ensemble d’échantillons ponctuels organisés en
cubes
– Voxels avec 8 sommets
168
– Construction du
contour
169
18
Marching cubes

Marching cubes
Sélection des cubes qui intersectent l'isol'iso-surface :

Les 15 combinaisons :
– Au moins un sommet dedans, au moins un sommet
dehors

Classification des cubes :
– 8 sommets, 2 états (dedans, dehors)
= 256 possibilités
– Symétrie des 2 états : 128 possibilités
– Symétries par rotation : 15 possibilités
– Pour chaque possibilité, une seule triangulation possible
– De 1 à 4 triangles par cube
170
Marching cubes : Calcul des
normales

171
Marching cubes
Les normales sont calculées indépendamment

– Lisser la surface obtenue
– Une normale par triangle

Gradient au sommets
– Estimation par différences centrales :
D(i, j,k 1) D(i, j,k 1)
z
D(i1, j,k)  D (i1, j,k)
Gx(i, j,k) 
x
D(i, j1,k)  D(i, j1,k)
Gy(i, j,k) 
y
Calcul :
Gz(i, j,k) 
–
–
–
–
Gradient de la fonction : normal à l'isol'iso-surface
Calcul du gradient aux sommets du cube
Normalisation : normale aux sommets du cube
Interpolation linéaire : normales aux sommets des
triangles
– Interpolation linéaire : normales sur les triangles
172
Marching cubes

173
Marching cubes
Exemples :

Beaucoup de polygones :
– Même ordre de grandeur que le nombre de
voxels
– Stockage, affichage…
• Parfois plus cher de stocker les polygones que de stocker le
volume !

Gros problèmes liés à la précision
– Sous
Sous--échantillonnage
– Artefacts
174
175
19
Plan du cours
I.
Introduction
II.
Les mathématiques de l'image
III.
Modélisation
A.
IV.
Plan du cours
I.
Modélisation
A.
Objets
Objets
1.
Lignes & Courbes
2.
Surfaces
3.
Objets complexes, humains
1.
Lignes & Courbes
2.
Surfaces
1.
Modèles procéduraux
3.
Objets complexes, humains
2.
CSG
4.
Volumes
3.
Skinning
B.
Scènes
C.
Lumière et matière
4.
Volumes
Rendu & affichage
176
Objets complexes

177
Modèles procéduraux
On a déjà vu des surfaces complexes :

Primitives géométriques créées par une
procédure

Utile pour des objets structurés

Plusieurs approches :
– Modélisation par points
– Certaines soupes de polygones

– Croissance progressive de la forme
Leur construction est :
– Ex : plante, paysage, villes ...
– Soit fait par acquisition directe
• Laser
– Soit utilise des techniques spécifiques :
– Fractales
– L-systems
– Système de particules
• Solide de révolution
• Extrusion
178
Fractales

L-systems
Très mathématique !

– autosimilarité

179
Grammaire décrivant la croissance
3 catégories
– Fonctions itérées
– Relation de récurrence
des points
– Fractales stochastiques
Mandelbrot
180
181
20
Systèmes de particules

Modèles procéduraux
Peuvent être utilisés pour décrire des
surfaces

– Difficile à créer à la main
– Souvent pour des « objets » naturels
– Enveloppe d’un feu
– Surface d’un tas de sable ...

Création d’objets complexes

Problème de connexion entre les particules
– Pour avoir des surfaces correctes
Problème de l’inversion
– Non connaissance des effets des paramètres

Rendu
– Contraigne à des algorithmes spécifiques

Animation
– Grammaire temporelle
– Système de particules
182
Plan du cours
I.
CSG
CSG : Constructive Solid Geometry
 Processus de construction d’objets
complexes
Modélisation
A.

Objets
1.
Lignes & Courbes
2.
3.
Surfaces
Objets complexes, humains
4.
1.
Modèles procéduraux
2.
CSG
3.
Skinning
183
– A partir de forme de base 3D « simple »
(analytiques)
• Cubes, Sphère, Cylindre ...
– Utilisant des opérations ensemblistes
• Unions, Intersections, Différences
Volumes
1982
184
CSG

185
CSG
Exemple de construction

Représentation par
– Une grammaire
– Un arbre

Rendu par
exp := prim | transf prim | op exp exp
prim := cube | sphere | cone | …
transf := translation | homothétie |
rotation
op := union | intersection | difference
– Ray tracing
– OpenGL ?

Très intuitif pour modéliser

Limité

Applicable à des modélisation par points
– Utilisé dans le builder de Unreal
– Dépend du choix des primitives de base
186
187
21
Plan du cours
I.
Skinning
Modélisation
A.

1.
Lignes & Courbes
2.
Surfaces
3.
Et pour les humains ?
– Représentation à base de squelette articulé
Objets
Objets complexes, humains
1.
Modèles procéduraux
2.
CSG
3.
Skinning
4.
Volumes
Michel Roger
http://mr2k.3dvf.net/
188
Skinning

189
Skinning
A partir du squelette :

Un objet autour de chaque « os » :
Trou
© 1998, Darwin 3D 191
190
Skinning

Skinning
Joindre les objets :

Étirement
© 1998, Darwin 3D 192
Sommets intermédiaires
• 50/50 pour chaque os
• Pincement visible
© 1998, Darwin 3D 193
22
Skinning

Skinning: les maths
Sommets intermédiaires

Modèle 3D plus squelette
Chaque sommet est attaché à un ou
plusieurs os

Pose « au repos »

Pose « animée »

Poids :
33/66, 50/50 et
66/33
– Somme des poids = 1
– Modèle non déformé
– Position squelette donnée
– trouver position des sommets
© 1998, Darwin 3D 194
Comment ça marche (1)

195
Comment ça marche (2)
Sommet v, attaché à l’os J1. Au repos :

Nouvelle position du squelette
– Trouver nouvelle position du sommet
v
y
v
y
v'
J1
J0
x
x
196
© J. Gregory, 2003
Comment ça marche (3)

197
© J. Gregory, 2003
Comment ça marche (4)
On a v en coordonnées « absolue »

Sommet, dans l’espace lié à l’os :
– Espace du modèle

On transforme le sommet v :
– De l’espace du modèle (espace global)
– Dans l’espace lié à l’os

v
y
Le sommet est fixe par rapport à l’os
– Donc on peut bouger le squelette

Re--transformation dans l’espace du modèle
Re
– Donne nouvelles coordonnées du sommet : v’
J1
J0
x
198
199
© J. Gregory, 2003
23
Comment ça marche (5)

Comment ça marche (6)
Sommet toujours dans la même position,
quelle que soit la position du squelette

v
y
Retour à l’espace du modèle, position du
sommet
v
y
v'
v'
x
x
© J. Gregory,
200
2003
Avec des maths

201
© J. Gregory, 2003
Avec des maths (2)
Xi position de la base de l’os i (translation)

v
y
Qi rotation de l’os i
v
y
X1
Q1
Q0
X0
x
x
202
© J. Gregory, 2003
Avec des maths (3)

203
© J. Gregory, 2003
Avec des maths (4)
Position à l’équilibre de l’os Ji

On déplace le squelette (animation) :
– Produit matriciel des translations et rotations
depuis la racine :
y
j
B j   X i Qi
v'
i 0
J0
J1
x
204
205
© J. Gregory, 2003
24
Avec des maths (5)

Avec des maths (6)
Ti la translation pour l’os i, Ri sa rotation :

Pose actuelle décrite par matrice :
j
Pj   Ti R i
i 0
y
similaire à la matrice de la pose au repos :
R0
T0
v'
T1
j
B j   X i Qi
i 0
R1
x
© J. Gregory, 2003
206
Avec des maths (7)

Multiplication de v par Bj-1 pour se ramener
dans l’espace lié à l’os (au repos)

Puis multiplication du résultat par Pj pour
se ramener dans l’espace du modèle, dans
la pose actuelle
207
Avec des maths (8)

Ce qui nous donne :
– Une fois pour toutes
v  P j B j  v
1
 
v  P j  B i1 v
v  P0 P1B11B 01 v
208
Avec des maths (9)

Avec des maths (10)
Calculs effectués pour chaque sommet du
modèle

– Tracé des sommets obtenus

209
Interpolation pour les sommets qui
dépendent de plusieurs os :
 j  j 1 
v' j  Pi  Bi  v
 i0  i0 
Interpolation des positions pour les
sommets qui dépendent de plusieurs os
 j  0 1 
v'k  Pi  Bi  v
 i0  i j 
v'  wj v' j  wk v'k
– Chaque sommet partagé par plusieurs os
possède un poids pour chaque os
210
211
25
Plan du cours
I.
Introduction
II.
Les mathématiques de l'image
III.
Modélisation
A.
IV.
Modélisation des volumes

Problème difficile
– Passer de la 2D à la 3D demande :
• Plus de mémoire :
 Exemple : un plan discrétisé en 10*10 fait 200 triangles,
un espace discrétiser en 10*10*10 fait 1000 cubes soit
12 000 triangles
Objets
1.
Lignes & Courbes
2.
Surfaces
3.
Objets complexes, humains
4.
Volumes
B.
Scènes
C.
Lumière et matière
• Plus de temps de calcul

Origine :
– Calcul scientifique
– Gaz et fluides
Rendu & affichage
212
Modélisation des volumes

213
Modélisation des volumes
Trois schémas de modélisation :

– Par système de particules
Modélisation par nature d’élément
– Brouillard :
• Adapté pour le feu, la fumée, la pluie, la neige ...
• Homogène ou hétérogène
 Calcul direct par la carte graphique
 Calcul indirect par la carte graphique
– Par fonction implicite
• Pour modéliser des zones homogènes
• Couche de brume ...
– Par projection dans une base de fonction
• Adapté pour des milieux recouvrant l’ensemble de la
scène
214
Modélisation des volumes

215
Synthèse d'images I
Feux et fumées
III. Modélisation
– A coder : densité du milieu dans l’air
B. Scènes
– Très souvent modélisé par des systèmes de
particules
• Bon rendu et avantage de la rapidité
• On peut faire un équivalent de fonctions implicites (3D)
216
Venceslas BIRI
IGM
Université de Marne La Vallée
26
Plan du cours
Plan du cours
I.
Introduction
I.
Introduction
II.
Les mathématiques de l'image
II.
Les mathématiques de l'image
III. Modélisation
III. Modélisation
A.
Objets
A.
B.
Scènes
B.
C.
Lumière et matière
1.
Les objets et leur positionnement
IV. Rendu & affichage
2.
Graphes de scènes
C.
Objets
Scènes
Lumière et matière
IV. Rendu & affichage
218
Objets canoniques

219
Objets canoniques
Construction d’une scène complexe :

Construction d’un objet
– Constitué d’objets canoniques
– Tout est lié à un référentiel unique
• Brique de base. Pas forcément des primitives
géométrique type cube, sphère. Peut être plus
complexe
• Ne doivent pas être constitués d’éléments en
déplacement les uns par rapport aux autres
• Muni de repères propres
• Pour conserver les positions relatives des éléments
entre eux
• Pour conserver les tailles des éléments entre eux
– Mais tout construire depuis ce référentiel unique
est pénible

• Stratégie :
 construire un objet dans un repère local propre à lui
 le déplacer et l’orienter dans le référentiel général
Positionnement
– Déplacer et orienter les repères propres par
rapport :
• A d’autres repères propres
• Au référentiel global
220
Objets canoniques

221
Positionnement
Exemple de construction : le bras articulé

Positionner les repères propres :
 : rotation du bras par rapport à la tige
 : rotation de l’arbre par rapport au bras
222
223
27
Pour bien comprendre
X0 : translation = Matrice de
passage du repère R 0 au repère R 1
v
y
X1
R2
Pour bien comprendre
R1
J
x
R0
v
y
B j   X i Qi
Q1
v a 2 « ensembles » de coordonnées :
• celles du repère propres liées à J 1
X0
• celles du référentiel initial
X1
v propre vR4
i 0
R3
B1X0Q0X1Q1
Q0
R1
x
Q1 : rotation = Matrice de passage
du repère R 3 au repère R 4
j
R4
R2
x
vref  vR0
I.
Introduction
II.
Les mathématiques de l'image
C.
Q1
224
225
Graphes de scènes

Idée : organiser les objets en hiérarchie
– Qui est « contenu » dans quoi ?
– A quel repère un objet estest-il lié?
– Arborescence ... graphe
III. Modélisation
B.
Q0
B1 MR0R1MR1R2MR2R3MR3R4  MR0R4
Plan du cours
A.
1
0
Q0 : rotation = Matrice de passage
du repère R 1 au repère R 2
X0
vR0  X0Q0X1Q1vR 4
J
X1 : translation = Matrice de
passage du repère R 2 au repère R 3
R3
vR0  MR0R4 vR 4
v
y
Objets
Scènes
1.
L’espace homogène
2.
3.
Les objets et leur positionnement
Graphes de scènes
Lumière et matière
IV. Rendu & affichage
226
Modèle hiérarchique
227
Hiérarchie de nœuds
Modèle divisé en morceaux
Relations entre les morceaux
 Paramètres pour :



– Transformation en coordonnées locales
– Modèle simple en coordonnées locales
– Dessin des enfants (qui héritent des
coordonnées locales)
– Forme des morceaux (écrasement)
– Position des morceaux (inclinaison)

Chaque nœud :
Hiérarchie du modèle : exemple

– Base se déplace : tout suit
– Torse se déplace :
boutons et tête suivent
– Tête se déplace :
yeux et nez suivent
Après le nœud :
– Retour aux coordonnées locales précédentes
– Couleur, matériau, style, etc. ?
• Pas fixé
228
229
28
Bonhomme de neige
Personnage
Base
Torse
Bouton1
Bouton2
Bouton3
Tête
Nez
Œil1
Œil2
© 1998, Darwin 3D 231
230
Graphes de scènes

Graphes de scènes
Différents types de noeuds :
–
–
–
–
–

Maillages, objets ...
Matériaux, Apparences
Nœuds de transformation
Noeuds caméras
Nœuds de groupes
Intérêts :
– Culling (automatique)
– Hiérarchie
• Imposé par le culling
• Pour la dynamique des
objets
• Notamment des nœuds switch permettant de choisir un objet
ou un autre par rapport à une variable
– Nœuds LOD
– Collision
• Bounding box sur
chaque nœud
– Optimisation de rendu
• Géométrie choisie par rapport à la distance à l’observateur
– Nœuds action, événement
• En fixant des états
(matériaux, texture) sur
chaque nœud
• Déclenchent des comportements, font l’animation...
– Factorisation
Des nœuds « maillage »
peuvent être communs
232
Graphes de scènes

233
Graphe de scène OpenInventor
Existe (notamment)
– OpenSG
– OpenSceneGraph
• Le plus complet ... très bon rapport qualité/prix !
– X3D
• Commercial. Tentative de standardisation
industrielle
–
–
–
–
Java 3D
Gizmo3D
Open(gl)Performer
Virtools
234
235
29
Graphe de scène Java3D
Alias|Wavefront « SBD »
236
OpenSceneGraph

237
OpenSceneGraph
Une API C++ fondée sur OpenGL pour

Composants
– Le management de scènes
– L’optimisation du rendu de scènes
OSGUtil
Traversers
Enhancements
Cross-platform
CrossWindowing system agnostique
 Open Source

OSG
Scene Graph
Rendering Elements

OSGText
OSGDB
Data Base Loading
Plug-in Management
OSGSim
Plug-Ins
Node Kits…
238
OpenSceneGraph

239
Autres représentations de scène
Formats de fichier supportés

– Formats de fichier 3D
Quadtree / Octree
– + souvent quadtree (plus léger)
– Partition de l'espace en quatre / huit suivant
• 3dc, 3ds, ac3, dw, flt, freetype
• Iv, ive, logo, lwo, md2, obj
• osg, osgtgz, tgz, txp, directX, zip
• Quadtree : les coordonnées x,y relative au sol
• Octree : les coordonnées x,y,z dans l'espace
– Formats de fichier image
– Permet de séparer les données en zones
• bmp, dds, pic, png
• pnm, qt, rgb, tga
• Plus il y a de données dans un endroit, plus la
décomposition est forte
240
241
30
Autres représentations de scène

Synthèse d'images I
Les portes
III. Modélisation
– Les scènes complexes sont organisées en
différentes sections
– Chaque section est séparée de la suivante par
une zone de transfert
– D'une section, on ne voit pas l'autre section
C. Lumière et matière
• Par un jeu de visibilité
 Autre section trop loin
 Autre section cachée par des éléments de décors
– Permet le chargement de quelques sections
• Chacune peut avoir une représentation de scène à
l'aide des structures vues précédemment
242
Plan du cours
Venceslas BIRI
IGM
Université de Marne La Vallée
Plan du cours
I.
Introduction
I.
Introduction
II.
Les mathématiques de l'image
II.
Les mathématiques de l'image
III. Modélisation
III. Modélisation
A.
Objets
A.
Objets
B.
Scènes
B.
Scènes
C.
Lumière et matière
C.
IV. Rendu & affichage
Lumière et matière
1.
Les énergies de la lumière
2.
Les yeux : la photométrie
3.
Les matériaux
IV. Rendu & affichage
244
La lumière

La lumière
Lumière :

– Une onde électromagnétique
Grandeurs physiques
– Flux énergétique  e
• Phénomène ondulatoire, diffraction
• Valeur instantanée d’un débit de rayonnement
• Puissance (en Watt)
– Porté par des photons
• Phénomène particulaire
– Intensité énergétique Ie
– A une longueur d’onde

245
• Puissance émise par unité d’angle solide (W/sr)
En synthèse d’images
Ie 
– Peu de travail sur l’aspect
ondulatoire
– On s’intéresse au comportement
du photon
de
d
– Angle solide ?
 S
r
• Les photons ont une longueur d’onde
246
unité : stéradian (sr)
247
31
La lumière
Plan du cours
– Éclairement énergétique Ee
• Quantité de flux reçu par unité de surface (W/m²)
• Une valeur analogue, appelé radiosité ou exitance,
indique la quantité de flux émis par unité de surface
Ee 
I.
Introduction
II.
Les mathématiques de l'image
III. Modélisation
de
dS
– Luminance Le
Objets
B.
Scènes
C.
• flux d’énergie quittant une surface dans une direction
2
donnée
d e
Le 
d dS cos( )
A.
angle solide
projeté
Lumière et matière
1.
Les énergies de la lumière
2.
Les yeux : la photométrie
3.
Les matériaux
IV. Rendu & affichage
248
Le système visuel humain

249
Photométrie
Iris + corné + cristallin

– Appareil optique

Vision de nuit : domaine
scotopique
– Bâtonnets principalement
sollicités
Rétine :
– C'est la pellicule !
– Cônes

Vision de jour : domaine
photopique
– Cônes principalement
sollicités
• Sensibilité différente suivant les
longueur d’onde : pour les couleurs
• Peu sensible à l’intensité lumineuse

– Bâtonnets :
Étude de la réponse de
l’œil
– Fonction d’efficacité
spectrale
• Sensible à l'intensité lumineuse
Étude de la sensibilité de l’œil :
Domaine de la photométrie !
250
Grandeurs photométriques
Radiométrie
Colorimétrie
Photométrie
Flux
e
Watt(W)
v
Lumen (lm)
Intensité
Ie
W/sr
Iv
Candela
(cd = lm/sr)
Éclairement
Ee
W/m²
Ev
Lux
(lx = lm/m²)
Luminance
Le
W/m² sr
Lv
cd/m²
Conversion :
Xv  K
constante = 683 lm/W
 Xe,V d
Dv
251

– Les couleurs peuvent être reproduites par
combinaison linéaire de 3 couleurs
monochromatiques
• Ce sont les couleurs primaires
– Décomposition de toute couleur C(
C(  )
grandeur radiométrique spectrale
domaine de sensibilité de l'oeil
Espace des couleurs CIE XYZ
252

 X  C (  ) x d



 Y  C ( ) y d



 Z  C (  ) z d





253
32
Colorimétrie

Colorimétrie
Espace Lxy

– Dissocier la teinte de la luminosité :
Espace dépendant du matériel
– Passage des couleurs RGB à XYZ par une
matrice
L Y
• Matrice donnée par le fabriquant
X
X Y Z
y Y
X Y Z
x
– Autre jeux de couleur
• CMYK
– D'autres espaces
• Luv
• Lab
254
Plan du cours
255
Matériaux
I.
Introduction
II.
Les mathématiques de l'image

3 comportements des matériaux
– Absorption
• Très peu utilisée en synthèse d’images

a(,T,u)
III. Modélisation
A.
Objets
B.
Scènes
C.
Lumière et matière
– Émission
1.
Les énergies de la lumière
2.
Les yeux : la photométrie
3.
Les matériaux
• Peu de dépendance à la température

 (,T,u)
– Réflexion
• Capacité de la matière de réfléchir, d’une direction
donnée vers une autre direction donnée, une partie de
la lumière reçue
IV. Rendu & affichage
 
 bd ( , dS , u , u ' ) 

Le ( , dS , u )

Le ( , dS , u ' ) cos  ' d '
256
Matériaux

257
Matériaux
La réflexion Lambertienne

– La réflexion ne dépend pas de l’angle
d’incidence, ni de l’angle de réflexion
– Matériaux isotrope
– Réflexion Lambertienne ou réflexion diffuse
Réflexion spéculaire pure
– Propre aux surfaces très réfléchissantes
– Induit une réflexion de lumière symétrique par
rapport à la normale de la surface
– Seule une proportion est réfléchie indiquée par
le coefficient de réflexion spéculaire
s(,dS)

bd(,dS,u,u')  d(,dS)
I
258
N
R
Calculez R !
259
33
Matériaux : FDRB

Matériaux : FDTB

FDRB (BRDF) : bd(,dS,u,u')
position invariant

bd(,u,u')

– Fonction de répartition spatiale de l’énergie
reçue en fonction de son angle d’incidence
– Indique une proportion (entre 0 et 1)
FDTB (BTDF) :
– Même chose mais pour la transmission
– C’est l’hémisphère « sous » la surface concerné
• A l’opposé de la normale
• Obéi aux lois de réciprocité d’Helmholtz
• L’intégrale doit être égale à 11- absorption
– Transmission pure :
• Obéi aux lois de Descartes
n1 sin(1) n2 sin(2)
260
Matériaux : textures

261
Matériaux : textures
Certains détails complexes à représenter
géométriquement et radiométriquement

– Chaque sommet est associé à une position dans
l’image
– Fissures
– Salissure
– Détails de revêtement

Principe
• Ce sont les coordonnées de texture (2D)
– La partie de l’image correspondant aux
sommets est appliquée sur la surface
Utilisation d’une image « plaquée » sur la
surface
– Représente la couleur
– Peut représenter aussi des déformations
géométriques
262
Matériaux : textures

Matériaux : textures
Application des textures

– Peuvent se combiner avec la couleur déterminée
par l’éclairement
– Peuvent se combiner entre elles

263
Autres types de texture :
– Bump mapping : rajouter de la granularité
• Réalisé avec une texture
• On souhaite conserver une surface simple
La plupart du temps : réutilisation ...
+
Quake
Id Software
264
=>
265
34
Matériaux : textures

Matériaux : textures
Bump Mapping : algorithme initial

Exemple de bump mapping
– A l'aide de la carte de bump
• En chaque point, perturber la normale suivant la
"hauteur" du point et de ses voisins sur la carte de
bump
– Équation de perturbation de la normale :
F : bump map
P : surface
N : normale
– Avant : Fonctionnalité dépendante de la carte
– Maintenant : Utilisable directement via un "pixel
shader"
Documentation technique Matrox
Mare k Mizanin : http
http:: //www
//www..zanir
zanir..szm
szm..sk
http://www.matrox.com/mga/francais/produ cts/te ch_info/
266
Matériaux : textures

267
Matériaux : textures
Cartes de normales (normal
(normal maps)
maps)

– Similaire au bump mapping ... en plus simple
– La texture code directement la variation de la
normale en chaque point : offset vector D
Cartes de déplacement (displacement
(displacement
mapping))
mapping
– A priori peu utilisées encore
– Permet de « décaler » la géométrie suivant une
texture
N'  N D
• Création de nouveaux points
• Devient envisageable grâce aux geometry shader
Autre stratégie : rotation vector
268
269
35
Téléchargement