Modélisation Géométrique
• Comment modéliser les objets du monde réel avec la géométrie euclidienne
• représentation virtuelle d’objet dans ses 3 dimensions
• Reconstruction– à partir d’un objet réel,
– données issues d’un système de saisie
Modélisation : contraintes
• On veut pouvoir• Manipuler les objets• Modification interactive• l’utilisateur peut « voir » la courbe (points de contrôle)• fonctions numériquement stables• Combiner 2 objets simples => objet complexe• Que ce soit rapide et peu coûteux en mémoire
• Modélisation procédurale• automatisation de la création
• Historiquement les premiers modèles sont bidimensionnels• réalisation de plan• peu adapté à des objets complexes
• 3D• Industrie aéronautique, automobile,...• Infographie
• Modèle fil de fer (historiquement le premier)• On ne retient que les coordonnées (X,Y,Z) des sommets et les arêtes• conduit à des ambiguïtés
– Elimination des parties cachées
• Peut donner des solides sans sens physique
• Modèle surfacique• Maillage: ensemble de polygones connectés (triangles)• Surfaces implicites• Surfaces paramétriques
– Représentation par subdivisions successives
• Modèle volumique
Modélisation 3D
Surfaces implicites
• S= ensemble des points P(x,y,z) tel que f(x,y,z)=m– équation analytique
• Metaballs– iso-surface de champs de potentiels
– définition d’un métaball i• Ri rayon d ’influence
• fi(r) fonction de champ
• r distance d’un point au centre pi
– modélisation de surfaces organiques
– objets déformables
Courbes et surfaces paramétriques
• Courbes et surfaces de formes libres– définies à partir de points de contrôle
– modification interactive
– indépendance des axes
• Courbes de Bézier
• Courbes B-splines
• Transformation B-spline -> Bézier
• NURBS
• Surfaces de Bézier
• Surfaces B-splines
• Contraintes au niveau du concepteur• à partir de points de contrôle
• fonctions simples et numériquement stables polynômes
• contrôle local ou global par morceaux?
• propriété de « variation décroissante »
• Interpolation polynomiale de points de mesure:• globale ou par morceaux ?
– La plus simple: linéaire par morceaux
– Plus « lisse » : cubique par morceaux
– Problème de raccordements:• Fonction continue
• Dérivée continue
Courbes paramétriques
Méthodes globales
• Interpolation de Lagrange• n points , n conditions -> polynôme de degré n-1
• Interpolation d’Hermite • en chaque point: valeur de la fonction + de la dérivée
• Inconvénients en CAO• Trop de calculs, résolution de systèmes linéaires
• Résultats parfois mauvais: trop d’ondulations
• Modification d’un point?
• Modèle mathématique de la latte des dessinateurs (1950)
– solution de:
– On l’appelle spline cubique naturelle s de noeuds x1,....xn
on l’obtient par résolution d’un système linéaire tridiagonal,
n inconnues s’(xi)
Fonction spline cubique d’interpolation
€
minv∈H 2
(v ' ')2∫ avec v(x i) = y i
€
(i) s ∈ C2 a,b[ ]
(ii) sx i,x i+1[ ]
∈ P 3, i =1 à n −1
(iii) s"(x1) = 0 et s"(xn ) = 0
Spline cubique d’interpolation (suite)
• Inconvénients:– Calculs longs– Modifications pas complètement locales
– Ondulations
• Splines sous-tension• on tire en chaque point =>
=>Points de « passage » deviennent des points de contrôle
Approximation
• Définition– À partir des n points P1,...Pn, la courbe d’approximation est définie par :
où i,k(t) pour i =1 à n sont les fonctions de base et t le paramètre
• Pour obtenir une bonne approximation, les fonctions de base doivent:• être à support le plus local possible
• le plus lisse possible
• en tout point
• Approximations classiques• si les i,k(t) sont les polynômes de Bernstein => approximation de Bézier
• si les i,k(t) sont les B-splines d’ordre k => approximation B-spline €
ϕ i,k (t) =1i
∑
€
P(t) = Pi
i=1
i= n
∑ ϕ i,k (t)
Courbes de Bézier
• Représentation par polygone de contrôle• n+1 points ordonnés P0,...Pn. La courbe de Bézier est définie par:
Les fonctions de bases Bi,n(t) sont les polynômes de Bernstein
– Le degré dépend du nombre de points de contrôle– contenue dans l’enveloppe convexe
– à variation décroissante
€
P(t) = Pi
i= 0
i= n
∑ Bi,n (t) où Bi,n (t) = Cin t i(1− t)n−i
p0
p1
p2
p3
p0
p1
p2
p3
p0
p1
p2
p3
Courbes de Bézier
• k=3
• Forme matricielle€
B0,3(t) = −t 3 + 3t 2 − 3t +1
B1,3(t) = 3t 3 − 6t 2 + 3t
B2,3(t) = −3t 3 + 3t 2
B3,3(t) = t 3
€
P(t) = t 3 t 2 t 1[ ]
−1 3 −3 1
3 −6 3 0
−3 3 0 0
1 0 0 0
⎡
⎣
⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥
P0
P1
P2
P3
⎡
⎣
⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥
Courbes de Bézier
• Propriétés de la courbe– passe par le 1er et le dernier point
– tangente au premier segment et au dernier• les tangentes aux extrémités sont connues
– Forme « prévue »
– Modification d’un point• difficile quand n est « grand »€
dP(0)
dt= n(P1 − P0)
dP(1)
dt= n(Pn − Pn−1)
• Algorithme de De Casteljau: construction géométrique d’un point de la courbe
Exemple pour 4 points de contrôle et t = 2/302p
01p
01p
00p
€
P0
P1 P01
P2 P11 P0
2
P3 P21 P1
2 P03
Courbe de Bézier -suite
€
Pir(t) = (1− t)Pi
r−1(t) + tPi+1r−1(t)
pour r =1,...n
i = 0,...n − r
⎧ ⎨ ⎩
avec Pi0(t) = Pi
€
p02
€
p12
€
p03
• Juxtaposition de courbes de Bézier simples définies par les polygones de contrôle– Raccordement C0
– Raccordement C1
• Bézier cubique définie à partir de 2 points et de la dérivée en chaque extrémité, direction et longueur
• Dans les logiciels courants: manipulation par « poignées »
Courbes de Bézier composites
• DéfinitionSoient ti, t1<t2<....<tM-1<tM une subdivision de M nœuds.
Une B-spline d’ordre k associée à cette subdivision vérifie:
1. c’est un polynôme de degré k-1 sur chaque intervalle [ti ,ti+1]
2. la fonction est Ck-2 sur [t1 ,tM]
3. à support minimal
• Les B-splines vérifient une relation de récurrence:
=> , sur k intervalles
Base de B-spline
€
N i,k (t) ≠ 0 pour t ∈ ti, ti+k[ ]
€
N i,1(t) = 1 si ti ≤ t < ti+1
0 sinon
⎧ ⎨ ⎩
N i,k (t) =t − ti
ti+k−1 − ti
N i,k−1(t) +ti+k − t
ti+k − ti+1
N i+1,k−1(t)
Fonction B-splines N4,2(t) (ordre 2, degré 1)
N3,4(t)
t1 t2 t3 t4 t5 t6 t7 t8
Fonctions B-splines cubiques uniformes Ni,4 (t)
Approximation B-spline
• Approximation:• on se donne N points ordonnés P1,...PN
• on choisit un ordre k (degré k-1)
• et une subdivision t1 ≤ t2 ≤ .... ≤ tN+k-1 ≤ tN+k
L’approximation est définie par
• Influence de l’ordre
€
P(t) = Pi
i=1
i= N
∑ N i,k (t)
• Propriétés des B-splines
=> Propriétés de l’approximation– Variation décroissante– Contenu dans l’enveloppe convexe
courbe spline quadratique cubique
• Influence d’un point de contrôle• Influence du paramétrage
Courbes B-splines (suite)
€
a) N i,k (t) ≥ 0 positivité
b) N i,k (t) = 0 si t ∉ ti, ti+k[ ]
c) N i,k (t) est maximum au point (ti + ti+1 + ...ti+k ) /(k +1)
d) les B- splines sont "normées" N i,ki∑ (t) =1
• algorithme de De Boor : relation de récurrence– Exemple pour k=4 (cubique), soit t [tj ,tj+1]
• subdivision uniforme
tj tj+1
Valeur en un point: Algorithme de De Boor
Q5
€
Pj−3
Pj−2 Pj−21
Pj−1 Pj−11 Pj−1
2
Pj Pj1 Pj
2 Pj3
Pi
m = (1−α im )Pi−1
m−1 + α imPi
m−1
avec α im =
t − ti
ti+4−m − ti
Nj-3 Nj-2 Nj-1 Nj
j=4 =>Q4
j=3 =>Q3
j=5 =>Q5
j=6 =>Q6
Q3
Q4p3
p0
p1
p2
p4
p5
p6Q6
• insertion d’un nœud tj<t’<tj+1– la nouvelle courbe est définie par le nouveau polygone de contrôle
P1, P2,.... P8 => P’1, P’2 ,.... P’13
en introduisant 5 nœuds
entre tj et tj+1 pour j=4 à 8
Exemple: j=6 , t’=1/2(t6+t7)
Tracé par subdivision du polygone de contrôle
€
P(t) = Pi 'N i,k
i=1
i= n +1
∑ (t)
où P1'= P1, Pn +1'= Pn et Pi' = (1− ai )Pi−1 + ai Pi
avec ai =
1 i = 2,...j − k +1 t'−ti
ti+k−1 − ti
i = j − k + 2,...j
0 i = j +1,...n
⎧
⎨ ⎪ ⎪
⎩ ⎪ ⎪
P3
P2
P6P5
P4
P7
P8
P1 P’4
P’5
P’6
B-splines à nœuds multiples
• Nœuds multiples: suite de nœuds non décroissantes
t={... t-1,t0,t1,t2,...}• on généralise la définition des B-splines avec la relation de récurrence (0/0=0)
• si i l’ordre de multiplicité du nœud ti
=> la continuité de la B-spline Ni,k d’ordre k en ti est k- i-1
B-spline quadratique
• Approximation « non uniforme »
• Courbe ouverte ou fermée
• Exemple : k=4 (cubique) et nœuds d’ordre 4 aux extrémités
t1=t3=t3=t4 t5 t6 t7 t8 t9 tN+1=tN+2=tN+3=tN+4
• Approximation par des quadratiques et des cubiques• passe par le premier et le dernier point
• tangente aux segments extrémités
k fois k fois
• insertion de nœuds jusqu’à multiplicité k-1 des nœuds (k ordre de la base)
Points de Bézier d’une spline cubique
Transformation B-spline vers Bézier
€
t'= t6 ∈ t6, t7[ [
Les courbes NURBS
• NURBS: Non Uniform Rational B-splines– A l’origine faites pour une représentation exacte des coniques
– A chaque point de contrôle Pi on associe un poids i
– La courbe NURBS est définie par:
– plus de degrés de liberté
– les poids peuvent être positifs ou négatifs€
P(t) =
PiωiN i,k (t)i= 0
i= n
∑
ωiN i,k (t)i= 0
i= n
∑
• Dans la pratique, souvent 3 points de contrôles P0 , P1 et P2
– B-splines quadratiques N0,2 , N1,2 et N2,2
– des nœuds multiples aux extrémités t0 = t1 = t2 < t3= t4 = t5
– avec 0 = 2 =1 et 1 variable
– Courbe complémentaire obtenue avec -1
Les courbes NURBS (suite)
€
P(t) =P0ω0N0,2(t) + P1ω1N1,2(t) + P2ω2N2,2(t)
ω0N0,2(t) + ω1N1,2(t) + ω2N2,2(t)
• Produit tensoriel– 2 paramètres u et v– Réseau de points de contrôle Pi,j
– Surface de Bézier:
• Propriétés :– les frontières du carreau sont les courbes de Bézier – la surface appartient à l’enveloppe convexe,
définie par (n+1)(m+1) points de contrôle Pi,j – variation décroissante
Carreaux de Bézier
€
P(u,v) = Pi, jBi,n
j= 0
j= m
∑i= 0
i= n
∑ (u)B j,m (v)
Recollement des surfaces de Bézier
• soit 2 surfaces : Q définie par qij, R définie par rij
– continuité d’ordre zéro• q3i=r0i, i=0 à 3
– continuité d’ordre un: • alignement des tangentes
• q3i-q2i= k(r1i -r0i), i=0 à 3
Jonction des surfaces
autre possibilité : tangentes coplanaires
• Subdivision localeméthode de Clark:
subdivisions indépendantes
de surfaces adjacentes
))(()(
)(3
2)2(
3
1)(
)(3
1)2(
3
1)(
)()(
32331023330313
31321313233022320212
30311303132021310111
3031020300010
qqssqqkrr
qqsqqqsqqkrr
qqsqqqsqqkrr
qqsqqkrr
−++−=−
−+−−+−=−
−+−−+−=−
−+−=−
• rendu de surfaces– calcul des normales à partir des tangentes
– subdivision récursive en u et/ou en v (méthode de De Casteljau)
– problème ramené aux courbes
⎟⎠
⎞⎜⎝
⎛= ∑∑
==
)()(),(3
0
3
0
uBpuBvuQ ii
ijj
j
• Produit tensoriel– 2 paramètres u et v– Réseau de points de contrôle Pi,j
– Surface B-spline :
Surfaces B-splines
€
P(u,v) = Pi, jN i,k
j= 0
j= m
∑i= 0
i= n
∑ (u)N j,p (v)
Surfaces splines
(1) (2) (3) (4) (5)
Construction Construction Union des vecteurs Reconstruction Résultat
des courbes en u des courbes en v
• Même propriétés que les courbes splines– la surface appartient à l’enveloppe convexe
– variation décroissante
– algorithmes de calcul rapides
• «Calcul» de la surface par subdivision du réseau de contrôle– algorithme de Catmull et Clark (surface biquadratique)
€
Qi' j '
Qi' j '+1
Qi'+1, j '
Qi'+1, j '+1
⎡
⎣
⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥
=1
16
9 3 3 1
3 9 1 3
3 1 9 3
1 3 3 9
⎡
⎣
⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥
Pi−1, j−1
Pi−1, j
Pi, j−1
Pi, j
⎡
⎣
⎢ ⎢ ⎢ ⎢
⎤
⎦
⎥ ⎥ ⎥ ⎥
Surfaces biparamétriques
• Réseau dégénéré
• Modification de la surface
Patches triangulaires
• Coordonnées barycentriques (u,v) => (r,s,t), r+s+t=1
• Surface définie sur des patches triangulaires:
– Réseau de degré 2
– Réseau de degré 10 Réseau de degré 20
€
P(u,v) = c i, j ,k
0≤ i+ j +k≤n
∑ Bi, j ,kn (r,s, t)
où Bi, j ,kn (r,s, t) =
n!
i! j!k!r is j t k
Surfaces de révolution
• Surface créée à partir– d’une courbe– un axe de rotation– position de la courbe par rapport à l’axe de rotation– un angle de rotation
Surfaces extrudées
• Surface créée à partir d’une courbe plane en lui donnant de l’épaisseur
• Extrusion généralisée– Une courbe plane fermée– une trajectoire– position et modification de la courbe plane le long de la trajectoire
Sweeping
• Construction par déplacement– Une courbe plane
– Un axe de rotation
– Un angle de rotation
– Un déplacement
Wraping
• Construction par Déformation– Torsion
– Enroulement
Composition booléenne de volumes
• Opérateur booléen: Union
=>
• Intersection
=>
• Différence
=> ou
Modélisation volumique
• Représentation par arbre de construction:CSG
• Représentation par une grammaireExp -> prim / transf prim / op exp exp
Prim -> cube / sphere / cone / ...
Transf -> translation / homothétie / rotation
Op -> union / intersection / différence
Surfaces Fractales
• Montagnes fractales– Construction récursive du terrain
– Modèle statistique
• axiome
• générateur aléatoire
Montagnes fractales
• Modélisation de plantes– Grammaire décrivant la croissance
• L’axiome
• les règles de production
• un angle
• le nombre d’itérations
• Exemple:• axiome : F
• règle: F F[+F]F[-F]F = /7
L-systems ou ré-écriture de chaine
• axiome : S L F F F
• règles: – S [+++G][---G]TS
– G +H [-G]L
– H -G [+H]L
– T TL
– L [-FFF][+FFF]F
= /10
• Fougère de Barnsley
L-Systèmes
Arbre