2 courbes polynomialesaubert/m3ds/m3ds_courbe... · 2019-02-27 · raccordement géométrique i la...
Post on 06-Mar-2020
3 Views
Preview:
TRANSCRIPT
Chapitre 7 : Courbes et surfacesModélisation 3D et Synthèse
Master Informatique
2019-2020
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 1 / 43
1 Introduction
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 2 / 43
Courbes et surfaces
I But : approximer les formes (les objets) par desoutils mathématiques (i.e modèle de courbes ousurfaces)
I Approximation avec des primitives linéaires :
• Segments, Triangles, Tétraèdres.
I Approximation avec des courbes et surfaces :
• Courbes et surfaces polynomiales :• Hermites, Béziers (B-Splines,
NURBS).• Courbes et surfaces implicites :
• Blobs (Surfaces à squelette)
Interpolation linéaire de points
Interpolation cubique de points
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 3 / 43
Critères à considérer
I Généricité : ensemble des « formes » représentables par le modèle choisi.
I Interactivité : facilité de contrôle - forme naturelle.
I Visualisation : facilité d’« affichage »
I Représentation : stockage en mémoire et conversion avec d’autres modèles.
I Raccordement : les courbes ou surfaces complexes sont souvent composées de plusieursprimitives (peut-on les raccorder aisément?)
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 4 / 43
2 Courbes polynomiales
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 5 / 43
Définition
I Une courbe polynomiale de degré d est décrite par t ∈ IR :
P(t) =
P(t)x = ax0 +ax
1 t +ax2 t2 +ax
3 t3 + . . .+axd td
P(t)y = ay0 +ay
1 t +ay2 t2 +ay
3 t3 + . . .+ayd td
P(t)z = az0 +az
1t +az2t2 +az
3t3 + . . .+azd td
I Notation matricielle :
P(t) =
P(t)xP(t)yP(t)z
etM =
axd ay
d azd
· · · · · ·...
ax1 ay
1 az1
ax0 ay
0 az0
⇒ P(t) = (P(t)x P(t)y P(t)z) = (td . . . t2 t 1)M
Remarque : on notera également a0 = (ax0 ay
0 az0) (ou sa transposée) dans la suite.
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 6 / 43
Tracé d’une courbe polynomiale
I Généralement on s’intéresse à des morceaux de courbes (P(t) défini pour t ∈ [tdebut , tfin]).
I Calcul d’un ensemble de nbPoint points et relier ces points par des segments(approximation polygonale).
t = t_debut ;pas_t =( t _ f i n−t_debut ) / ( nbPoint−1);
P_old=evaluerP ( t ) ;pour i v a r i a n t de 2 à nbPoint f a i r e
t = t +pas_t ;P_new=evaluerP ( t ) ;drawSegment ( P_old , P_new ) ;P_old=P_new ;
f i n pour
Problèmes qui peuvent se présenter :
I Calculer nbPoint nécessaire pour que la courbe paraisse lisse (approximation assez fineà l’oeil).
I Calculer un pas pas_t non constant pour tenir compte de l’abscisse curviligne et/ou de lacourbure.
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 7 / 43
Courbes d’interpolation
I Trouver une courbe polynomiale passant par n points P1, P2, . . ., Pn ?I Solution brutale : résoudre le système d’équations.
• Spécifier les ti pour chaque point Pi (pas très intuitif).• La courbe sera de degré n−1 (calcul lourd si n > 4).• Résoudre le système d’équation
P1(t1) = (tn−11 . . . t2
1 t1 1)MP2(t2) = (tn−1
2 . . . t22 t2 1)M
. . .
• ⇒ Interpolation de Lagrange.• Forme pas intuitive du tout (fortes variations si le degré est élevé).
Interpolation de Lagrange Interpolation splines
(images générées par l’applet sur le site : http://www.dr-mikes-maths.com/DotPlacer.html)
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 8 / 43
Constructions de courbes
Préferer⇒I Raccordement de courbes de degré au plus 3 (voire 4) « naturelles » .
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 9 / 43
Dérivée/Tangente
I P(t) = a0 +a1t +a2t2 + . . .+ad td
⇒ P′(t) = ∂P(t)∂t = 0+a1 +2a2t +3a3t2 + . . .+dad td−1
I Le vecteur P′(t) donne une tangente au point P(t) (ou vecteur vitesse de P(t)).
I Avec la notation matricielle : P′(t) = (dtd−1 . . . 2t 10)M
I P′′(t) = ∂2P(t)∂t2 = ∂P ′(t)
∂t
I Le vecteur P′′(t) définit l’accélération de P(t)).
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 10 / 43
3 Courbes de Hermite
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 11 / 43
Définition
I C’est une courbe polynomiale de degré 3 (cubique).I Le paramêtre t varie « seulement » entre 0 et 1 (segment normalisé).I Elle est définie par :
• les deux points extrémités : P0 = P(0) et P1 = P(1)• les deux tangentes en ces points : T0 = P′(0) et T1 = P′(1)
⇒I Contrôle intuitif et aisé (contrôle des extrémités et tangentes)I Raccordement de plusieurs hermites facile.
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 12 / 43
Forme matricielle
I P(t) = (t3 t2 t 1)M. Quelle est la matrice M?
I Le système d’équation P0 = P(0), P1 = P(1), T0 = P′(0) T1 = P′(1) se met sous laforme matricielle :
P0P1T0T1
=
03 02 0 113 12 1 1
3×02 2×01 1 03×12 2×11 1 0
M
I On résout pour trouver M =
2 −2 1 1−3 3 −2 −10 0 1 01 0 0 0
P0P1T0T1
.
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 13 / 43
Forme matricielle (2)
I Le « vecteur » G =
P0P1T0T1
est appelé vecteur géométrique (plus précisément vecteur
de hermite dans le cadre des courbes de hermites).
I La matrice Mh =
2 −2 1 1−3 3 −2 −10 0 1 01 0 0 0
est appelée matrice de hermite (aucun
rapport avec les matrices hermitiennes).
I ⇒ P(t) = (t3 t2 t 1)MhG
I Tangentes : P′(t) = (3t2 2t 10)MhG
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 14 / 43
4 Raccordement
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 15 / 43
Raccordement et continuité
I On travaille avec un ensemble de courbes indépendantes.
I Le raccordement de ces courbes est soumis à des contraintes de continuité (continuité destangentes, continuité des courbures).
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 16 / 43
Repère de Frenet
I P′(t) donne une tangente à la courbe TI On définit le vecteur binormal par B = P′(t)×P′′(t) (produit vectoriel).I Après normalisation de T et B on définit la normale principale à la courbe par N = B×T .I ⇒ le repère (T ,B,N) est appelé repère de frénet.
I La courbure en P(t) est donnée par k = ‖P ′(t)×P ′′(t)‖‖P ′(t)‖3 .
I Le rayon de courbure en P(t) est donné par r = 1k .
I Le cercle osculateur en P(t) (cercle qui épouse au mieux la courbe) à un rayon de r et soncentre est A = P(t)+ rN.
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 17 / 43
Raccordement C0, C1, C2
I Pour simplifier, on considère des segments normalisés (P(t) est défini avec t ∈ [0,1]).
I Soient P(t) et Q(t) deux segments de courbes.
I Le raccordement de P en P(1) et de Q en Q(0) (« fin » de P(t) et « début » de Q(t)) estdit de continuité :
• C0 ssi P(1) = Q(0) (pas d’autres conditions que l’égalité des points).• C1 ssi il est C0 et P′(1) = Q′(0) 6= 0 (égalité des tangentes - raccordement
« lisse » ).• C2 ssi il est C1 et P′′(1) = Q′′(0) 6= 0 (égalité des accélérations).• ...
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 18 / 43
Raccordement géométrique
I La continuité C1 traduit l’égalité des tangentes en direction et norme.
I En informatique graphique, on peut vouloir se contenter d’un lissage visuel : égalité desdirections mais pas nécessairement égalité des normes.
I On définit des raccordements avec des continuités géométriques :
• Le raccordement est dit G1 ssi P′(1) = λQ′(0) (c’est à dire que P′(1) et Q′(0)colinéaires).
• G2 si les centres de courbures sont identiques en P(1) et Q(0).
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 19 / 43
5 Courbes de Bézier
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 20 / 43
Définition
I Une courbe de Bézier est une courbe polynomiale de degré n définie par n+1 points decontrôles (P0, ...,Pn), et décrite sur t ∈ [0,1] par :
P(t) =n
∑i=0
Bni (t)Pi
où
Bni (t) = C i
n(1− t)n−i t i avec C in =
n!i!(n− i)!
I Les Bni (t) sont appelés polynômes de bernstein.
I L’ensemble des points (P0,P1, . . . ,Pn), pris dans cet ordre, est appelé polygone decontrôle.
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 21 / 43
Remarques et propriétés (1)
I exemple : bézier cubique : P(t) = (1− t)3P0 +3t(1− t)2P1 +3t2(1− t)P2 + t3P3
I La courbe est de degré n.
I La courbe est exprimée comme une combinaison linéaire des points en chaque t : P(t) estbarycentre. Les coefficients barycentriques des points Pi sont les Bn
i (t).
I C’est une courbe qui « approxime » les points Pi (n’interpole pas).
I La courbe passe cependant par P0 et Pn
I La courbe est tangente au polygone de contrôle en P0 et Pn.
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 22 / 43
Remarques et propriétés (2)
I Les béziers cubiques (4 points) sont des courbes de hermites (les tangentes sont 3−−→P0P1 et
3−−→P2P3).
I Donne des formes naturelles.
I Contrôle aisé et « assez » intuitif (position des points de contrôle).
I Très utilisées en informatique graphique.
I Raccordement G1 aisé (tangentes aux extrémités colinéaires à−−→P0P1 et
−−−−→Pn−1Pn).
I ... très nombreuses propriétés (enveloppe convexe, intersection, raffinement, ...).
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 23 / 43
Raffinement (augmentation du degré)
I On se donne une courbe de bézier de degré n définie par (P0, . . . ,Pn).
I ⇒ comment calculer des points de contrôles (P̂0, . . . , P̂n+1) (degré n+1) pour obtenir lamême courbe?
I ⇒ P̂0 = P0, P̂n+1 = Pn et P̂i =i
n+1 Pi−1 +n+1−i
n+1 Pi (pour i ∈ [1,n]).
⇒ converge vers la courbe de Bézier initiale.
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 24 / 43
Construction géométrique
I L’évaluation de P(t) peut se faire analytiquement en calculant « brutalement » les Bni (t).
I Cette évaluation est numériquement assez instable.
I ⇒ évaluation géométrique par De Casteljau.
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 25 / 43
De Casteljau
I Pour t fixé, on montre que le point P(t) est le résultat d’une suite récurrente définie par :
{P0
i = Pi pour tout i(les points initiaux sont les points de contrôles)Pk
i = (1− t)Pk−1i + tPk−1
i+1 (Pki est une interpolation linéaire dePk−1
i et Pk−1i+1 ).
I On itère sur k jusqu’à k = n⇒ on obtient P(t) = Pn0 .
De Casteljau est un algorithme dit triangulaire :
Algorithme de calcul pour P(t) exemple pour le point t = 14
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 26 / 43
Interpolation par morceaux et Catmull-Rom 1/3
I On veut interpoler les points [P0, . . . ,Pn] (c’est-à-dire trouver une courbe qui passe partous ces points).
I ⇒ courbe Ci définie pour chaque segment [Pi ,Pi+1]• Exemple : bézier cubique définie sur chaque segment : Ci = (Pi , Ii,0, Ii,1Pi+1)
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 27 / 43
Interpolation par morceaux et Catmull-Rom 2/3
I ⇒ Fixer les points de contrôle pour avoir une continuité C1.• Pour des béziers, il suffit d’« aligner »les points de contrôles :
−−−−→Ii−1,1Pi =
−−→Pi Ii,0.
• Il reste un degré de liberté (le Ii−1,1 peut être fixé n’importe où).
Continuité C1 (égalité des tangentes)
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 28 / 43
Interpolation par morceaux et Catmull-Rom 3/3
I ⇒ Fixer les tangentes pour avoir une « bonne »courbe.
• Exemple : Catmull-Rom ⇒ tangentei = α(Pi+1−Pi−1)
• Avec des béziers cubiques :−−−−−→Ii−1,1Ii,0 = k
−−−−−→Pi−1Pi+1
Tangentes fixées par méthode de Catmull-Rom (k=0.4 ici)
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 29 / 43
6 Courbes implicites
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 30 / 43
Définition
I Une courbe implicite (2D) est définie par :
f (x ,y) = s
où s est appelé seuil.
I f est souvent appelée fonction potentielle (field function), et la courbe est appeléeéquipotentielle ou iso-courbe.
I Exemple : x2 + y2−1 = 0 (cercle de centre (0,0))
XY
Z=f(X,Y)
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 31 / 43
Primitives implicites
I Pour contrôler les formes on définit souvent des primitives implicites (i.e. courbes implicitessimples) qui sont ensuite « mélangées » .
I Exemple : mélange simple par somme : si on dispose de n champs potentiels fi ⇒f (x ,y) = ∑n
i=1 fi(x ,y).
I Les primitives peuvent être définies à partir d’objets simples (points, segments, ...)⇒primitives dites à squelettes.
I Exemple : 2 primitives f1 et f2 définies par un centre et un rayon.
C1 C2
S
f(X,Y)
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 32 / 43
Blobs et autres...
I Outre leur intérêt pour modéliser des formes, les surfaces implicites ont beacoup de succèsen infographie car elles permettent d’obtenir facilement des effets de fusion et/ou dedéconnexion entre les primitives.
I Nécessité d’avoir un « bon » mélange entre les primitives (fusion et déconnexionnaturelles et esthétiques).
I ⇒ blobs : fi(x ,y) = ai e−bi r2avec r =
√(x− ci x )2 +(y− ci y )2. Où ci est le centre (ou
squelette) du blob. ai et bi permettent de nuancer la forme.
I Il existe beaucoup de définition de primitives offrant des propriétés de mélanges un peudifférentes. Beaucoup reposent sur une fonction fi liée à la distance au squelette (point,segment, ensemble de segment).
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 33 / 43
Visualisation
I Problème : trouver les points (x ,y) tels que f (x ,y) = s (équation complexe et non linéaire,souvent non polynomiale).
I Autre formulation :⇒ trouver la coupe entre le plan z = s et la surface z = f (x ,y).
Une solution possible (« polygonisation » d’une courbe implicite) :
I on calcule z = f (x ,y) en chacun des points d’une grille régulière. On affecte "+" sif (x ,y)> s (la fonction est au dessus du plan z = s), et "-" sinon (la fonction est audessous).
I la courbe passe alors nécessairement par les segments de la grille dont le signe desextrémités est différent (point d’intersection entre la grille z = f (x ,y) et le plan z = s).
I il reste à relier les points d’intersections.
−
+
+
−
−
Problème d’ambiguité
f(G2)
f(G1)
P
−
++
+−−−−−−−
−
−
++++−
− −+++
+
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 34 / 43
Remarques
−
+
+
−
−
Problème d’ambiguité
f(G2)
f(G1)
P
−
++
+−−−−−−−
−
−
++++−
− −+++
+
I La position du point P peut s’évaluer par interpolation linéaire : on considère quef (P) = s = (1−λ)f (G1)+λf (G2)⇒ λ = s−f (G1)
f (G2)−f (G1)⇒ P = (1−λ)G1 +λG2.
I Incidence de la résolution de la grille :
• Plus la grille est finement subdivisée, plus le résultat est précis.• On suppose une seule intersection par arête de la grille : des détails ne sont pas
reproduits si ce n’est pas le cas.• Les problèmes d’ambiguités se résolvent en faisant un choix arbitraire pour relier les
points (exemple : toujours « entourer » les « + » ).
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 35 / 43
Problème d’implicitisation
I Un des problèmes concernant les surfaces implicites est le contrôle de la forme souhaitée(comment construire une voiture en surface implicite? un cube?).
I Implicitisation = transformer un modèle d’objet en surface implicite.
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 36 / 43
7 Surface
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 37 / 43
Extension des courbes
I Les courbes vues précédemment se généralisent aux surfaces par simple extension.
I Pour les courbes paramétriques (y compris les polynomiales) : adjonction d’un paramêtres :
P(s, t) =
x = f (s, t)y = g(s, t)z = h(s, t)
I Pour les courbes implicites : adjonction d’une troisième coordonnée z :
P(x ,y ,z) tels que f (x ,y ,z) = s
I Les problèmes de raccordements, de visualisation, de construction, d’interaction s’entrouvent complexifiés mais les solutions restent principalement des extensions descourbes, et les raisonnements sont analogues.
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 38 / 43
Exemple : surface de Bézier
I Les courbes vues (bézier, b-spline, nurbs) s’étendent par « produit tensoriel » (i.e. produitde deux courbes).
I Exemple pour bézier : on définit un maillage de contrôle de (n+1)× (m+1) points.
P(s, t) =n
∑i=0
m
∑j=0
Bni (s)B
mj (t)Pi,j 0≤ s ≤ 1, 0≤ t ≤ 1
I Remarque : on « reconnait » des courbes de bézier dans chaque direction s et t (i.e. pours = sfixe, la courbe P(sfixe, t) est une courbe de bézier).
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 39 / 43
Raccordements
I On représente souvent une surface complexe en raccordant des « morceaux » (carreauxou patches) de surfaces simples (béziers cubiques, etc).
I Les raccordements (C1,C2, ...) se font selon une courbe (compléxifie l’étude des courbesdont le raccordement était selon un point).
I Tangentes en P(s, t) données par Ts(P) =∂P(s,t)
∂s et Tt(P)∂P(s,t)
∂t .
I Remarque : normale en P(s, t) donnée par le produit vectoriel des deux tangentes.
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 40 / 43
Surface implicite
I définition :P(x ,y ,z) tels que f (x ,y ,z) = s
I la définition des primitives par squelette s’étend naturellement (coordonnéesupplémentaire ; voir blobs par exemple).
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 41 / 43
Polyédrisation
I identique à la polygonisation mais sur une grille régulière de cubes (appelés voxels) :
• évaluer f (x ,y ,z) en chacun des sommets de la grille. Déterminer les intersectionsavec les signes et par interpolation linéaire (un point par arête).
• relier les points dans chaque face (les carrés)⇒ donne des arêtes.• relier les arêtes dans chaque cube (se fait de manière naturelle en suivant les points
d’intersection)⇒ donne un (ou plusieurs) polygones (généralement décomposé entriangles pour les problèmes de coplanarité).
• ⇒ méthode dite du marching-cube (on fait les cubes un par un). Il existe de trèsnombreuses variantes accélératrice de cette méthode (notamment précalcul detoutes les configurations de cubes possibles).
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 42 / 43
Remarques
I Localisation : un point est intérieur ou extérieur au volume englobé par la surface impliciteselon le signe de f (x ,y ,z).
I une normale à la surface implicite en un point P(x ,y ,z) est donnée par le gradient duchamp de potentiel :
−→n (P) =−−→gradf (P) =
∂f∂x (P)∂f∂y (P)∂f∂z (P)
I Exemple simple : f (x) = x2 + y2 + z2−1⇒ n(x) = (−2x ,−2y ,−2z)
fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 43 / 43
top related