Modelisation 2
Modelisation 2
Sylvain Brandel
2
Pourquoi ?
3
Pourquoi ?
4
Un tout petit peu d’histoire
• Modélisation surfacique (années 1960 – 70)
– De Casteljau (Citroën)
– Bézier (Renault)
– Coons (General Motors)
– Ferguson (Boeing)
• Modélisation volumique (années 1980)
– Réquicha
– Mäntylä
– Hoffmann
5
Chaine de visualisation
§ Transformations
Transformation géométrique § Projections
§ Algorithme du peintre
§ Lancer de rayon
§ Lignes de balayage
§ Z-buffer
Elimination des parties cachées § Lignes de balayage
§ Subdivisions de l’espace image
§ Lancer de rayon
§ Eclairement
Rendu réaliste § Ombrage
§ Modèles de couleurs
§ Radiosité
Affichage § Ecran !
6
Première partie
Courbes et surfaces
paramétriques
Représentation des courbes et
surfaces
x2+y2+z2-1=0
• Représentation implicite x-y=0
• Courbes : f(x,y,z) = 0 et g(x,y,z) =0
• Surfaces : f(x,y,z) =0
• Représentation paramétrique
• Courbes : x = f(t), y = g(t), z = h(t)
• Surfaces : x = f(u,v), y = g(u,v), z = h(u,v)
x=acost
• Courbe cubique : y=asint
• x = axt3 + bxt2 + cxt + dx z=bt
• y = ayt3 + byt2 + cyt + dy
• z = azt3 + bzt2 + czt + dz
8
Représentation des courbes
• Représentation cartésienne
– Courbes planes : y = f(x)
– Courbes gauches : y = f(x), z = g(x)
– Avantages :
• simple
(b)
• accès direct à y et z connaissant x
(a)
– Inconvénients :
• tangente verticale non représentable
• rotation altère la courbe (b) (c)
• (c) non représentable
9
Représentation des courbes
• Représentation paramétrique
– Courbes planes : x = f(t), y = g(t)
– Courbes gauches : x = f(t), y = g(t), z = h(t)
– Avantages :
• liberté sur les tangentes
• forme quelconque
• plein de propriétés
– Inconvénients :
• calculs parfois lourds ou délicats
10
Historique
• Grands noms (années 60 – 70) :
– Bézier (Renault)
– De Casteljau (Citroën)
– Coons (General Motors)
– Ferguson (Boeing)
– De Boor ß B-Splines
• Grands systèmes de CFAO (années 80) :
– Euclid
– Catia
• Fin du duel Bézier – B-Splines : 1990
• Problème de reconstruction : 1990
• Surfaces de subdivisions : 1995
11
Interpolation vs approximation
• Interpolation
• Approximation
12
Continuité
Vn W0
• Continuité de position
– G0 : Vn = W0 Vn-1
– C0 : pareil
• Continuité de tangence W1
– G1 : Vn-1Vn et W0W1 colinéaires
– C1: même norme Vn-1
Vn W
0
• Continuité de courbure W1
– G2
– C2
Vn-1
• Continuité de torsion Vn W
0
– G3 W1
– C3
13
Interpolation de points
Interpolation polynomiale
• L’interpolation polynomiale est à la base de tous
les concepts d’interpolation
• Soient P0, …, Pn et t0, …, tn les valeurs du
paramètre correspondant.
– Interpoler consiste à trouver une courbe P(t) passant
par tous les points
– On cherche un polynôme satisfaisant les contraintes
d’interpolation : P(ti) = Pi (i=0..n)
• Théorème :
– Il existe un unique polynôme P de degré £ n tel que
P(ti) = Pi (i=0..n) avec Pi et ti fixés
15
Polynômes de Lagrange
• Forme explicite du polynôme d’interpolation P :
n
P(t ) = å Pi L (t )
n
n
i
Li
: polynômes de Lagrange
i =O n
avec å i (t ) = 1
Ln
i =O
n
Õ (t - t ) j
ì1 pour i = j
L (t j ) = d i , j
j =0, j ¹i
L (t ) =
n
i n
n
i =í
Õ (t i -tj) î0 sinon
j =0, j ¹i
16
Approche de Vandermonde
• On utilise la base monômiale n
P(t ) = å ai t i
ìP(t0 ) = P0 = a0 + a1t0 + ! + ant0n i =O
ï
í" n+1 équations
ïP(t ) = P = a + a t + ! + a t n
î n n 0 1 n n n
17
Algorithme d’Aitkem
• Interpolation de deux points A et B
t Î [0,1] : P(t ) = (1 - t ) A + tB
b-u u-a
u Î [a, b] : P(u ) = A+ B
b-a b-a
18
Algorithme d’Aitkem
• Evaluation récursive
ti +1 - t t - ti
Pi (t ) =
1
Pi + Pi +1 i = 0 .. n - 1
ti +1 - ti ti +1 - ti
n -1 n -1 n -1
P0 (t ) interpole P0 , P1 , !, Pn -1 P
0 (ti ) = P
1 (ti ) = Pi
n -1
P1 (t ) interpole P1 , P2 , !, Pn
t n - t n -1 t - t0 n -1
alors P (t ) =
0
n
P0 (t ) + P1 (t ) P0n (ti ) = Pi
t n - t0 t n - t0i
19
Algorithme d’Aitkem
P0 t - t0 P1 t - t1 P2 t - t2
P3
t1 - t0 t 2 - t1 t3 - t 2
t1 - t t2 - t t3 - t
t1 - t0 t 2 - t1 t3 - t 2
P01 (t ) t - t0 1
1
P (t ) t - t1
1
P (t )
2
t 2 - t0 t3 - t1
t2 - t t3 - t
t 2 - t0 t3 - t1
P02 (t ) P12 (t )
t - t0
t3 - t 0
t3 - t
t3 - t 0
P03 (t )
20
Algorithme d’Aitkem
• Algorithme :
ti + r - t r -1 t - ti r -1 r = 1 .. n
Pi (t ) =
r
Pi (t ) + Pi +1 (t )
ti + r - ti ti + r - ti i = 0 .. n - r
21
Interpolation polynomiale
• Propriétés
– Précision linéaire
– Invariance par transformation affine
– La courbe P(t) n’est pas contenue dans l’enveloppe
convexe des points interpolés
– La propriété de diminution des variations de la courbe
par rapport au polygone des points Pi n’est pas
satisfaite
• Limitations
– Interprétation géométrique non satisfaisante
22
Interpolation de points
• Interpolation de points et d’autres informations :
– On ajoute les dérivées (tangentes)…
– Soient les points P0, P1 et les vecteurs tangents D0 et
D1. Trouver une courbe polynomiale cubique P(t)
interpolant ces données
à Interpolants cubique et quintique d’Hermite
• Interpolation polynomiale par morceaux
• Splines
– signifie « latte » (coques de bateaux)
– la latte prend une position qui minimise la torsion
23
Courbes de Bézier
Polynômes de Bernstein
• Le ième polynôme de Bernstein de degré n est :
ì i n!
B (t ) =
i
n
( )t (1 - t )
n
i
i n -i
avec () n
i
ïC n =
=í i!(n - i )!
si 0 £ i £ n
ïî0 sinon
í 3
ï 2B (t ) = 3 t 2
(1 - t )
ïî B33 (t ) = t 3
25
Polynômes de Bernstein
• Propriétés
– Stabilité :
• base optimale pour effectuer les principaux calculs
• passage Bernstein – Base canonique (Pn(t) = tn) connu
– Valeurs des polynômes
ìB0n (0) = 1 ì"i ¹ 0 Bin (0) = 0
í n de plus : í
îBn (1) = 1 " ¹ i (1) = 0
n
î i n B
– Positivité
"t Î [0,1] Bin (t ) ³ 0
"t Î]0,1[ Bin (t ) > 0
26
Polynômes de Bernstein
• Propriétés
– Symétrie
"t Î [0,1] B (t ) = B (1 - t )
i
n n
n -i
– Partition de l’unité
n
"t Î [0,1] å Bin (t ) = 1
i =0
– Relation de récurrence
ìïB00 (t ) = 1
í n
j (t ) = 0 pour j Ï {0, !, n}
n -1 n -1
ïî i
B (t ) = (1 - t ) Bi (t ) + t Bi -1 (t ) avec B n
27
Polynômes de Bernstein
• Exemples
Bi2 Bi3 B03 B33
B02 B22
B13 B23
B12
ìB02 (t ) = t 2 - 2t + 1 ì B03 (t ) = -t 3 + 3t 2 - 3t + 1
ï 2
B
í 1 (t ) = - 2t 2
+ 2t ï 3
ï B1 (t ) = 3t - 6t + 3t
3 2
ïB 2 (t ) = t 2
î 2 í 3
ï 2B (t ) = - 3 t 3
+ 3 t 2
ïî B33 (t ) = t 3
28
Polynômes de Bernstein
30
n
P(t ) = å Pi Bin (t ) "t Î [0,1]
i =0
Exemples de courbes
• Linéaires (degré 1), deux points de contrôle
– P(t) = (1-t)P0 + tP1, t Î [0,1]
• Quadratique (degré 2), trois points de contrôle
– P(t) = (1-t)2P0 + 2t(1-t)P1 + t2P2, t Î [0,1]
• Cubique (degré 3), quatre points de contrôle
– P(t) = (1-t)3P0 + 3t(1-t)2P1 + 3t2(1-t)P2 + t3P3, t Î [0,1]
• Courbes de Bézier de degré supérieur à 3 :
– rarement utilisées
– raccordement de courbes cubiques
• chevauchement de points de contrôle pour assurer la
continuité
31
n
P(t ) = å Pi Bin (t ) "t Î [0,1]
i =0
Forme matricielle
é P0 ù
P(t ) = [ B0n (t ) B1n (t) " Bnn (t )]êê ! úú
êë Pn úû
Point de contrôle
Polygone caractéristique
33
n
P(t ) = å Pi Bin (t ) "t Î [0,1]
i =0
Propriétés
• Précision linéaire :
– Si les points de contrôle Pi sont alignés, alors la
courbe de Bézier est sur un segment de droite
• La relation entre les points de contrôle est la
courbe est invariante par transformation
affine
• La relation entre les points de contrôle est la
courbe n’est pas invariante par
transformation projective
34
n
P(t ) = å Pi Bin (t ) "t Î [0,1]
i =0
Propriétés
• Invariance par transformation affine de t :
n n
u-a
–0£t£1àa£u£b: å
i =0
Pi B (t ) = å Pi B (
i
n
i =0
i
n
b-a
)
35
n
P(t ) = å Pi Bin (t ) "t Î [0,1]
i =0
Propriétés
• La construction de la courbe de Bézier à partir du
polygone de contrôle est invariante par combinaison
barycentrique :
n n n
a å Pi B (t ) + b å Vi B (t ) = å (aPi + bVi ) Bin (t )
i
n
i
n
i =0 i =0 i =0
å i
P
i =0
B (t
i
n
) = å n -i i
P
i =0
B n
(1 - t ) car Bi
n
(t ) = Bn -i (1 - t )
n
36
n
P(t ) = å Pi Bin (t ) "t Î [0,1]
i =0
Propriétés
• La propriété de diminution des variations de la
courbe par rapport au polygone de contrôle
est satisfaite
– aucun plan n’a plus d’intersections avec la
courbe qu’avec le polygone
37
n
P(t ) = å Pi Bin (t ) "t Î [0,1]
i =0
Propriétés
• Condition aux limites :
– La courbe de Bézier passe par P0 et Pn : P(0) = P0
– Elle est tangente à P0 P1en P0 et à Pn Pnen P
-1 n
• Continuité :
– Une courbe de Bézier de degré n est Cn-1 continue
• Contrôle global
• La dérivée n+pème d’une courbe de Bézier de degré n est nulle
– conséquence : une courbe de Bézier de degré 2 est forcément plane
38
Calcul d’un point
• Méthode à proscrire :
– Calcul direct des polynômes de Bernstein pour tout t
• Construction d’une parabole à partir de 3 points
P01 (t ) = (1 - t ) P0 + tP1 P02 (t ) = (1 - t ) P01 (t ) + tP11 (t )
P11 (t ) = (1 - t ) P1 + tP2 = (1 - t ) 2 P0 + 2t (1 - t ) P1 + t 2 P2
P1
P11 (t ) P0 P1 P2
P01 (t )
P02 (t ) P01 (t ) P11 (t )
P0 P2
t
P02 (t )
39
Calcul d’un point
• Algorithme de De Casteljau
ìPi 0 (t ) = Pi , i = 0..n
í r r -1 r -1
P
î i (t ) = (1 - t ) Pi + tPi +1 (t ), r = 1..n, i = 0..n - r
P01 (t ) 1-t
P3
P0 t
40
Algorithme de De Casteljau
P0 = P00 (t ) P1 = P (t )
1
0
P2 = P (t )2
0
P3 = P30 (t )
1- t t 1- t t 1- t t
1
P (t )
0 P11 (t ) P21 (t )
1- t t 1- t t
2
P (t )
0 P12 (t )
1- t t
3
P (t )41
0
Algorithme de De Casteljau
début
pour i de 0 à n • Formulation récursive à proscrire
• Complexité :
Pi 0 = Pi
finpour – O(n2) (n : degré) pour chaque valeur de t
– Couteux mais stable
pour r de 1 à n
• Convergence :
pour i de 0 à n-r
r -1 r -1
– Augmentation du nombre de points de
Pi = (1 - t ) Pi
r
+ tP
i +1 contrôle
finpour – Quand le nombre de points de contrôle
finpour augmente, la courbe et le polygone de
fin contrôle tendent à se confondre (si points
« bien » répartis)
A la fin, P (t ) = P0n
42
Algorithme de De Casteljau
• Exemples
43
Manipulation de Béziers
• Fermeture
– Raccordement C0 : P0 = P5
– Raccordement C1 : P1 – P0 = P5 – P4
– Raccordement C2 : P2 - 2P1 + P0 = P5 – 2P4 + P3
44
Manipulation de Béziers
• Raccordement C2 de deux courbes de degrés n
– Raccordement C0 : Pn = R0
– Raccordement C1 : Pn – Pn-1 = R1 – R0
– Raccordement C2 : Pn - 2Pn-1 + Pn-2 = R2 – 2R1 + R0
45
Conclusion sur les Béziers
• Modèle historique
– simple,
– expression de tout polynôme à coefficients vectoriels
– contrôle global bien connu (lissage important)
– peu de paramètres
• Mais
– la complexité augmente avec le nombre de points
– limitation obligatoire du degré (9 à 10 en pratique)
– contrôle global
– pas adapté pour l’interpolation directe d’un nuage
de points
46
Courbes B-Splines
Fonctions B-Splines
ì( -1) k
(ui+k - u )[u ( k ) : t ](u - t ) k -1
+ pour ui £ u < ui + k
Bi (u ) = í
k i i
î0 pour u < ui et u ³ ui + k
avec å Bik (u) = 1, Bik (u) > 0 pour ui £ u < ui +k
Les différence s divisées [ui (k ) : t ](u - t ) k+-1 = [ui , ui +1 ,..., ui + k : t ](u - t ) k+-1
sont définies par récurrence :
[ui : t ](u - t ) k+-1 = (u - ui ) k+-1
[ui , ui +1 ,..., ui + k : t ](u - t ) k+-1
ì[ui +1 ,!, ui + k : t ](u - t ) k+-1 - [ui +1 ,!, ui + k -1 : t ](u - t ) k+-1
ïï pour ui + k < ui
=í ui + k - ui
ï 1 D(k) (u - t ) k -1
ïî k! t + t = u i pour ui + k < ui
48
Fonctions B-Splines
ì( -1) k
(ui+k - u )[u ( k ) : t ](u - t ) k -1
+ pour ui £ u < ui + k
Bi (u ) = í
k i i
î0 pour u < ui et u ³ ui + k
avec å Bik (u) = 1, Bik (u) > 0 pour ui £ u < ui +k
î0 pour t > u
ì( u - t) r
pour t £ u
(u - t ) + = í
r
î0 pour t > u
49
Fonctions B-Splines
• Relation de récurrence
ì1 ui £ u £ ui +1
B (u ) = í
1
i
î0 u < ui et u ³ ui +1
ì u - ui k -1 ui + k - u k -1
ï Bi (u ) + Bi +1 (u ) ui £ u £ ui + k
Bi (u ) = í ui + k -1 - ui
k
ui + k - ui +1
ïî0 u < ui et u ³ ui + k
50
Fonctions B-Splines
• Vecteur de nœuds
– point de départ : suite non décroissante de
valeurs t0 £ t1 £ ! £ tm
– les ti sont appelés les nœuds
– la suite des ti s’appelle vecteur de nœuds
– les ti peuvent être entiers ou réels
t0 t1 ti ti +1 tm
51
Fonctions B-Splines
• Fonctions B-Splines normalisées d’ordre k définies sur le
vecteur de nœuds
– soit k un entier fixé > 1
– (m-k+1) fonctions polynomiales par morceaux de degré k-1 notées
: ik
vérifiant B
m-k
1) å Bik = 1 partition de l’unité
i =0
52
Fonctions B-Splines
• Interprétation : la fonction Bik est
– non nulle sur [ti,ti+k]
– nulle en dehors
– un polynôme de degré k-1 sur chaque [tj,tj+1]
(j=i, i+1, …, i+k-1)
• De plus
– les k polynômes se raccordent en Ck-2
– la continuité implique : Bik (ti ) = Bik (ti +k ) = 0
53
Fonctions B-Splines
• Fonctions avec des nœuds équidistants :
une Bi5
B05 5
B
1
5
B
2
B35 B 5
4
B55 B65 B75
54
Fonctions B-Splines
• Fonctions avec des nœuds équidistants :
– ordre 2 (k=2, degré=1)
ìt si 0 £ t £ 1
B (t ) = í
2
0
î(2 - t ) si 1 £ t £ 2
– ordre 3
ìt 2
ï si 0 £ t £ 1
ï2 2
ï (-2t + 6t - 3)
B0 (t ) = í
3
si 1 £ t £ 2
ï 2
ï (3 - t ) 2
si 2 £ t £ 3
ïî 2
55
Fonctions B-Splines
• Influence de la répartition des nœuds (ordre 4)
– vecteur des nœuds : 4, 5, 6, 14, 15
56
Fonctions B-Splines
• Superposition de nœuds (ordre 4)
vecteur des nœuds : vecteur des nœuds :
0, 0, 0, 0, 1, 1, 1, 1 0, 0, 0, 0, 1, 2, 3, 3, 3, 3
B 4 B34
0
B1
4
B24
57
Fonctions B-Splines
• Superposition de nœuds (ordre 3)
1, 1, 3, 3 1, 1, 2, 3
1, 1, 1, 3 1, 2, 2, 3
58
Fonctions B-Splines
• Superposition de nœuds (ordre 4)
1, 1, 2, 3, 4 1, 1, 1, 2, 3
1, 2, 2, 2, 3
1, 1, 1, 1, 3
59
Courbes B-Splines
• Définition
– Soient (n+1) points Pi de R2 ou R3
– La courbe B-Spline associée à ces points est la courbe
obtenue en prenant comme fonctions de poids un
ensemble de fonctions de base
n
P(t ) = å Pi Bik (t )
i =0
60
Courbes B-Splines
• Il faut choisir un ordre k et un vecteur de nœuds
– k choisi en premier
• degré de continuité souhaité
• pour avoir des polynômes de degré le plus bas possible
• très souvent, k = 4
– nombre de nœuds
• nombre de nœuds : n + k + 1
• vecteur de nœuds T : t0, t1, ... tn+k
– choix des nœuds
• on prend en général t0 = t1 = … = tk-1 < tk < … < tn < tn+1 = tn+2 = … =
tn+k
• l’intervalle de travail est toujours [tk-1, tn+1]
– vaste problème
61
Courbes B-Splines
• Propriétés
– P(t) est le barycentre des points Pi affectés des masses Bik
– Enveloppe convexe
– Caractère local : P(t) ne dépend que de k points de contrôle
– Invariance par transformations affines
– Passage par les points extrêmes
– Propriété de diminution des variations
– Propriété de reproduction de la linéarité
– Si un point apparait plusieurs fois, P(t) est tirée vers ce point
– La courbe est plus proche des points de contrôle qu’une courbe
de Bézier
– Les courbes de Bézier sont un cas particulier des B-Splines
62
Calcul d’un point
• Algorithme de De Boor – Cox (De Casteljau)
début
pour m de i-k+1 à i k-1 ≤ i ≤ n
Pm1 = Pm ti ≤ t ≤ ti+1 avec ti < ti+1
finpour ([ti ,ti+1] vrai intervalle)
pour j de 1 à k-1
pour m de i-k+j+1 à i
j +1
(t - t m ) Pm
j
+ (t m+ k - j - t ) P j
m -1
Pm =
tm+ k - j - tm
finpour
finpour
fin A la fin, P (t ) = Pi k
63
Dessin d’une courbe
Exemple : n=6, k=4, 11 nœuds
P2 P3
Approxime P1, P2, P3, P4
P0
P1 P5 P4
64
Choix du vecteur de
nœuds
Exemple : n=6, k=4, 11 nœuds
• Nœuds répartis uniformément
P2 P3
i=4, 4 ≤ t ≤ 5
i=3, 3 ≤ t ≤ 4
P6 i=5, 5 ≤ t ≤ 6
i=6, 6 ≤ t ≤ 7
P0
P1 P5 P4
0 1 2 3 4 5 6 7 8 9 10
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
65
Choix du vecteur de
nœuds
Exemple : n=6, k=4, 11 nœuds
• Nœuds confondus P3
P2
i=4, 1 ≤ t ≤ 2
P6 i=5, 2 ≤ t ≤ 3
i=3, 0 ≤ t ≤ 1 i=6, 3 ≤ t ≤ 4
P0
P1 P5 P4
0 1 2 3 4
t0 t1 t2 t3 t4 t5 t6 t7 t8 t9 t10
66
Lien avec les Béziers
P2 B-Spline nœuds uniformes
P3
B-Spline nœuds confondus
Bézier
P6
P0
P1 P4
P5
67
Rappel : interpolation
Interpolation (Aitkem)
P2
P3
P6
P0
P5
P1 P4
68
Fermeture d’une B-Spline
• Fermeture C0
– Premier point de contrôle = dernier point de contrôle
• Fermeture C1 / G1 (méthode 1)
– Alignement de P0, P1, P6
69
Fermeture d’une B-Spline
• Fermeture C1 / G1 (méthode 2)
– Ajout de 2 nœuds è deux points de plus
70
Conclusion sur les B-Splines
71
Surfaces paramétriques
Surface réglée
• Une surface est réglée si et seulement si par tout point il
passe au moins une droite entièrement contenue dans la
surface.
• On définit une surface réglée par deux courbes P1(u) et
P2(u) sur lesquelles s'appuient les droites de la surface.
• Exemples :
– Le cône est une surface réglée dont toutes les droites (appelées
directrices) sont concourantes au sommet.
Les directrices s'appuient sur le sommet et sur un cercle non
coplanaire avec le sommet.
– Le cylindre est une surface réglée dont toutes les droites sont
parallèles à l'axe.
• Un patch réglé est un morceau de surface réglée obtenu en
limitant les valeurs de u et v à des intervalles finis.
73
Surface réglée
74
Patch bilinéaire
• Un patch bilinéaire est un morceau de surface réglée telle que P0(u) et
P1(u) sont des segments de droites.
75
Carreaux de Coons bilinéaires
• Interpolation de courbes frontières à l’aide
d’opérateurs booléens
• On dispose de 4 courbes frontière à interpoler
: F(u,0)
– F(u,0) F(0,v)
– F(u,1)
– F(0,v) F(u,1)
– F(1,v) F(1,v)
u v
76
Carreaux de Coons bilinéaires
• Surfaces réglées s’appuyant sur les courbes frontières :
F(u,0)
P1F F(0,v) P2F
F(u,1)
F(1,v)
u v u v
P1P2F F(0,0)
F(1,0)
F(0,1)
78
Carreaux de Coons bilinéaires
• Le patch de Coons est obtenu en ajoutant les surfaces réglées
et en retranchant le patch bilinéaire
P1 Å P2 F
79
Carreau de Coons bicubiques
• En plus des 4 courbes frontière, on utilise les
dérivées le long de ces courbes :
– Fv(u,0)
– Fv(u,1)
– Fu(0,v)
– Fu(1,v)
• On remplace les fonctions de base (1-u, u, 1-v, v) par
les polygones cubiques d’Hermite :
– h03(t) = 2t3-3t2+1
– h02(t) = -2t3+3t2
– h01(t) = t3-2t2+t
– h00(t) = t3-t2
80
Carreau de Coons bicubiques
é F (0, v) ù
ê F (1, v) ú
[
P1 F (u, v) = h03 (u ) h13 (u ) h23 (u ) h33 (u ) ê]
ê Fu (0, v)ú
ú
ê ú
F
ë u (1, v ) û
éh03 (v)ù
ê 3 ú
h (v )
P1 F (u, v) = [F (u,0) F (u,1) Fv (u,0) Fv (u,1)] ê 13 ú
êh2 (v)ú
ê 3 ú
êëh3 (v)úû
é F( 0,0 ) F( 0,1 ) Fv( 0,0 ) Fv( 0,1 ) ù éh03 (v)ù
ê F( 1,0 ) F( 1,1 ) F ( 1,0 ) F ( 1,1 ) ú ê 3 ú
[
P1 P2 F (u, v) = h03 (u ) h13 (u ) h23 (u ) h33 (u ) ê ] v v ú êh1 (v)ú
ê Fu( 0,0 ) Fu( 0,1 ) Fuv( 0,0 ) Fuv( 0,1 )ú êh23 (v)ú
ê úê 3 ú
F
ë u ( 1,0 ) Fu ( 1,1 ) Fuv ( 1,0 ) Fuv ( 1,1 ) û êëh3 (v)úû
P1 Å P2 F = P1F + P2 F - P1P2 F
Eléments de torsion
(carré de Gregory)
81
Carreau de Coons bicubiques
• Eléments de torsion : carré de Grégory
¶ ¶
u Fu (0,0) + v Fv (0,0)
Fuv (0,0) = ¶v ¶u
u+v
¶ ¶
u Fu (0,1) + (1 - v) Fv (0,1)
Fuv (0,1) = ¶v ¶u
u + (1 - v)
¶ ¶
(1 - u ) Fu (1,0) + v Fv (1,0)
Fuv (1,0) = ¶v ¶u
(1 - u ) + v
¶ ¶
(1 - u ) Fu (1,1) + (1 - v) Fv (1,1)
Fuv (1,1) = ¶v ¶u
(1 - u ) + (1 - v)
82
Carreaux rectangulaires de Bézier
• Principe
– Soit une courbe C0
– Déformons C0 vers une nouvelle position C1
– Supposons que la déformation soit continue
– Chaque point C0(u) décrit une courbe Su(v) pour
arriver en C1(u)
83
Carreaux rectangulaires de Bézier
• Surface bicubique de Bézier 16 points de contrôle Pij
4 points Mk(t) sur les courbes
cubiques de Bézier définies
par Pkj
Le point N(t,s) sur la courbe
de Bézier définie par les 4
points Mk(t) précédents
84
Carreaux rectangulaires de Bézier
• Produit tensoriel à partir des polygones de Bernstein
m n
• Forme explicite : P(u, v) = åå Pi , j Bim (u ) B nj (v)
i =0 j =0
• Forme matricielle :
é P00 " P0 n ù é B0 (v)ù
n
[ ê
P(u, v) = B0 (u ) " Bm (u ) ê !
m m
] ú ê
! úê ! ú
ú
85
Carreaux rectangulaires de Bézier
• Exemple avec 16 points de contrôle
86
Carreaux rectangulaires de Bézier
• Propriétés : les mêmes que pour les courbes
• Perte de convexité :
87
Calcul d’un point
• Interpolation bilinéaire de 4 points
P0,0, P0,1, P1,0 et P1,1
P0 ,1 P1,1
ìP00,0,1 = (1 - v) P0,0 + vP0,1
P00,0,1 P10,0,1 í 0,1
P01,,01 î P1,0 = (1 - v) P1,0 + vP1,1
P01,,01 = (1 - u)vP00,0,1 + uvP10,0,1
P0, 0 P1, 0
P01,,01 = (1 - u)(1 - v) P0,0 + (1 - u)vP0,1 + u(1 - v) P1,0 + uvP1,1
é P0,0 P0,1 ù é1 - vù
P(u, v) = [1 - u u ] ê
ë P1,0 P1,1 úû êë v úû
88
Algorithme de De Casteljau
• Pour m=n
ì Pi ,0j, 0 (u , v) = Pi , j
ï
í r ,r é P r -1, r -1
Pi ,rj-+11,r -1 ù é1 - v ù
P (u , v ) = [1 - u u ] i, j
ê r -1,r -1 r -1, r -1 ú ê
ï i, j
î êë Pi +1, j Pi +1, j +1 úû ë v úû
89
Algorithme
P P
de De Casteljau
0,3 1, 3
P2,3
P01,,21
P11, 2,1 P3,3
P21,,21
P1, 2 P03,0,3
P0, 2
v P02,1, 2 P2, 2
1,1 P1,21, 2 P3, 2
P 0,1
P1,1 P11,1,1 P21,,11
P0 ,1
P02, 0, 2 P2 ,1
P1,20, 2 P3,1
P01,,01
P11,0,1
P0, 0
P21,,01
u P1, 0
P2, 0 90 P3, 0
Algorithme de De Casteljau
début
pour i de 0 à n
pour j de 0 à n
Pi ,0j,0 = Pi , j
finpour
finpour
pour r de 1 à n
pour i de 0 à n-r
pour j de 0 à n-r
Pi ,rj,r = (1 - u )(1 - v) Pi ,rj-1,r -1 + (1 - u )vPi ,rj-+11,r -1
+ u (1 - v) Pi +r 1-,1j,r -1 + uvPi +r 1-,1j,r+-11
finpour
finpour A la fin,
finpour
fin P(u, v) = P0n,0,n
91
Algorithme de De Casteljau
P1, 2
P0, 2 P2, 2
• Pour m≠n P11,1,1 P3, 2
k = min(m,n) P 1,1
0,1
P21,,11
P0 ,1 P02, 0, 2
P1,20, 2 P3,1
v
P01,,01
P11,0,1
P0, 0 P21,,01
u P1, 0
P2, 0 P3, 0
Pi ,kj,k
forme un polygone de contrôle d’une courbe de Bézier
On applique l’algorithme à une variable de De Casteljau
92
Raccordement de carreaux
93
Raccordement de carreaux
94
NURBS
• Non Uniform Rational B-Splines
• Objectif : représenter sous un même formalisme
– les courbes et surfaces de forme libre
– des primitives :
• cercles
• coniques (paraboles, hyperboles…)
• quadriques (cylindres, sphères, cônes…)
• …
• NURBS : implémentation de courbes et surfaces
paramétriques OpenGL
95
NURBS
96
NURBS
• Les surfaces NURBS s'obtiennent par extension de la
définition des courbes NURBS :
– deux vecteurs de nœuds T et S, un pour chacune des
variables t et s,
– (m+1) x (n+1) points de contrôle Pi,k
– (m+1) x (n+1) fonctions de pondération Rm,n.i,k déduites des
fonctions de pondération des B-splines Sm,k au moyen de
(m+1) x (n+1) poids wi,k :
wi ,k S m,i (t ) S n,k ( s)
Rm,n,i ,k (t ) =
åw j ,l S m, j (t ) S n,l ( s) N (t , s) = å Rm,n,i ,k (t ) Pi ,k
j ,l i ,k
97
NURBS
• Exemple OpenGL / GLU
99
PN triangles
• Principe
– Une surface construite à partir de 3 sommets et
de leurs 3 normales
– La surface « la plus simple » : pas de données
supplémentaires (triangles voisins…)
– Résultat : on « tire » la surface vers les plans
tangents
• Détails : Curved PN triangles, A. Vlachos, J.
Peters, C. Boyd, J.-L. Mitchell, 2001
100
PN triangles
• Principe
– Construction de 9 points de contrôle à partir des 3
sommets et de leurs normales
– La surface est définie par un polynôme de degré 3
s’appuyant sur les points de contrôle
– L’évaluation d’un point de la surface (pour une
valeur des paramètres u, v et w) fournit un point
de la surface
101
PN triangles
• Construction des points de contrôle
– À partir d’un sommet, de sa normale et d’une arête
– Projette un point de l’arête sur le plan tangent
102
PN triangles
• Evaluation de polynôme
– p(u,v)w=1-u-v = b300w3 + b030u3 + b003v3
+ b2013w2u + b1203wu2 + b2013w2v
+ b0213u2v + b1023wv2 + b0123uv2
+ b1116wuv
103
PN triangles
• Evaluation des points de la surface
– Domaine paramétrique (u, v, w)
– Contraintes :
• u+v+w=1
• 0 £ u £ 1 et 0 £ v £ 1 et w = 1 – u – v
• Rappel
– On peut évaluer les points d’un triangle abc de la
même manière : p(u, v)w=1-u-v = wA + uB + vC
104
PN triangles
• Domaine paramétrique
– p(0,0,1) = A
– p(1,0,0) = B
– p(0,1,0) = C
C C
C v=1
w=0 u=1
w=1 B u=0
A A B A v=0 B
• Exercices
– Quelles sont les valeurs de u et v pour le milieu du triangle ?
– Quelle position (x, y, z) correspond au milieu du triangle ?
– Mêmes questions pour le milieu de chaque arête du triangle
105
PN triangles
106
PN triangles
107
Seconde partie
Courbes et surfaces de
subdivision
Surfaces paramétriques
• Carreaux de Bézier, B-splines, NURBS...
• Avantages
– Modélisation par carreau type couture
– Chaque carreau est défini par un polygone de contrôle
• Difficultés
– contrôle des connexions entre carreaux
– ajuster la surface à un polygone de contrôle quelconque
109
Surfaces de subdivision
110
1ère utilisation
• Geri’s Game (1998) : Pixar Animation Studios
111
Principe
P0,0 P0,1 P0,2
112
Principe
1 6 1
P0,0 P0,1 P0,2
6 36 6
1 6 1
P1,0 P1,1 P1,2
Q 1 6 1
Q= P0,0 + P0,1 + P0, 2
64 64 64
6 36 6
P2,0 P2,1 P2,2 + P1,0 + P1,1 + P1, 2
64 64 64
1 6 1
+ P2, 0 + P2,1 + P2, 2
64 64 64
1. Chaque sommet Pi,j est déplacé
La nouvelle position Q dépend - de Pi,j
- de ses voisins
113
è notion de masque
Principe
4 4
P0,0 P0,1 P0,2
24 24
4 4
P1,0 P1,1 P1,2
R
R = 4 P0,0 + 4 P0,1
64 64
P2,0 P2,1 P2,2 24 24
+ P1,0 + P1,1
64 64
4 4
+ P2,0 + P2,1
2. De nouveaux points sont insérés 64 64
a. sur chaque arête
114
Principe
16 16
P0,0 P0,1 P0,2
16 16
S
P1,0 P1,1 P1,2
S = 16 P0, 0 + 16 P0,1
64 64
P2,2 16 16
+ P1, 0 + P1,1
64 64
115
Principe
116
Principe
64
64
32
64
32
8 48 8 64
64 64 64
Masques spécifiques pour les bords
117
Principe
Catmull-Clark
(grille rectangulaire)
119
Courbes de subdivision
Principe
• Courbe limite à partir d'un carré
Chaque arête est coupée en 2
Courbe limite
121
B-Splines uniformes
(rappel)
• Courbes B-Splines uniformes
é P0 ù
P(t ) = [t n t n -1 " 1] M êê ! úú
êë Pn úû
123
B-Splines uniformes quadratiques
• 1ère moité de la courbe
2 é 1 - 2 1ù é P0 ù
ætö ætö t
P[ 0,1/ 2 ] (t ) = Pç ÷ = [ç ÷ 1] êê- 2 2 0úú êê P1 úú
è2ø è2ø 2
êë 1 0 0úû êë P2 úû
é1 0 0 ù é P0 ù é 1 - 2 1ù
= [t 2 t 1] êê0 1 / 2 0 úú M êê P1 úú avec M = êê- 2 2 0úú
êë0 0 1 / 4úû êë P2 úû êë 1 0 0úû
é1 0 0 ù é P0 ù
= [t 2 t 1]MM -1 êê0 1 / 2 0 úú M êê P1 úú
êë0 0 1 / 4úû êë P2 úû
æ é1 0 0 ù ö é P0 ù
ç -1 ê ú ÷ê ú
= [t t 1]M ç M ê0 1 / 2 0 ú M ÷ ê P1 ú
2
ç êë0 0 1 / 4úû ÷ø êë P2 úû
è
éQ0 ù éQ0 ù æ é1 0 0 ù ö é P0 ù é3 1 0ù é P0 ù é3P0 + P1 ù
ç -1 ê ÷ê ú 1 ê 1ê
= [t 2 t 1]M êê Q1 úú avec ê Q1 ú = ç M ê0 1 / 2 0 ú M ÷ ê P1 ú = ê1 3 0ú ê P1 ú = ê P0 + 3P1 úú
ê ú ú ú ê ú
4 4
êëQ2 úû êëQ2 úû çè êë0 0 1 / 4úû ÷ø êë P2 úû êë0 3 1úû êë P2 úû êë3P1 + P2 úû
124
B-Splines uniformes quadratiques
• 1ère moitié de la courbe 2ème moitié de la courbe
é P0L ù é P0R ù
ê ú ê ú
P L (t ) = [t 2 t 1]M ê P1L ú P R (t ) = [t 2 t 1]M ê P1R ú
ê P2L ú ê P2R ú
ë û ë û
é P0L ù é3 1 0ù é P0 ù é3P0 + P1 ù é P0R ù é1 3 0ù é P0 ù é P0 + 3P1 ù
ê Lú 1 ê ú ê P ú = 1 ê P + 3P ú ê Rú 1 ê ú ê P ú = 1 ê3P + P ú
P
ê 1 ú 4ê= 1 3 0 ú ê 1ú 4 ê 0 1ú P
ê 1 ú 4ê= 0 3 1 ú ê 1ú 4 ê 1 2ú
ê P2L ú êë0 3 1úû êë P2 úû êë3P1 + P2 úû ê P2R ú êë0 1 3úû êë P2 úû êë P1 + 3P2 úû
ë û ë û
125
B-Splines uniformes quadratiques
é P0L ù é3 1 0ù é P0 ù é P0R ù é1 3 0ù é P0 ù
• On regroupe ê Lú 1 ê
P = 1 3 0 ú êP ú ê Rú 1 ê
P = 0 3 1 ú êP ú
ê ú 4ê
1 ú ê 1ú ê ú 4ê
1 ú ê 1ú
ê P2L ú êë0 3 1úû êë P2 úû ê P2R ú êë0 1 3úû êë P2 úû
ë û ë û
à algorithme de Chaikin
éQ0 ù é3 1 0ù é3P0 + P1 ù
êQ ú é 0ù
P
1
ê 1ú = ê
ê1 3 0úú ê ú 1 êê P0 + 3P1 úú
ê P1 ú =
êQ2 ú 4 ê0 3 1ú 4 ê3P1 + P2 ú
ê ú ê ú êë P2 úû ê ú
Q
ë 3û ë0 1 3û P
ë 1 + 3 P2û
126
Schéma de Chaikin
• Encore appelé corner-cutting
éQ0 ù é3 1 0ù é3P0 + P1 ù é3 1 ù
êQ ú é 0ù
P
1
ê 1ú = ê
ê1 3 0úú ê ú 1 êê P0 + 3P1 úú P + P
éQ2i ù ê 4 i 4 i +1 ú
êQ2 ú 4 ê0 3 1ú ê P1 ú =
4 ê3P1 + P2 ú
à êQ ú = ê 1 3 ú
ë 2i +1 û ê Pi + Pi +1 ú
ê ú ê ú êë P2 úû ê ú ë4 4 û
Q
ë 3û ë0 1 3û P
ë 1 + 3 P2û
Pi-1 Pi+1
Q2i-2 Q2i+1
Q2i-1
Q2i
Pi
127
Schéma de Chaikin
( Pi ) 0£i £ n -1 ® (Q j ) 0£ j £ 2 n -3
• Schéma régulier approximant
ì Q2i = aPi + (1 - a) Pi +1 3 1
Pour 0 £ i £ n-2 í avec a = et b =
îQ2i +1 = bPi + (1 - b) Pi +1 4 4
128
Schéma de Catmull-Clark
( Pi ) 0£i £ n -1 ® (Q j ) 0£ j £ 2 n - 4
• Schéma régulier approximant
ì 1 1
ï Pour 0 £ i £ n-1 Q2i = 2 Pi + 2 Pi +1
í 1 6 1
ï Pour 0 £ i £ n-2 Q2i +1 = Pi + Pi +1 + Pi + 2
î 8 8 8
Pi-1 Pi+1
Q2i-2
Q2i+1
Q2i-1
Q2i
Pi
129
Schéma de Catmull-Clark
( Pi ) 0£i £ n -1 ® (Q j ) 0£ j £ 2 n - 4
• Schéma régulier approximant
ì 1 1
ï Pour 0 £ i £ n-1 Q2i = 2 Pi + 2 Pi +1
í 1 6 1
ï Pour 0 £ i £ n-2 Q2i +1 = Pi + Pi +1 + Pi + 2
î 8 8 8
130
Four points scheme
( Pi ) 0£i £ n -1 ® (Q j ) 0£ j £ 2 n - 2
• Schéma régulier interpolant
ì Pour 0 £ i £ n-1 Q2i = Pi
ï
í Pour 1 £ i £ n-3 Q = - 1 P + 9 P + 9 P - 1 P
ïî 2 i +1
16
i -1
16
i
16
i +1
16
i+2
ì 3 6 1
ïQ1 = 8 P0 + 8 P1 - 8 P2
Conditions aux bords í
1 6 3
ïQ2 n -3 = - Pn -3 + Pn - 2 + Pn -1
î 8 8 8
131
Four points scheme
( Pi ) 0£i £ n -1 ® (Q j ) 0£ j £ 2 n - 2
• Schéma régulier interpolant
ìPour 0 £ i £ n-1 Q2i = Pi
ï
íPour 1 £ i £ n-3 Q = - 1 P + 9 P + 9 P - 1 P
ïî 2i +1
16
i -1
16
i
16
i +1
16
i+2
Q2i-1
Q2i+1
Q2i
Pi
132
Four points scheme
( Pi ) 0£i £ n -1 ® (Q j ) 0£ j £ 2 n - 2
• Schéma régulier interpolant
ìPour 0 £ i £ n-1 Q2i = Pi
ï
íPour 1 £ i £ n-3 Q = - 1 P + 9 P + 9 P - 1 P
ïî 2i +1
16
i -1
16
i
16
i +1
16
i+2
133
Four points scheme
• Problèmes d'oscillation
Q2i+1
1/3
Pi Pi+1 Q2i Q2i+2
1/2
135
Fractale
flocon de Von Koch
( Pi ) 0£i £ n -1 ® (Q j ) 0£ j £ 4 n - 4
• Schéma fractal interpolant
ì Pour 0 £ i £ n-1 Q4i = Pi
ï ì 1
ï ïQ4i +1 = 3 (2 Pi + Pi +1 )
ïï ï
í Pour 0 £ i £ n-2 ïQ = 1 ( P + P ) + 5 N ( P - P )
ï í 4i + 2 i i +1 i +1 i
ï 2 6
ï 1
ï ï Q4i +3 = ( Pi + 2 Pi +1 )
ïî ïî 3
avec pour un point P = (x,y) , N(P) = ( - y,x) Q4i+2
Pi Pi+1 Q4i Q4(i+1)
Q4i+1 Q4i+3
136
Surfaces de subdivision
(loop)
Schémas principaux
Doo-Sabin Û Surface B-Spline quadratique uniforme
approximant (équivalent aux courbes de Chaikin)
maillages de quadrilatères ou quelconques
Butterfly
interpolant
maillages triangulaires 138
Schémas principaux
Doo-Sabin Catmull-Clark Loop Butterfly
139
Schéma de Doo-Sabin
• Malcolm A. Sabin (11/2008)
140
Schéma de Doo-Sabin
• Principe du corner cutting (Chaikin)
• Schéma approximant (ne passe pas par les sommets
originaux)
• Fonctionne sur des maillages quelconques
• Surface B-Spline Quadratique
• C1 continue
• Après 1 subdivision :
– tous les sommets sont de valence 4
141
Doo-Sabin pour les maillages quadrangulaires réguliers
P0,0 P0,1 1
P0',0 = (9 P0,0 + 3P0,1 + 3P1,0 + P1,1 )
P0,2 16
1
P0',1 = (3P0, 0 + 9 P0,1 + P1,0 + 3P1,1 )
16
P1,0
P1,2 1
P1',0 = (3P0, 0 + P0,1 + 9 P1,0 + 3P1,1 )
16
P2,0 P2,2 1
P2,1 P1,1 = ( P0,0 + 3P0,1 + 3P1,0 + 9 P1,1 )
'
16
143
Doo-Sabin pour les maillages quadrangulaires réguliers
144
Doo-Sabin pour les maillages quelconques
• Autre formulation
1
E0 = ( P0, 0 + P1,0 ) E1
2 P0,0
1
E1 = ( P0, 0 + P0,1 ) P0,1
2
P’
1
F = ( P0, 0 + P0,1 + P1, 0 + P1,1 ) E0 F
4
1
P' = ( P0,0 + E0 + E1 + F )
4 P1,0 P1,1
1 1 1 1
= ( P0,0 + ( P0,0 + P1,0 ) + ( P0,0 + P0,1 ) + ( P0,0 + P0,1 + P1,0 + P1,1 ))
4 2 2 4
1 4 2 2 2 2 1 1 1 1
= ( P0,0 + P0,0 + P1,0 + P0,0 + P0,1 + P0,0 + P0,1 + P1,0 + P1,1 )
4 4 4 4 4 4 4 4 4 4
1
= (9 P0,0 + 3P1,0 + 3P0,1 + P1,1 )
16
145
Doo-Sabin pour les maillages quelconques
147
Schéma de Catmull-Clark
1 n
Face f = å vi
n 1
v1 + v2 + f1 + f 2
Arête
e=
4
n-2 1 1
Sommet vi +1 =
n
vi + 2
n
å e j + n2 åf j
j j
148
Catmull-Clark
Gestion des arêtes vives
Arête v1 + v2
e=
2
Nombre d’arêtes
Sommet vives adjacentes
pointe >2 vi +1 = vi
e1 + 6vi + e2
angle =2 vi +1 =
8
n-2 1 1
coin 0,1 vi +1 =
n
vi + 2
n
åj e j + n 2 åf
j
j
150
Doo-Sabin
vs Catmull-Clark
Doo-Sabin
Catmull-Clark
151
Doo-Sabin
vs Catmull-Clark
Doo-Sabin
Catmull-Clark
152
Schéma de Loop
• Schéma approximant
• Fonctionne sur maillages triangulaires quelconques
• Surface Box-Spline quadrique
• G1 continuité, sauf aux points extraordinaires
• Simple à mettre on œuvre
– 2 masques pour les sommets internes
– 2 masques pour les sommets du bord
153
1
8 Loop
Masques de subdivision
3 3
8 8
1
8
an an
n n
an an
n n
an 1-an
an
n
n
1 æç ö
2
æ æ 2p öö ÷
an = 40 - çç 3 + 2 cosç ÷ ÷÷
64 çè è è n øø ÷
ø
154
Loop
Masques pour les bords
1 1 1 6 1
2 2 8 8 8
155
Schéma de Loop
156
Schéma Butterfly
• Schéma interpolant
• Fonctionne sur maillages triangulaires quelconques
• Simple à mettre en œuvre
– 3 masques
157
Schéma Butterfly
158
Schéma Mid-edge
Masque d’arête
1 1
2 2
Puis relier entre eux chaque paire de nouveaux sommets
adjacents à un même ancien sommet
159
Schéma Racine de trois
– un sommet est ajouté au centre de chaque triangle
– chaque triangle est coupé en 3
– les anciennes arêtes internes sont "basculées"
160
Seconde partie
• Rappels
– Définies par une équation implicite
S = { P (x,y,z) / f(x,y,z) = iso } N
162
Surfaces implicites
• Visualisation par marching cubes
– intersection de la surface implicite avec un cube
à on obtient 0, 1 ou plusieurs polygones
– 256 configurations de polygones possibles
– 14 cas possibles à symétrie et réflexivité près
163
Surfaces implicites
• Visualisation par marching cubes
– On échantillonne l’espace à voxels
– On calcule l’intersection de chaque voxel avec la
surface
– On assemble les polygones obtenus
164
Surfaces implicites
• Visualisation par lancer de rayon : intersection
rayon/surface
– analytique
• si on sait résoudre l’équation de l’intersection rayon /
surface
– dichotomique
• nécessité d’échantillonner le rayon
– lancer de sphères
• nécessité de connaître la distance à la surface
165
Surfaces implicites
• Visualisation par lancer de sphères
– Sphere tracing: a geometric method for the
antialiased ray tracing of implicit surfaces, John C.
Hart, The Visual Computer, 1996
– On doit connaître
• Pour une surface A, la fonction fA(P) qui donne la
distance minimale entre tout point P et A
• Pour une surface A, la valeur DA qui est la distance de
traversement maximale depuis l’origine du rayon
166
Surfaces implicites
• Visualisation par lancer de sphères
167
Surfaces implicites
• Visualisation par lancer de sphères
– Les fonctions de distances sont connues pour les
surfaces classiques
– Avec une liste d’objets
• La distance à cette liste et la plus petite des distance à
chaque objet
• On lance donc un seul rayon par pixel, et on itère en
progressant de cette distance
168
Surfaces implicites
• Visualisation par lancer de sphères
169
Objets construits par opérations
booléennes
• Opérations booléennes :
((A È B) – C) Ç D
– union,
– intersection, (A È B) \ C
– différence
AÈB
D
C
A B
170
Géométrie constructive CSG
• Représentation des objets par un arbre de construction
– les feuilles :
• représentation volumique d’objets simples ou paramétrés
– les noeuds :
• opérations booléennes (régularisées)
• transformations affines
• opérations d’extrusion
• Passage CSG ð B-Rep
– évaluation du bord des objets
• Passage B-Rep ð CSG
– opérations booléennes sur des objets définis par leur bord
171
CSG
• Lancer de sphères
– Soient A et B deux surfaces implicites et fA et fB
les fonctions de distance signées
• La distance est négative si le point P est à l’intérieur de
l’objet
• Les objets sont donc forcément fermés et orientables
– On détermine les fonctions booléennes en
combinant les fonctions de distance
172
CSG
• Lancer de sphères
– L’union de A et B est calculée par lancer de sphère
avec la fonction de distance
d(P, A È B) = min(fA(P), fB(P))
173
CSG
• Lancer de sphères
– L’intersection de A et B est calculée par lancer de
sphère avec la fonction de distance
d(P, A Ç B) = max(fA(P), fB(P))
174
CSG
• Lancer de sphères
– Le complémentaire de A dans R3 est calculé par
lancer de sphère avec la fonction de distance
d(P, R3 \ A) = − fA(P)
175
CSG
• Lancer de sphères
– La différence de A et B est calculée par lancer de
sphère avec la fonction de distance
d(P, A − B) = d(A Ç R3 \ B) = max(fA(P), −fB(P))
176