Courbes & Surfaces de subdivision S. Lanquetin
Plan Paramétrique / Implicite Courbes paramétriques Surfaces Paramétriques Courbes de subdivision Surfaces de subdivision
Plan Paramétrique / Implicite Courbes paramétriques Surfaces Paramétriques Courbes de subdivision Surfaces de subdivision
Deux façons de définir un cercle Paramétrique Implicite F>0 F=0 r r u F<0 x(u) = r cos(u) F(x,y) = x²+y²-r² y(u) = r sin(u)
Représentation d'une courbe Explicite: y = y(x) Ce doit être une fonction (x ->y): limitation importante Paramétrique: (x,y) = (x(u),y(u)) facile à spécifier, modifier, contrôler variable u supplémentaire u "cachée" : le paramètre Implicite: f(x,y) = 0 y peut être une fonction multivaluée de x difficile à spécifier, modifier, contrôler b mx y + = ) sin , (cos ( u y x = 2 = - + r y x
Représentation d'une surface Surface paramétrique déplacement sur la surface en modifiant u, v création de maillages intersections : rayon/surface, intériorité… Surface implicite intersection, "morphing" déplacement sur la surface Surface de subdivision construction récursive : maillage de contrôle + règle conception intéractive x(u,v), y(u,v), z(u,v) F(x,y,z) = 0
Plan Paramétrique / Implicite Courbes paramétriques Surfaces Paramétriques Courbes de subdivision Surfaces de subdivision Courbes de Bézier Courbes B-splines
2 types de courbes Interpolation Approximation La courbe passe par les points de contrôle La courbe est attirée par les points de contrôle
Polynômes linéaires par morceaux Interpolation linéaire p1 p2 p ( u ) = 1 + - 2 u 1 2 fonctions de base
Courbe de Bézier Ecriture matricielle avec 3 points de contrôle
Courbe de Bézier Ecriture matricielle avec 3 points de contrôle
Courbe de Bézier Ecriture matricielle avec 3 points de contrôle Polynômes de Bernstein degré n = 2
Courbe de Bézier Algorithme de De Casteljau (construction récursive)
Courbe de Bézier Algorithme de De Casteljau (construction récursive)
Courbe de Bézier Algorithme de De Casteljau (construction récursive) degré n = 2
Courbe de Bézier Algorithme de De Casteljau (construction récursive) 2 constructions possibles
Courbe de Bézier Construction récursive d’une courbe de Bézier de degré 2
Courbe de Bézier Construction récursive d’une courbe de Bézier de degré 2
Courbe de Bézier Construction récursive d’une courbe de Bézier de degré 2
Courbe de Bézier Construction récursive d’une courbe de Bézier de degré 2
Courbe de Bézier Construction récursive d’une courbe de Bézier de degré 2
Courbe de Bézier Construction récursive d’une courbe de Bézier de degré 2
Courbe de Bézier degré 3 Degré 3 ou ordre 4
Fonctions de mélange de Bézier
Courbe de Bézier Construction récursive d’une courbe de Bézier de degré 3
Courbe de Bézier Construction récursive d’une courbe de Bézier de degré 3
Courbe de Bézier Construction récursive d’une courbe de Bézier de degré 3
Courbe de Bézier Construction récursive d’une courbe de Bézier de degré 3
Courbe de Bézier Construction récursive d’une courbe de Bézier de degré 3
Courbe de Bézier Construction récursive d’une courbe de Bézier de degré 3
Courbe de Bézier Courbe contenue dans l’enveloppe convexe
Courbe de Bézier Déplacement d’un point
Courbe de Bézier Modification de l’ensemble de la courbe
Courbe de Bézier par morceaux
Courbe de Bézier par morceaux
Courbes par morceaux Différentes possibilités d’assemblage Continuité de position Continuité de position et du vecteur tangent Continuité de position, de tangence et de courbure
Courbes B-splines Rappel : Courbe de Bézier de degré n points de contrôle fonctions de bases
Courbes B-splines Courbe B-Spline à n+1 points de contrôle d’ordre k vecteur nodal. fonctions de base B-splines d’ordre k
Courbes B-splines
Courbes B-splines Ordre k = 4 Ordre k = 3 Ordre k = 2
Plan Paramétrique / Implicite Courbes paramétriques Surfaces Paramétriques Courbes de subdivision Surfaces de subdivision
Surfaces de Bézier Surface de Bézier de degré m par n points de contrôle et polynômes de Bernstein
Surfaces de Bézier Construction par produit tensoriel
Surfaces B-splines Surface B-spline d'ordre k par l points de contrôle et sont des vecteurs nodaux. et fonctions de base B-spline de degrés respectifs k-1 et l-1 associées aux vecteurs nodaux U et V.
Plan Paramétrique / Implicite Courbes paramétriques Surfaces Paramétriques Courbes de subdivision Surfaces de subdivision Algorithme de Chaïkin Algorithme DLM Algorithme 4 points
L’algorithme de Chaikin Génération de courbes lisses à partir d’un polygone en 2D (1974)
L’algorithme de Chaikin Génération de courbes lisses à partir d’un polygone en 2D (1974)
L’algorithme de Chaikin Génération de courbes lisses à partir d’un polygone en 2D (1974)
L’algorithme de Chaikin Génération de courbes lisses à partir d’un polygone en 2D (1974) Courbe limite : B-spline quadratique uniforme
L’algorithme (Dyn, Levin et Micchelli) génération de B-splines cubiques
L’algorithme (Dyn, Levin et Micchelli) génération de B-splines cubiques
L’algorithme (Dyn, Levin et Micchelli) génération de B-splines cubiques
L’algorithme (Dyn, Levin et Micchelli) génération de B-splines cubiques
L’algorithme quatre points Génération de courbes lisses interpolantes
L’algorithme quatre points Génération de courbes lisses interpolantes
L’algorithme quatre points Génération de courbes lisses interpolantes
L’algorithme quatre points Génération de courbes lisses interpolantes
L’algorithme quatre points Génération de courbes lisses interpolantes
L’algorithme quatre points Génération de courbes lisses interpolantes
Plan Paramétrique / Implicite Courbes paramétriques Surfaces Paramétriques Courbes de subdivision Surfaces de subdivision Définition Vocabulaire Applications Algorithme de Doo-Sabin Algorithme de Catmull-Clark Algorithme de Loop Algorithme de butterfly Subdivision adaptative
Surface de subdivision Maillage initial Règles de subdivision Surface de subdivision Tout d’abord, qu’est ce qu’une surface de subdivision : C’est une surface définie par : un maillage initial (assez grossier) et un ensemble de règles de subdivision.
Surface de subdivision Maillage initial Règles de subdivision Surface de subdivision L’application des règles de subdivision permet d’obtenir un maillage plus fin à chaque itération
Surface de subdivision Maillage initial Règles de subdivision Surface de subdivision
Surface de subdivision Maillage initial Règles de subdivision Surface de subdivision En appliquant ces règles une infinité de fois, on obtient une surface lisse qui est la surface de subdivision. Surface lisse
Maillage de contrôle / Surface limite
Interpolation / Approximation
Interpolation / Approximation
Interpolation / Approximation
Primal / Dual Principe primal : partage les faces (Loop) Principe dual : partage les sommets (Doo-Sabin).
Uniforme / Adaptatif Mêmes règles appliquées sur toutes les faces Règles différentes en fonction d'un critère de distance de courbure…
Sommets extraordinaires Valence d’un sommet Sommets réguliers intérieurs / extraordinaires
Géométrie Complexe Main de Woody dans Toy Story © Main de Geri dans Geri’s Game © 3
CHAMPS D’APPLICATION Film d’animation 4
CHAMPS D’APPLICATION I NTRODUCT I ON 2.496 polygones 4
CHAMPS D’APPLICATION Film d’animation I NTRODUCT I ON 4
CHAMPS D’APPLICATION Film d’animation Modeleurs CAO I NTRODUCT I ON 4
Principe de Doo-Sabin
Doo-Sabin F R O N T I E F R O N T I E F R O N T I E F R O N T I E F R
Principe de Doo-Sabin
Catmull-Clark Scheme Calcul des nouveaux sommets: point "face" Let this be a part of the control mesh We first compute face point: For each face of the mesh, we compute the average of this face and this point is named face point
Catmull-Clark Scheme Calcul des nouveaux sommets: point "face" point "coté" Then for each edge, we compute the edge point as the average of the endpoints of this edge and the face points of the two faces incident to this edge
Catmull-Clark Scheme Calcul des nouveaux sommets: point "face" point "coté" point "sommet" And then for each vertex point of the control mesh, the vertex point is a weighted average of the edge points generated from the edge incident to this vertex and the face point from faces incident to this vertex
Catmull-Clark Scheme Calcul des nouveaux sommets: point "face" point "coté" point "sommet" Nouveau maillage faces quadrilatérales Finally the new mesh thus built has the characteristic to be quadrilateral
Principe de Catmull-Clark
Principe de Catmull-Clark
Principe de Catmull-Clark
Principe de Catmull-Clark
Principe de Loop Étape 1 : pair impair [C. Loop : Master 1987] 6 On peut considérer qu’il se déroule en 2 étapes : La première consiste à insérer un sommet au milieu de chaque arête de la face afin de créer 4 nouvelles faces [C. Loop : Master 1987] 6
Principe de Loop Étape 2 : Masques 1-k Principe de Loop La deuxième étape consiste à déplacer tous les sommets en effectuant des moyennages pondérés différents selon les propriétés du sommet : intérieur, frontière, pair (ancien) ou impair (nouveau) A gauche les masques pour les sommets pairs En haut sommet intérieur En bas sommet frontière A droite les masques pour les sommets impairs
Principe de Loop Étape 2 : Masques 1/8 3/4 Principe de Loop La deuxième étape consiste à déplacer tous les sommets en effectuant des moyennages pondérés différents selon les propriétés du sommet : intérieur, frontière, pair (ancien) ou impair (nouveau) A gauche les masques pour les sommets pairs En haut sommet intérieur En bas sommet frontière A droite les masques pour les sommets impairs 1/8 3/4
Principe de Loop Étape 1 : Étape 2 : Masques 3/8 1/8 Principe de Loop La deuxième étape consiste à déplacer tous les sommets en effectuant des moyennages pondérés différents selon les propriétés du sommet : intérieur, frontière, pair (ancien) ou impair (nouveau) A gauche les masques pour les sommets pairs En haut sommet intérieur En bas sommet frontière A droite les masques pour les sommets impairs
Principe de Loop Étape 2 : Masques 1/2 Principe de Loop La deuxième étape consiste à déplacer tous les sommets en effectuant des moyennages pondérés différents selon les propriétés du sommet : intérieur, frontière, pair (ancien) ou impair (nouveau) A gauche les masques pour les sommets pairs En haut sommet intérieur En bas sommet frontière A droite les masques pour les sommets impairs 1/2
Principe de Loop
Méthode de type Butterfly Splines de degré 4 sous tension Interpolation du polyèdre de contrôle dans le processus de raffinement Surfaces C1 continues P7 P8 P6 P5 P4 P3 P2 P1
Méthode de type Butterfly A chaque arête, on associe un nouveau point On évalue le nouveau point à l’aide de son voisinage Utilisation d’un paramètre de tension qui sert a fixer l’influence du voisinage Pour C1 continuité w = 1/16 P7 P8 P6 P5 P4 P3 P2 P1
Principe de butterfly
Subdivision adaptative Principe de subdivision adaptive ou non-uniforme : Où subdiviser ? Critère de subdivision Comment subdiviser ? Règles de subdivision This process is called adaptive or non uniform subdivision. This kind of subdivision can be subdivided in two parts: first, how to choose the area of the mesh to subdivide and then how to join the subdivided parts with the mesh remains in preserving triangular faces.
Problem Éviter les trous Générer un "petit" nombre de faces Obtenir un maillage progressif When the surface is adaptively subdivided, cracks can appear between subdivided and non subdivided area. For instance, let this be two faces of the mesh. If the face on the left is not subdivided and the other one is subdivided, a crack appears between these two faces. So the rules are chosen to avoid cracks. Moreover the number of faces of the resulting mesh should be as smaller as possible. But the generating mesh is wished progressif to keep a smooth surface
Subdivision Adaptive Avec le plus petit nombre de faces sommet mobile sommet statique In my thesis, I introduce these adaptive subdivision rules. It is very easy to implement and it generates the smallest number of faces. Vertices are tagged and then according to tags of the face vertices, the subdivision is different. If all tags are static, the face is not subdivided. If only one vertex tag is mobile, the face is subdivided quasi normally except for these vertices, they are not displaced. When only one vertex tag is static, the subdivision is almost the same except for this vertex which is not displaced
Subdivision Adaptive Results 1692 faces (1872) 468 faces The generated meshes are satisfying as you can see on this example 5022 faces (7488) 5133 faces (29952)
Subdivision Adaptive Le maillage n'est pas conforme Except that the mesh is not a good mesh. Indeed, if this vertex is considered as a vertex of this face, this face is no more triangular (it as 4 vertices) And if ththis vertex is not shared by the two faces, one edge corresponds to two edges.
Subdivision Adaptive Algorithme en T [Zorin et al 1998] Vertices are tagged mobile or static If all vertices are static, the face is not subdivided If only one vertex is mobile, the mesh is not subdivided too If only one vertexis static, the face is split in two by bissection [Zorin et al 1998] [Amresh et al 2003]
Subdivision Adaptive Valences peuvent être élevées With this algorithm, some vertices can increase a lot as shown there
Subdivision Adaptive Algorithme Incrémental Sommet progressif In this process, there are 3 differents tags for vertices: static, mobile or progressive. According to the number of each tag, the face is not subdivided or subdivided (bissection or Loop subdivision) [Pakdel et al 2004]
Subdivision Adaptive Grand nombre de faces The resulting mesh is good except that the number of faces is very high
Subdivision Adaptive Un compromis So we introduce a compromise. There are only two tags similarly to the first examples: static and mobile. When all vertices of the face are static, the face is not subdivided. When only one vertex is mobile, the face is split into 3. This splitting has already been used in the red-green algorithm which is a non uniform butterfly rules that’s why I do not explain it in the presentation. When at least one vertex is static, the Loop rules are applied. I do not tag new vertices because the distance to the limit surface has to be computed again.
Subdivision Adaptive Algorithme diagonal We call our algorithm : diagonal algorithm The resulting mesh is satisfying with a small number of faces. The inconvenient of our algorithm comes from the diagonal splitting which generates disproportionate faces as bissection and can give a spiral impression.
Textures
Lancer de rayon