Les courbes et |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||
COURBES PARAMÉTRIQUES CUBIQUES Définition Propriétés, applications
COURBES
COURBES B-SPLINES
SPLINES
B-SPLINES NON
SURFACES
QUADRIQUES
|
1. Problèmatique
La modélisation par facettes se heurte au problème de la création des ensembles de facettes permettant de modéliser des objets élémentaires. En effet
il s'agit là d'une tâche possiblement difficile. Une solution algorithmique existe généralement pour les objets modélisables au moyen d'équations
mathématiques. Malheureusement, tous les objets ne sont pas modélisables au moyen d'équations mathématiques.
Même si cela n'est pas obligatoire, les positions des sommets mathématiquement générés à partir des points de contrôle seront généralement telles
que la forme de la "structure" géométrique ainsi obtenue "lissera" la forme de la structure grossière formée des points de contrôle : 2. Les courbes paramétriques cubiques en 3D Courbe paramétrique cubique Q de R3 (donc en 3D) : Courbe définie par le système d'équations paramétriques cubiques suivant : (1) Pour obtenir des segments de courbe, on considère que l'unique paramètre variable t appartient à un intervalle [min,max] (fréquemment [0.0,1.0]). Reformulation matricielle La formulation (1) est peu pratique pour la finalité qui est la notre. En effet, elle ne fait pas directement apparaître la notion de point de contrôle. Une reformulation matricielle permet de résoudre cette difficulté.
Soit le vecteur T = (t3, t2, t, 1.0).
4 coefficients numériques constants sont nécessaires pour définir chacune des 3 équations paramétriques.
Pour faire "apparaître" des points de contrôle, on transforme la matrice C en la matrice produit M.G où M est une matrice 4x4 de valeurs
numériques réelles (appelée matrice de base) et G est une matrice 4x3 (appelé vecteur géométrie) de 4 contraintes géométriques : 4 points de
contrôles. Q(t) = (x(t), y(t), z(t)) = T.C = T.M.G = (2) La matrice G permet donc de représenter 4 contraintes géométriques s'appliquant à la courbe qui s'apparenteront à la position de 4 points dans l'espace de représentation. La courbe générée évoluera "entre" ces 4 points. La matrice M permet d'attribuer des "poids" respectifs à chacun des coefficients ti sappliquant à une contrainte géométrique, permettant ainsi de définir la "forme" de la courbe.
De bons choix de matrice M permettront d'obtenir des tracés de courbe approximant la ligne polygonale à 4 sommets définie par les 4 points de contrôle.
Les courbes de cette famille ont pour propriétés d'être:
En pratique
D'un point de vue pratique, générer une courbe paramétrique cubique nécessitera de :
Les propriétés de continuité, de continues dérivabilités première et seconde sont primordiales car elles assurent la possibilité de se déplacer uniformément
sur tous les points de la courbe. Elles assurent aussi que, quand on fait varier t uniformément, la vitesse de déplacement est continue (pas de déplacement
instantané) et l'accélération du déplacement est continue (pas de saute de vitesse instantanée).
Les courbes paramétriques cubiques ne sont pas déformées par transformation géométrique de type translation, rotation, zoom (ou composition de ces
types de transformation, donc par exemple projection parallèle orthographique) de leurs points de contrôle. En revanche, elles sont modifiées si
on souhaite faire une transformation de type mise en perspective. Problèmatique : Les courbes paramétriques cubiques sont définies sur 4 points de contrôle. Que faire si on en a moins (3 points) ou plus (5, 6, 7 points ou encore plus) ?
P0, P1, P2, P3, ..., Pn sont les n+1 points définissant une ligne polygonale (n > 1). La
courbe de Bézier définie par ces points est défnie par l'équation paramétrique de degré n suivante :
Une courbe de Bézier Problèmes
Temps de calcul :
Aptitude à assurer une fonction d'outil de modélisation :
Algorithme (langage C) Précision : Le calcul des Cin est prétraité dans un tableau de façon à en optimiser le temps de calcul global.
struct coord_3D { Cas particulier Si n = 3 (4 sommets), C(t) peut être présentée sous la forme d'une courbe paramétrique cubique définie par les 4 points de contrôle P0, P1, P2, P3. Les 4 contraintes géométriques G1, G2, G3 et G4 sont alors les positions de ces 4 points de contrôle. On a alors: C(t) = (x(t), y(t), z(t)) = Problèmatique : Comment acquérir un contrôle local et obtenir un bon lissage avec beaucoup de points de contrôle ? Solution : Relier 2 courbes de Bézier définies sur 4 sommets tels que le dernier sommet définissant la première courbe soit confondu avec le premier sommet de la seconde. C'est à dire tracer la courbe Pi avec 0 <= i <= 6 (soit au total 7 sommets différents).
Assemblage de 2 courbes de Bézier
Les conditions suivantes doivent être respectées pour que les propriétés de continues dérivabilités première et seconde souhaitées soient obtenues
au point P3 qui est le point problématique :
Avantages
- On dispose d'un contrôle local. Inconvénient
- Tous les points de contrôle ne sont pas "au même niveau". Il y a les points partagés et les autres. Application
- Tracé de courbes lissées quand le nombre de points de contrôle n'est pas fortement imposé 4. Les courbes B-Splines (splines non rationnelles uniformes)
Problèmatique : Comment lisser une ligne polygonale quelconque de telle façon que la modification de la position d'un seul
sommet ne modifie pas l'intégralité de la courbe et que l'on ait une bonne capacité de lissage, c'est à dire que la courbe soit assez
attirée par les points de contrôle ? P0, P1, P2, P3, ..., Pn-1 sont les n points définissant une ligne polygonale P (n >= 4, 0 <= i < n). Les n points de P permettent de définir les n-3 vecteurs géométriques Gi = avec 0 <= i < n-3. Ces n-3 vecteurs géométriques permettent la génération de n-3 morceaux de courbe paramétrique cubique calculés sur l'intervalle de variabilité [0.0,1.0] pour t (variation uniforme sur cet intervalle) en utilisant la matrice de base . Ces morceaux sont jointifs (voir preuve ci-dessous). Une fois réunis ils formeront une courbe lissée approximant la ligne polygonale P. A toutes les jointures les dérivées première et seconde sont égales (preuve non fournie ici mais dérivée de celle de la continuité).
Assemblage de morceaux de courbe Continuité des B-Splines Les morceaux de courbe B-Spline se joignent obligatoirement en leurs extrémités. En effet, soient les deux morceaux de courbe correspondant à Gi et Gi+1, le premier se finit à t = 1.0, le second commence à t = 0.0. En ces points, on calcule que les coordonnées obtenues sont identiques et ont pour valeur . Cette position est quelque part à l'intérieur du triangle défini par les trois sommets, plus proche de PPi+2 que des 2 autres car il s'agit du barycentre des points Pi+1, Pi+2 et pi+3 respectivement affectés des poids 1.0, 4.0 et 1.0. Contrôle local
Chaque morceau de courbe dépend de 4 points de contrôle. Chaque point de contrôle intervient sur au maximum 4 morceaux de courbe. Attractivité des points de contrôle La preuve de continuité a déterminé que les points de jointure sont situés dans les triangles (Pi+11,Pi+2, pi+3) et, dans ces triangles, assez attirés par les points Pi+22, (poids 4.0 pour ce point, 1.0 pour les deux autres). Les points de contrôle attirent donc assez fortement la courbe générée.
Les courbes B-Splines NRU : Une solution simple pour passer par le premier et le dernier point consiste à tripler ces points. Algorithme (langage C)
struct coord_3D {
5. Les courbes Splines de Catmull-Rom
Problèmatique : Comment lisser une ligne polygonale par une courbe paramétrique cubique passant par chacun des sommets de cette
ligne. P0, P1, P2, P3, ..., Pn-1 sont les n points définissant une ligne polygonale P (n >= 4, 0 <= i < n). On définit les n-3 vecteurs géométriques Gi = avec 0 <= i < n-3. La matrice de base utilisée pour la génération des morceaux de Spline est et l'intervalle de variabilité uniforme de t est [0.0,1.0]. Pour le vecteur géométrique Gi, la courbe commence pour t = 0.0 en Pi+1, et finit pour t = 1.0 en Pi+2. Les morceaux se rejoignent bien et, de plus, ils se rejoignent au niveau des points de contrôle.
Assemblage de morceaux de courbe
Les courbes splines ainsi définies : Une solution simple pour passer par le premier et le dernier point consiste à doubler ces points. 6. Comparaison entre courbes lissées Le programme ci-dessous présente l'affichage des trois types de courbe lissée présentés dans ce chapitre.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
7. Les courbes B-Splines non uniformes rationnelles : les NURBS
Problématique : Une B-Spline non rationnelle est calculée au moyen de points de contrôle. Si elle est visualisée en perspective,
la même courbe devra être toujours être modélisée et affichée quels que soient les paramètres de mise en perspective. Or, il n'est pas possible
de placer les points de contrôle en perspective et de calculer la B-Spline ensuite. On devra d'abord calculer la B-Spline pour ensuite faire
la mise en perspective sur l'ensemble des points obtenus. Faute de cet ordre de manipulation, la B-Spline obtenue n'est pas invariante par
modification des paramètres de mise en perspective avec pour conséquence des problèmes de visualisation. Solution : Utiliser les B-Splines non-uniformes rationnelles. Définition mathématique Courbe NURBS : avec x(t), y(t), z(t) et w(t) des équations paramétriques cubiques représentant des coordonnées homogènes. 8. Les surfaces paramétriques bicubiques Les surfaces paramétriques bicubiques sont une généralisation aux surfaces des courbes paramétriques cubiques. Soit une courbe cubique Q(s) = S.M.G (s et S sont équivalents à t et T). Le vecteur géométrique G est constitué de composantes constantes. Si ces composantes sont remplacées par des courbes paramétriques cubiques, on obtient : Q(s,t) = S.M.G(t) = S.M. avec s et t compris dans l'intervalle [0.0,1.0].
Les Gi sont des cubiques.
Chaque point Pij est un point de contrôle de Gi(t).
Reconstruite sous la forme d'une formule unique, on obtient : La modification d'un seul des 16 points de contrôle entraîne la modification de l'ensemble de la surface.
Le choix des matrices M et M' permet d'adapter les caractéristiques de la surface modélisée aux spécifications désirées. Interprétation intuitive Une interprétation intuitive consiste à considérer qu'une telle surface est générée à partir d'une matrice carrée de 4x4 points de contrôle. Les 4 lignes de 4 points de cette matrice permettent de générer 4 séries primaires de m points qui vont eux-mêmes être utilisés pour constituer m séries de 4 points de contrôle, chacune de ces m séries permettant de générer une serie secondaire de n points modélisant la surface lissée. Au total, on obtient donc un maillage quadrangulairede m*n points qui peut être utilisé pour généré des facettes.
Organisation des 4x4 points de contrôle en un maillage quadrangulaire (en bleu)
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
On appelle surface quadrique une surface d'équation : f(x,y,z) = ax2 + by2 + cz2 + dxy + eyz + fxz + gx + hy + iz + j = 0.0 Cette famille de surfaces est très vaste. Il est possible de représenter des plans, des sphères, des paraboloïdes, des ellipsoïdes,
Les raisons qui pourraient faire utiliser les surfaces quadriques sont multiples :
Les surfaces et courbes lissées ont été initialement conçues comme outils de CFAO pour la modélisation d'objets. Plus récemment, l'informatique graphique s'est emparée de ces objets mathématiques comme outils de modélisation pour représenter les objets des scènes qui ne seraient pas des objets canoniques "simples" (cube, sphère, ...) et qui seraient trop complexes à modéliser sous la forme d'un ensemble de facettes gérées individuellement. Les surfaces et courbes lissées viennent "s'intercaler" entre ces deux techniques de modélisation. Les outils de haut niveau en modélisation pour la synthèse d'images font appel aux NURBS (Non Uniform Rational B-Splines) qui sont une évolution des B-Splines pour permettre un affichage en perspective. |