245
Définition
• Une courbe plane est définie par : f(x,y) = 0
• Une surface est définie par f(x,y,z) = 0 notation f(P) = 0
• Une courbe gauche : intersection de deux surfaces
• Un modèle implicite dépend fortement du référentiel choisi (comme une représentation cartésienne)
• On impose au minimum que f soit différentiable – f est continue
– f admet des dérivées partielles du premier ordre
• non nécessairement continues
Modélisation Géométrique 247
Définition
!
!
!
"
!!
!
#
$
∂
∂
∂
∂∂
∂
= z f y fx f f grad
• Correspond implicitement à des courbes ou surfaces de niveau
– f(x,y,z) = c (ou f(x,y,z)-c = 0)
• On appelle grad f, le vecteur :
• En un point régulier (grad f ¹0),
grad f est un vecteur normal à la surface (à la courbe)
247
Quelques propriétés
• Les surfaces les plus connues ont souvent une forme implicite :
– x2+y2+z2= R2 – x2-y2+z2= 0 – plan
– cylindre, tore, …
• Une surface implicite délimite un solide (non nécessairement borné, ex : cône)
• Obtention naturelle de l'intérieur de la peau et de l'extérieur avec le signe de f(P)
– f(P) = 0 peau
Modélisation Géométrique 249
Exemples
• Quadriques
• Superquadriques
• Composition de surfaces
– composition très simple (en + ou -) – addition des contributions
2 1
Avec l'autorisation du Laboratoire Electronique et Informatique de l'Image Université de Bourgogne
249
Surfaces de potentiel
• Définir un ensemble de points Pi
• Pour chaque point Pi, – définir une fonction Fi(||P-Pi||)
– décroissante en fonction de la distance (zone d'influence) (ex e-r) – fonction dépendant de la distance au point
– définir l'influence de Fi
– Blobs (Blinn Objets, introduit par Blinn en 82)
• Définir un seuil c : =∑ ∈ℜ 2 blobs se rapprochant
Modélisation Géométrique 251
Surfaces de potentiel
• On peut jouer sur : – la position des points Pi,
– les fonctions Fi(beaucoup de possibilités) – les coefficients d'influence des Fi
• On peut centrer sur chaque Piune surface implicite et combiner :
origine LE2I, Université de Bourgogne
251
Surfaces de potentiel
• Notions de squelette :
– ensemble organisé de points, de segments, triangles, etc ...,
• Modélisation à partir de squelette
– les fonctions Fisont des fonctions dépendant de la distance au ième élément du squelette
– définition d'un seuil
– modélisation d'une surface complexe suivant le squelette
– possibilités intéressantes
• Des travaux récents sur les surfaces implicites qui sont très performants et originaux
Modélisation Géométrique 253
Affichage d'une surface implicite
• Délicat. Algorithme du marching cube – Une résolution de grille fixée
• f(p)>0 : « + »
• f(p)<0 : « - »
• Deux attitudes
– On suit la courbe dans la grille
• Chaque cellule explorée est marquée
• On obtient une ligne polygonale
– On explore systématiquement la grille (cellule par cellule)
• On obtient une « soupe » de segments
• Implique qu'à la précision de la grille – Pas de boucle à l'intérieur d'une cellule – Pas de bord de cellule coupé 2 fois
• Se généralise en 3D – … avec plus de cas !
+
-+
+ +
+ +
+
-253
Implicite-paramétrique ?
• Les surfaces implicites
– simples à modéliser, délimitent des volumes
– grosses possibilités de déformations, de mélange, de collision – particulièrement adaptées au graphique, à l'animation
– calculs d'intersection simplifiés
– accès direct à la valeur avec les coordonnées,
ou à une équation connaissant une ou deux coordonnées – intuitives, mais moins faciles à maîtriser géométriquement – peuvent dépendre du référentiel
• Les surfaces paramétriques
– manipulations précises, contrôle des tangentes, normales, courbures – dessin simple
– subdivision, …
origine LE2I, Université de Bourgogne
Modélisation Géométrique 255
Troisième partie :
Modélisation de courbes et surfaces
… pour la CFAO, l'imagerie, ...
255
• On a (n+1) points Pidu plan ou de l'espace – points distincts et ordonnés
– pointsgénéralement bruités
• Méthode directe
• Interpolation
• Lissage (moindres carrés) Courbes : introduction
Pb : définir une courbe avec ces points
∑=
Modélisation Géométrique 257
L'esthétique !
• Vaste problème non résolu – part de subjectivité, de mode, …
• Un des problèmes de la modélisation géométrique – des outils mathématiques performants
– pas (peu) d'outils d'analyse ni de choix automatique
• Un bon résultat : une courbe qui « file bien » ?
• L'œil est « sensible » aux :
– discontinuités de tangence, courbure (?), torsion (??) – inflexions
– régularité de la courbure (expert)
• Eviter le terme lisse
– sens mathématique : CP p grand, en modélisation géométrique ??
– en anglais : smooth, fair 257
Critères de précision
• Cas général : distance d'un point donné à la courbe (surface) – projection orthogonale sur la tangente (plan tangent)
– problème non linéaire délicat (même pour une courbe)
• 2 paramètres sur une surface !
P=C(t) C'(t) Pi
0 .
) (
' t PPi = C
Mais :
Pi
Attention aux cas particuliers !
Modélisation Géométrique 259
L'esthétique !
En pratique :
• difficile d'apprécier une courbe juste avec son affichage
• généralement glissement 3D®2D
• bonne courbe : respect des signes de la courbure et la plus monotone possible (Farin)
Que faire : liste non exhaustive
• Visualisations autour de la courbure – inflexions
– répartition des courbures
259
L'esthétique
• Energie de déformation
– poutre + cadre de l'élasticité linéaire
• Moment des forces :
• Energie de déformation est définie par
– par analogie, énergie de déformation d'une courbe
• critère global (comparaison)
• pour une courbe y(x) et petits déplacements (y '<<1)
• attention aux simplifications de l'intégrant
• On peut aussi étudier :
Modélisation Géométrique 261
L'esthétique
• Qualité du polygone de contrôle – Etude dans l'automobile (Peugeot) – Importance
• dans le cadre de la normalisation STEP
• de l'échange de données entre systèmes
– Un bon polygone :
• simple
• proche de la courbe
• distance régulière entre les points
• angles réguliers
• « bon » nombre de points
• ...
261
Méthode directe
• B-splines d'ordre k,
– en général vecteur de nœuds quasi-uniforme – Bézier : cas particulier
• Choix du vecteur de nœuds (définition de la base) – répartition uniforme (+ multiplicités aux extrémités) – répartition à partir des longueurs des cordes du polygone
• Variation de l'ordre valeurs mini et maxi
• Variation sur les points de contrôle
– déplacement ®modification de la courbe (plus ou moins locale) – toujours dans l'enveloppe convexe
– variation du nombre de points (« convergence » avec beaucoup de points)
∑=
=
n
i Nik t Pi
t C
0 , ( )
) (
Adapté à l'interactivité
Modélisation Géométrique 263
Méthode directe
• Variation de l'ordre : influence
263
Méthode directe
• Exemple récapitulatif (1)
Modélisation Géométrique 265
Méthode directe
• Exemple récapitulatif (2)
265
Méthode directe
• Insertion de nœuds (knot insertion) – opération de changement de base exacte
• plus de nœuds plus de points
– permet de rajouter des points localement (meilleur contrôle) – technique efficace d'affichage
• suppression de nœuds (knot removal) – opération de changement de base approchée
• moins de nœuds moins de points
– compression de données et lissage
– technique coûteuse pour minimiser l'erreur (choix des nœuds à retirer)
Modélisation Géométrique 267
Méthode directe
• Multiplicités dans les points de contrôle
• Multiplicités dans les nœuds
)
et demi-tangentes en ti
€
si ti=ti+1=...=ti+k−2, C(ti)=Pi−1
Ni,k(t) est non nulle en ]ti,ti+k[ Ni-1,k(t) est non nulle en ]ti-1,ti+k-1[ Ni-2,k(t) est non nulle en ]ti-2,ti+k-2[
Seule fonction non nulle en ti
267
Méthode directe
• Interpolation ou lissage + méthode directe – obtention de points de contrôle « significatifs » – techniques précédentes
• Approche variationnelle (d'un critère)
– une première courbe
– un critère J (en général : énergie de déformation) – un voisinage V pour tous les points de contrôle – On cherche
• nombreux paramètres
• minima locaux
J
Modélisation Géométrique 269
Interpolation
• On a (n+1) points, on veut une courbe qui passe par ces points
• Interpolation (-lissage) : 2 problèmes – définir les valeurs paramétriques de passage zi
• difficulté fondamentale, des formules, pas LA bonne formule – uniforme, longueurs de cordes (avec ou sans exposant), ...
• tenir compte de la géométrie
– placer les points de jonction de la spline (breakpoints)
• Þdéfinir le vecteur de nœuds T
• Deux solutions
– Une courbe définie par (n+1) points de contrôle
– Une courbe définie par n arcs de splines (un entre chaque point)
, ...,n) i (i
n
i Nik tQi P C
t
C et i 0
0 , ( ) ( )
)
( =
=
=
=∑ ζ
269
Interpolation
• Une courbe définie par (n+1) points de contrôle – (n-k+2) intervalles paramétriques et (n-k+2) arcs de splines
élémentaires
• polynômes de degré k-1 se raccordant Ck-2
– si k=n+1 : Bézier ®1 arc unique
– si k=2 : un arc de spline entre chaque couple de points
• arc = segment de droite
– si 2 < k < n+1 plusieurs arcs de spline
• moins que d'intervalles entre les points de contrôle
– Il ne peut pas y avoir un point de jonction à chaque point de passage les points de jonction de la spline (breakpoints) : il faut les répartir
, ...,n) i (i
n
i Nik t Qi P C
t
C et i 0
0 , () ( )
)
( =
=
=
=∑ ζ
Modélisation Géométrique 271
Interpolation
• Solution 1 : avec (n-k+2) arcs de splines
– système linéaire (n+1,n+1) (en fait (n-1,n-1)) à résoudre – il faut définir T
– il faut bien répartir l'information sur tous les arcs – répartition « harmonieuse » des ti et des zi
• formule de De Boor
, ...,n)
• Solution 1 : avec (n-k+2) arcs de splines – avantages
• même formulation pour tous les ordres
– attention à l'augmentation rapide du conditionnement du système
• formulation homogène avec le lissage – le système est (n+1,m+1) (m<n) – résolution aux moindres carrés
, ...,n)
Modélisation Géométrique 273
Interpolation
• Solution 2 : avec n arcs de splines
– on prend un point de jonction à chaque point de passage
• pas de vecteur de nœuds à définir
– k=4 pour avoir une formulation matricielle stable (limitatif)
– n arcs, k = 4 Þ(n+3) points de contrôle pour la spline globale – vision 1
• (n+3) points de contrôle et (n+1) conditions de passage Þ 2 points libres
– vision 2
• n cubiques (définies par 4 points) : 4 n points à définir
• conditions C0: 2n (2 par arcs)
• conditions C1: n-1 (raccordements entre les n arcs)
• conditions C2: n-1 (raccordements entre les n arcs)
– avantages
• système tridiagonal pour certaines conditions d'extrémités
• choix des conditions d'extrémités versus choix du vecteur de noeuds
273
• Hypothèse fondamentale
– (nu+1)(nv+1) points Pijde l'espace a priori distincts – définissant un maillage « régulier »
– pointsgénéralement bruités
• Méthode directe
• Interpolation - Lissage
– mu=nu et mv=nv : interpolation
– mu<nu et/ou mv<nv : lissage (moindres carrés) Surfaces : introduction
S(ζi,ηj)=Pij =
Modélisation Géométrique 275
Esthétique
• Cartesde courbures – Choix de la courbure
– Choix des échelles de couleur
• Les couleurs et leurs répartitions
– Affichage d'informations complémentaires
• Ex : directions principales en champ de vecteurs
– Interprétation délicate ET manuelle
• Energie de déformation – Hypothèses :
• Élasticité linéaire
• Petites déformations
• Plaque mince donnée par z=f(x,y)
€
• Energie de déformation (suite) – Hypothèse sup. : g= 0
– On peut montrer que :
– En paramétrique
– Très lourd à calculer
– Beaucoup de simplifications … parfois hasardeuses
€
Modélisation Géométrique 277
Analyse de surfaces
• Calcul d'ombrage, rendu réaliste – Facettes sur la surface
– Affichage de la scène lié à la normale (perte de la courbure) – Peu efficace
• Cartes de courbures
– Courbure prise comme une surface (ex : k(u,v))
– Quelle(s) courbure(s) ? (Hº0, Kº0 ?) (gaussienne, moyenne, absolue, …)
– Couleurs, courbes de niveau ?
• Surfaces adjointes
– F(u,v)=S(u,v) +f(u,v) N(u,v)
• S de vecteur normal N
• F à définir (en particulier en fonction des courbures)
– Effets « spectaculaires » 277
Analyse de surfaces
• Tracé de lignes sur la surface – Courbes isoparamétriques – Lignes de niveaux – Lignes de courbures – Lignes asymptotiques – Lignes isophotes
• Lignes d'intensité lumineuse égale : I.n = cste = cos (a)
• Informations
– Lignes de reflet
• Lignes image d'une série de ligne lumineuse plane, un point de vue choisi
• Surface miroir
• Très utilisé en carrosserie (suite de néons //)
Modélisation Géométrique 279
Analyse de surfaces
• Un exemple de lignes de reflet
279
Analyse de surfaces
• Un autre exemple de lignes de reflet
Modélisation Géométrique 281
Analyse de surfaces
281
Analyse de surfaces
• exemple
de lignes de reflet
Modélisation Géométrique 283
Analyse de surfaces
• Exemples
Peinture … Difficilement
perceptible
283
Analyse de surfaces
• Exemples
Modélisation Géométrique 285
Analyse de surfaces
• Un dernier
285
Correction de surface
• Déplacement de points – Direct
– A partir d'opérateurs de déformation
• Travail sur des courbes
– Lignes et colonnes de points de contrôle définissent des courbes
• Non sur la surface
• Réseau de barres (Léon 1994) – Polyèdre = réseau de barres – Nœuds fixes et nœuds libres
– Rigidité dans les barres : équilibre initial
– Forces appliquées : nouvel équilibre (système linéaire)
Modélisation Géométrique 287
Correction de surface
• Lignes de reflet (Klass 80) – Calcul des lignes de reflet
– L'opérateur modifie les lignes de reflet
– Calcul des points de contrôle pour obtenir ces lignes
• Non linéaire !
• Implémenté dans certains systèmes
• Amélioration du polyèdre (Bousquet 97) – Redressement des pôles non sur l'enveloppe convexe – Régularisation du polyèdre de contrôle
– Possibilité de travailler par zone – Simple et très efficace
287
Correction de surface
• Energie de déformation
– Ou souvent une approximation de celle-ci – Déplacement d'un point à la fois (Hadenfeld 94)
• Celui qui a le plus d'action sur l'énergie (calculs lourds)
– Approche variationnelle
• Un critère d'énergie J
• Un voisinage autour de chaque point
• On cherche la position des points dans leur voisinage qui minimise J
• En règle général :
• Approche discrète : frontière fixe :
• Approche continue : efficace mais très lourd
• Approche discrète : efficace et beaucoup plus rapide
€
J= ∫∫k12+k22 ds= ∫∫(4H2−2K) ds
€
J= 4Hij 2−2Kij
∑
∑
€
J= 4Hij
∑ 2
∑
Modélisation Géométrique 289
Méthode directe
• On a un réseau de (nu+1)(nv+1) points de contrôle Pij
• Voir les courbes pour les différentes possibilités
• Très difficile sans outils d'aide
• Intérêt à travailler par ligne et colonne de points
• Problème des outils de désignation en 3D …
€
S(u,v)=
i=0 nu
∑
j=0 nv
∑
Pij Ni,ku(u) Nj,kv(v)289
Interpolation -lissage
• (nu+1)(nv+1) points Pij
– On cherche un réseau de (nu+1)(nv+1) points de Qij: interpolation – On cherche un réseau de (mu+1)(mv+1) points de Qij: lissage
– Choix des valeurs paramétriques :
• Comme pour les courbes
• Plus structure régulière des points Pij
– Beaucoup de paramètres à fixer
• Système linéaire ((nu+1)(nv+1),(nu+1)(nv+1)) – Complexité en a(nu+1)3(nv+1)3
– Possibilité de voir le problème comme l'interpolation croisée sur des
€
S(ζi,ηj)=Pij =
i=0 mu
∑
j=0 mv
∑
Qij ϕi(ζi) ψj(ηj) (i= 0, ...,nu) (j= 0, ..., nv)Modélisation Géométrique 291
Interpolation -lissage
• Autre approche : cas des points « quelconques » – En particulier en reconstruction
• Surface connue approchant le nuage de points
• Projections sur cette surface
• Déduction de valeurs paramétriques pour chaque Pij
• Calcul d'une surface
• Projection des points Pijsur la surface
• Correction de la paramétrisation
291
Remplissage de carreau
• Créer une surface s'appuyant sur 4 courbes frontières – S(u,0), S(u,1), S(0,v), S(1,v) (u,v)Î[0,1]x[0,1]
• Idée de Coons (67)
– Interpolation de S(0,v) et S(1,v) : S1 – Interpolation de S(u,0) et S(u,1) : S2
– S(u,v) = S1(u,v) + S2(u,v) -terme_correctif(u,v)
S(u,v)=[1−u u] # S(0,v)S(1,v)
$ % &
' ( +[1−v v] # S(u,0)S(u,1)
$ % &
' (
- 1−[ u u] # S(0,0)S(1,0) S(0,1)S(1,1)
$ % &
' ( 1−v v
#
$ % &
' ( Vérification :
S(1,v)
S(u,0) S(0,v)
S(u,1)
S(1,1)
S(0,1) S(0,1)
S(0,0)
Modélisation Géométrique 293
Remplissage de carreau
• 1-u et u sont des fonctions de mélange (blending functions) – Se généralisent sous la forme a0et a1avec :
• a0(u) = 1 -a1(u)
• a0(0) = 0
• a0(1) = 1
• Courbes frontières : en général des cubiques de Hermite : – Valeurs au extrémités
– Dérivée en ces points
• Schéma C0: insuffisant
• Schéma C1en se donnant : – même principe
• Technique simple de remplissage de trous entre carreaux€
∂S(u, 0)
∂v ,∂S(u,1)
∂v ,∂S(0,v)
∂u ,∂S(1,v)
∂u
293
Limitations
Forme produit tensorielle : extrêmement puissante
Mais de réelles limites due au « réseau régulier » de points Une géométrie particulière des données
Modélisation Géométrique 295
Problème d'utilisation : Un exemple industriel
• 11235 pôles ...
nombre de pôles en u : 535 nombre de pôles en v : 21 entre pôles sur u : ~10-4m entre pôles sur v : ~10-3m
rentre dans un cube de côté 10-1 m
m 0.0955 (1,0)
S (0,0)
S =
m 0.0407 (0,1)
S (0,0)
S =
295
Problème d'utilisation : Un exemple industriel
• Une pièce de fonderie – Hauteur : »4,5 m
Modélisation Géométrique 297
Problème d'utilisation : Un exemple industriel
• Pièce a : 9x37 points de contrôle (333)
Après amélioration 4x15 points de contrôle
297
Problème d'utilisation : Un exemple industriel
• Pièce b : 28x24 points de contrôle (672)
Après amélioration 5x6 points de contrôle
Modélisation Géométrique 299
Le coin de valise
• Première version
1
2 3
1' 1''
2''
2' 3''
3'
299
Le coin de valise
• Deuxième version
Modélisation Géométrique 301
Géométrie « irrégulière »
301
Géométrie quelconque
Modélisation Géométrique 303
Une « mauvaise » réponse
• Faire dégénérer des quadrilatères en triangles
• Crée des singularités : ne pas généraliser
• S'intéresser à des modèles à partir de triangles
303
Carreau triangulaire de Bézier
• Coordonnées barycentriques d'un point P – Sur un segment : couple unique (t,1-t) avec tÎ[0,1] :
P = t P1+ (1-t) P2
– Sur un triangle : triplet unique (l1, l2, l3)
P1 P P2
λi≥0 λi=1
i=1 3
∑
P=λ1P1+λ2P2+λ3P3
%
&
' ' ( ' '
P P1
P2
P3
λi = aire(triangle(PjPPk))
aire(triangle(PPP)) j≠i et k≠i
Modélisation Géométrique 305
Carreau triangulaire de Bézier
• Polynôme de Bernstein de degré n sur un triangle
– Cas particulier , l3= 0 : l2= 1 -l1
• Carreau triangulaire de Bézier de degré n
– (u,v) point d'un triangle de coordonnées barycentriques (l1, l2, l3) – Pijk: points de contrôle
€
Bi,nj,k(λ1,λ2,λ3)= n!
i!j!k!λ1 iλ2
jλ3
k i+j+k =n
€
Bi,nj,0(λ1,λ2,0)= n!
i!j!0!λ1iλn−i2
€
S(u,v)= Pijk
i+j+k=n
∑ Bi,j,k
n (λ1,λ2,λ3)
305
Carreau triangulaire de Bézier
• Carreau triangulaire de Bézier de degré n
– Cas n = 1
– Cas n = 3
€
S(u,v)= Pijk
i+j+k=n
∑ Bi,j,k
n (λ1,λ2,λ3)
P003
P030
P300
P111
P102 P201
P012
P021
P120
P210
t3 3rt2 3r2t 3st2 6rst
3s2t 3rs2 3r2s
r3 s3
Modélisation Géométrique 307
Carreau triangulaire de Bézier
• Propriétés – Points extrêmes – Courbes frontières – Tangence
– Raccordement
• entre triangles ou avec des quadrilatères
– …
• Une géométrie particulière des données – Différente de la forme produit tensoriel – Non quelconque(sauf pour n=1)
P003
P030
P300
P111
P102 P201
P012
P021
P120
P210
t3 3rt2 3r2t 3st2 6rst
3s2t 3rs2 3r2s
r3 s3
307
Quelques problèmes dérivés
Surfaces découpées (restriction), raccordements, surfaces décalées
Modélisation Géométrique 309
Problèmes dérivés
• Un objet complexe de peut pas être réduit à une surface – Plusieurs surfaces combinées entre elles pour former un objet Toutes les techniques se combinent
• Liaison simple
• Raccordement
+
+
309
Raccordements
• Raccordement suivant un bord commun (G1, G2, …) – Raccordements avec n côtés (sur-contrainte)
• Surfaces de mélange
– Remplissage de carreau à partir des bords du patch – Remplissage à partir de nouvelles courbes d'appui
• Courbes d'intersection (ex aile-carlingue)
• Courbes de contact
Modélisation Géométrique 311
Raccordements
• Boule roulante (Rolling ball) – Rayon fixe
– Rayon variable
311
Surface restreinte
• Une surface restreinte (trimmed surface) est une surface limitée par une courbe de restriction ou découpage (trimmed curve)
– La courbe est définie dans le plan paramétrique
• Résultat d'un calcul d'intersection
• En général connue de façon polygonale
• Convertie ensuite en courbe B-splines ou NURBS dans le paln paramétrique – Approximation
• Dépassement de la contrainte topologique
Modélisation Géométrique 313
Surface restreinte
• A priori une courbe de restriction externe
• Une ou plusieurs courbes de restriction interne – trous éventuels
• Le sens de description indique la partie à conserver
313
Courbe et surface décalée
• Offset curve - Offset surface
• Problème de fabrication : trajectoire du centre de l'outil
• Création d'objets parallèles – Moules, ….
• Apparition de la notion d'offset généralisé (R(u,v))
– Gestion de l'épaisseur variable
€
C
offset(u) = C (u) + R.N (u)
S
offset(u, v) = S(u, v) + R.N (u, v)
Modélisation Géométrique 315
Courbe et surface décalées
Difficultés
• Apparition de singularités
– Rebroussement, auto-intersection, …
• La nature mathématique de l'offset ≠ celle de l'objet initial – Sauf certaines NURBS
– Non intégration au modèle mathématique
€
C
offset(u) = C (u) + R.N (u)
S
offset(u, v) = S(u, v) + R.N (u, v)
315