Vous êtes sur la page 1sur 43

Chapitre 7 : Courbes et surfaces

Modé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 des


outils mathématiques (i.e modèle de courbes ou
surfaces)
I Approximation avec des primitives linéaires :
• Segments, Triangles, Tétraèdres.
Interpolation linéaire de points
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 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 plusieurs
primitives (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 )x = a0x + a1x t + a2x t 2 + a3x t 3 + . . . + adx t d



y y y y y
P (t ) = P (t )y = a0 + a1 t + a2 t 2 + a3 t 3 + . . . + ad t d
z z z 2 z 3 z d
P (t )z = a0 + a1 t + a2 t + a3 t + . . . + ad t

I Notation matricielle :
y
adx adz
 
  ad
P (t )x  .. 
P (t ) =  P (t )y  etM =  · · · ··· .
 
y

 ax a1 a1z
P (t )z

1
y
a0x a0 a0z

⇒ P (t ) = (P (t )x P (t )y P (t )z ) = (t d . . . t 2 t 1)M

y
Remarque : on notera également a0 = (a0x a0 a0z ) (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 _ d e b u t ) / ( nbPoint − 1);

P_old= evaluerP ( t ) ;
pour i v a r i a n t de 2 à n b P o i n t 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 la
courbure.

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 ) = (t1n−1 . . . t12 t1 1)M

P (t ) = (t2n−1 . . . t22 t2 1)M


 2 2
...
• ⇒ Interpolation de Lagrange.
• Forme pas intuitive du tout (fortes variations si le degré est élevé).

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 ) = a 0 + a 1 t + a 2 t 2 + . . . + a d t d
∂P (t )
⇒ P 0 (t ) = ∂t
= 0 + a1 + 2a2 t + 3a3 t 2 + . . . + dad t d −1
I Le vecteur P 0 (t ) donne une tangente au point P (t ) (ou vecteur vitesse de P (t )).
I Avec la notation matricielle : P 0 (t ) = (dt d −1 . . . 2t 1 0)M
I P 00 (t ) =∂2 P (t ) ∂P 0 (t )
∂t 2
= ∂t
I Le vecteur P 00 (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 (0) et T1 = P 0 (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 ) = (t 3 t 2 t 1)M. Quelle est la matrice M ?


I Le système d’équation P0 = P (0), P1 = P (1), T0 = P 0 (0) T1 = P 0 (1) se met sous la
forme matricielle :

03 02
   
P0 0 1
 P1   13 12 1 1 
 T0  =  3 × 02 2 × 01 1
   M
0 
T1 3 × 12 2 × 11 1 0
  
2 −2 1 1 P0
I On résout pour trouver M =  −3 3 −2 −1   P1 
 
.
 0 0 1 0  T0 
1 0 0 0 T1

fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 13 / 43


Forme matricielle (2)

 
P0
I Le « vecteur » G =  P1  est appelé vecteur géométrique (plus précisément vecteur
 
 T0 
T1
de hermite dans le cadre des courbes de hermites).
 
2 −2 1 1
 −3 3 −2 −1 
I La matrice Mh =   est appelée matrice de hermite (aucun
 0 0 1 0 
1 0 0 0
rapport avec les matrices hermitiennes).

I ⇒ P (t ) = (t 3 t 2 t 1)Mh G

I Tangentes : P 0 (t ) = (3t 2 2t 1 0)Mh G

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é des
tangentes, continuité des courbures).

fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 16 / 43


Repère de Frenet
I P 0 (t ) donne une tangente à la courbe T
I On définit le vecteur binormal par B = P 0 (t ) × P 00 (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 = kP 0 (t )×P 00 (t )k
kP 0 (t )k3
.
I Le rayon de courbure en P (t ) est donné par r = k1 .
I Le cercle osculateur en P (t ) (cercle qui épouse au mieux la courbe) à un rayon de r et son
centre 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 )) est
dit de continuité :
• C 0 ssi P (1) = Q (0) (pas d’autres conditions que l’égalité des points).
• C 1 ssi il est C 0 et P 0 (1) = Q 0 (0) 6= 0 (égalité des tangentes - raccordement
« lisse » ).
• C 2 ssi il est C 1 et P 00 (1) = Q 00 (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é C 1 traduit l’égalité des tangentes en direction et norme.


I En informatique graphique, on peut vouloir se contenter d’un lissage visuel : égalité des
directions 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 0 (1) = λQ 0 (0) (c’est à dire que P 0 (1) et Q 0 (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 de
contrôles (P0 , ..., Pn ), et décrite sur t ∈ [0, 1] par :

n
P (t ) = ∑ Bin (t )Pi
i =0

n!
Bin (t ) = Cni (1 − t )n−i t i avec Cni =
i !(n − i )!
I Les Bin (t ) sont appelés polynômes de bernstein.
I L’ensemble des points (P0 , P1 , . . . , Pn ), pris dans cet ordre, est appelé polygone de
contrô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 )3 P0 + 3t (1 − t )2 P1 + 3t 2 (1 − t )P2 + t 3 P3


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 ) est
barycentre. Les coefficients barycentriques des points Pi sont les Bin (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 3P0 P1 et
−−→
3P2 P3 ).
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 à P0 P1 et Pn−1 Pn ).
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 la
même courbe ?
I ⇒ P̂0 = P0 , P̂n+1 = Pn et P̂i = i n+1−i
n+1 Pi −1 + 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 Bin (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 :
 0
Pi = Pi pour tout i(les points initiaux sont les points de contrôles)
Pik = (1 − t )Pik −1 + tPik+−11 (Pik est une interpolation linéaire dePik −1 et Pik+−11 ).

I On itère sur k jusqu’à k = n ⇒ on obtient P (t ) = P0n .

De Casteljau est un algorithme dit triangulaire :

1
Algorithme de calcul pour P (t ) exemple pour le point t = 4

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 par
tous 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 ,1 Pi +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,1 Pi = 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,1 Ii ,0 = k Pi −1 Pi +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 : x 2 + y 2 − 1 = 0 (cercle de centre (0, 0))

Z=f(X,Y)

Y
X

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 implicites
simples) qui sont ensuite « mélangées » .
I Exemple : mélange simple par somme : si on dispose de n champs potentiels fi ⇒
f (x , y ) = ∑ni=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.
f(X,Y)

C1
C2

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ès
en infographie car elles permettent d’obtenir facilement des effets de fusion et/ou de
déconnexion entre les primitives.
I Nécessité d’avoir un « bon » mélange entre les primitives (fusion et déconnexion
naturelles et esthétiques).
2
q
I ⇒ blobs : fi (x , y ) = ai e−bi r avec 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 peu


diffé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 "+" si
f (x , y ) > s (la fonction est au dessus du plan z = s), et "-" sinon (la fonction est au
dessous).
I la courbe passe alors nécessairement par les segments de la grille dont le signe des
extré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.

− − − − − − − + − f(G2)
− − + + + − −
− + + + + + − P

+ f(G1)
+

+ −


+
Problème d’ambiguité

fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 34 / 43


Remarques

− − − − − − − + − f(G2)
− − + + + − −
− + + + + + − P

+ f(G1)
+

+ −


+
Problème d’ambiguité

I La position du point P peut s’évaluer par interpolation linéaire : on considère que


s−f (G )
f (P ) = s = (1 − λ)f (G1 ) + λf (G2 ) ⇒ λ = f (G )−f (1G ) ⇒ P = (1 − λ)G1 + λG2 .
2 1

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être
s: 
 x = f (s, t )
P (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’en


trouvent complexifiés mais les solutions restent principalement des extensions des
courbes, 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. produit
de deux courbes).
I Exemple pour bézier : on définit un maillage de contrôle de (n + 1) × (m + 1) points.

n m
P (s , t ) = ∑ ∑ Bin (s)Bjm (t )Pi ,j 0 ≤ s ≤ 1, 0 ≤ t ≤ 1
i =0 j =0

I Remarque : on « reconnait » des courbes de bézier dans chaque direction s et t (i.e. pour
s = 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 » (carreaux


ou patches) de surfaces simples (béziers cubiques, etc).
I Les raccordements (C 1 , C 2 , ...) se font selon une courbe (compléxifie l’étude des courbes
dont le raccordement était selon un point).
I Tangentes en P (s, t ) données par Ts (P ) = ∂P (s,t ) ∂P (s,t )
∂s
et Tt (P ) ∂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ée
supplé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 intersections
avec 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é en
triangles pour les problèmes de coplanarité).
• ⇒ méthode dite du marching-cube (on fait les cubes un par un). Il existe de très
nombreuses variantes accélératrice de cette méthode (notamment précalcul de
toutes 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 implicite
selon 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 du
champ de potentiel :  
∂f
∂x
(P )

− −−→ ∂f
n (P ) = gradf (P ) =  (P )
 
∂y 
∂f
∂z
( P)

I Exemple simple : f (x ) = x 2 + y 2 + z 2 − 1 ⇒ n(x ) = (−2x , −2y , −2z )

fabrice.aubert@univ-lille.fr courbes et surfaces Master Informatique2019-2020 43 / 43

Vous aimerez peut-être aussi