modelisation
Download
Report
Transcript modelisation
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élisation 3D
• 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
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
Courbes paramétriques
• Contraintes au niveau du concepteur
•
•
•
•
à partir de points de contrôle
fonctions simples et numériquement stables
contrôle local ou global
par morceaux?
propriété de « variation décroissante »
polynômes
• 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
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?
Fonction spline cubique d’interpolation
• Modèle mathématique de la latte des dessinateurs (1950)
– solution de:
min2
vH
2
(v'')
avec v(x i ) y i
– On l’appelle spline cubique naturelle s de noeuds x1,....xn
(i)
(ii)
(iii)
s C 2 a,b
s
x i , x i1
P 3 , i 1 à n 1
s"(x1 ) 0 et s"(x n ) 0
on l’obtient par résolution d’un système linéaire tridiagonal,
n inconnues s’(xi)
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 :
i n
P(t) Pi i,k (t)
i1
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
•
i,k (t) 1 en tout point
i
• 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
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:
i n
P(t) Pi Bi,n (t) où Bi,n (t) Cin t i (1 t) ni
i 0
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
p1
p1
p1
p0
p2
p0
p3
p0
p3
– à variation décroissante
p2
p3
p2
Courbes de Bézier
• k=3
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
• Forme matricielle
P(t) t 3
t2
1 3 3 1P0
3
6
3
0
P1
t 1
3 3 0 0P2
1 0 0 0P3
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
dP(0)
n(P1 P0 )
dt
dP(1)
n(Pn Pn1 )
dt
– Forme « prévue »
– Modification d’un point
• difficile quand n est « grand »
Courbe de Bézier -suite
• Algorithme de De Casteljau:
construction géométrique d’un point de la courbe
r1
Pir (t) (1 t)Pir1(t) tPi1
(t)
r 1,...n
pour
i 0,...n r
avec Pi0 (t) Pi
p20
Exemple pour 4 points de contrôle et t = 2/3
P0
P1
P2
P3
1
0
1
1
1
2
P
P
P
p10
P02
P12
P03
2
0
p
p12
p03
p00
p10
Courbes de Bézier composites
•
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 »
Base de B-spline
• Définition
Soient 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:
1 si t i t t i1
N i,1 (t)
0 sinon
t ti
t ik t
N i,k (t)
N i,k1 (t)
N i1,k1 (t)
t ik1 t i
t ik t i1
=>
Ni,k (t) 0 pour t ti ,tik , sur k intervalles
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
i N
P(t) Pi N i,k (t)
i1
• Influence de l’ordre
Courbes B-splines (suite)
• Propriétés des B-splines
a) N i,k (t) 0 positivité
b) N i,k (t) 0 si t t i ,t ik
c) N i,k (t) est maximum au point(ti t i1 ...tik ) /(k 1)
d) les B- splines sont n
" ormées"
N
i
i,k
(t) 1
=> Propriétés de l’approximation
– Variation décroissante
– Contenu dans l’enveloppe convexe
courbe spline quadratique
• Influence d’un point de contrôle
•
Influence du paramétrage
cubique
Valeur en un point: Algorithme de De Boor
• algorithme de De Boor : relation de récurrence
– Exemple pour k=4 (cubique), soit t [tj ,tj+1]
• subdivision uniforme
Pj3
Pj2
Pj1
1
j2
1
j1
1
j
P
P
Pj
P
2
Pj1
Pj2
Pj3
Nj-3 Nj-2 Nj-1 Nj
m1
Pim (1 im )Pi1
im Pim1 tj
t ti
avec im
t i4m t i
p1
j=3 =>Q3
j=4 =>Q4
j=5 =>Q5
j=6 =>Q6
p0
tj+1
p5
Q3
Q4 p3
Q5
Q6
p2
p4
p6
Tracé par subdivision du polygone de contrôle
• insertion d’un nœud tj<t’<tj+1
– la nouvelle courbe est définie par le nouveau polygone de contrôle
P(t)
i n 1
P 'N
i
i,k
(t )
i1
où P1 ' P1, Pn 1 ' Pn et Pi' (1 ai )Pi1 ai Pi
1
i 2,...j k 1
t't i
avec ai
i j k 2,...j
t
t
ik1 i
i j 1,...n
0
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)
P1
P3
P’4
P2
P’5
P7
P8
P4
P6
P’6
P5
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
k fois
k fois
• Approximation par des quadratiques et des cubiques
• passe par le premier et le dernier point
• tangente aux segments extrémités
Transformation B-spline vers Bézier
• insertion de nœuds jusqu’à multiplicité k-1 des nœuds (k
ordre de la base)
t' t 6 t 6 ,t7
Points de Bézier d’une spline cubique
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:
i n
P N
i
P(t)
i
i,k
(t)
i 0
i n
N
i
i,k
(t)
i 0
– plus de degrés de liberté
peuvent être positifs ou négatifs
– les poids
Les courbes NURBS (suite)
• 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
P(t)
P0 0 N 0,2 (t) P11N1,2 (t) P2 2 N 2,2 (t)
0 N 0,2 (t) 1N1,2 (t) 2 N 2,2 (t)
– Courbe complémentaire obtenue avec -1
Carreaux de Bézier
• Produit tensoriel
– 2 paramètres u et v
– Réseau de points de contrôle Pi,j
– Surface de Bézier: P(u,v)
i n j m
P
i, j
Bi,n (u)B j,m (v)
i 0 j 0
• 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
Recollement des surfaces de Bézier
• soit 2 surfaces : Q définie par qij,
– 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
R définie par rij
Jonction des surfaces
autre possibilité : tangentes coplanaires
r10 r00 k (q30 q20 ) s0 (q31 q30 )
1
1
r11 r01 k (q31 q21 ) s0 (2q32 q31 q30 ) s1 (q31 q30 )
3
3
1
2
r12 r02 k (q32 q22 ) s0 (2q33 q32 q31 ) s1 (q32 q31 )
3
3
r13 r03 k (q33 q23 ) ( s0 s1 )(q33 q32 )
• Subdivision locale
méthode de Clark:
subdivisions indépendantes
de surfaces adjacentes
• 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
Q(u, v) B j (u) pij Bi (u)
j 0
i 0
3
Surfaces B-splines
• Produit tensoriel
– 2 paramètres u et v
– Réseau de points de contrôle Pi,j
– Surface B-spline :
i n j m
P(u,v) Pi, j N i,k (u)N j,p (v)
i 0 j 0
Surfaces splines
(1)
Construction
des courbes en u
(2)
Construction
des courbes en v
(3)
Union des vecteurs
(4)
Reconstruction
(5)
Résultat
• 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'
9
Q
i' j' 1 1 3
Qi' 1, j' 16 3
Q
1
i' 1, j' 1
3
9
1
3
3
1
9
3
1 Pi1, j1
3 Pi1, j
3 Pi, j1
9 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:
P(u,v) c i, j,k Bi,n j,k (r,s,t)
0i j kn
où Bi,n j,k (r,s,t)
n! i j k
rs t
i! j!k!
– Réseau de degré 2
– Réseau de degré 10
Réseau de degré 20
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 grammaire
Exp -> 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
L-systems ou ré-écriture de chaine
• 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
• = /7
F[+F]F[-F]F
L-Systèmes
• axiome : S L F F F
• règles:
–
–
–
–
–
S
G
H
T
L
[+++G][---G]TS
+H [-G]L
-G [+H]L
TL
[-FFF][+FFF]F
• = /10
• Fougère de Barnsley
Arbre