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
vH
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 i1
 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)
i1
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) ni
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 1P0 

 
3
6
3
0
P1 



t 1
3 3 0 0P2 

 
1 0 0 0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
dP(0)
 n(P1  P0 )
dt
dP(1)
 n(Pn  Pn1 )
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
r1
Pir (t)  (1 t)Pir1(t)  tPi1
(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 i1
N i,1 (t)  
0 sinon
t  ti
t ik  t
N i,k (t) 
N i,k1 (t) 
N i1,k1 (t)
t ik1  t i
t ik  t i1
=>
Ni,k (t)  0 pour t  ti ,tik  , 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)
i1
• 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 ik 
c) N i,k (t) est maximum au point(ti  t i1  ...tik ) /(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
Pj3
Pj2
Pj1
1
j2
1
j1
1
j
P
P
Pj
P
2
Pj1
Pj2
Pj3
Nj-3 Nj-2 Nj-1 Nj
m1
Pim  (1  im )Pi1
  im Pim1 tj
t  ti
avec  im 
t i4m  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 )
i1
où P1 ' P1, Pn 1 ' Pn et Pi'  (1 ai )Pi1  ai Pi
1
i  2,...j  k  1

 t't i
avec ai  
i  j  k  2,...j
t

t
 ik1 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)  P11N1,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 Pi1, j1

 
3 Pi1, j 
3 Pi, j1 

 
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)
0i j kn
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