Modélisation Géométrique
Transcription
Modélisation Géométrique
Modélisation Géométrique Tamy Boubekeur Stefka Gueorguieva 12 janvier 2007 2 Sommaire I Modélisation Géométrique des Surfaces 1 Introduction 1.1 1.2 1.3 1.4 1.5 Description du cours Motivation . . . . . Dénition . . . . . . Thème du cours . . . Acquisition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 . 9 . 10 . 10 . 11 Introduction . . . . . . . . . . . . Diérentes représentations . . . . Propriétés géométriques de base . Propriétés topologiques de base . Isotropie et Anisotropie . . . . . Quelques constructions simples . Courbure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Maillages Polygonaux 2.1 2.2 2.3 2.4 2.5 2.6 2.7 7 3 Surfaces Paramétriques 13 13 13 14 15 16 16 16 19 3.1 Enjeux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.2 Bézier . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3 B-Spline . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 4 Surfaces de subdivision 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 Présentation . . . . . . . . . . . . . . . . Schéma . . . . . . . . . . . . . . . . . . Matrice de subdivision . . . . . . . . . . Subdivision adaptative . . . . . . . . . . Traitement géométrique par subdivision Implémentations . . . . . . . . . . . . . Temps réel . . . . . . . . . . . . . . . . Modélisation multi-résolution . . . . . . Memo . . . . . . . . . . . . . . . . . . . 5 Surfaces Implicites 5.1 5.2 5.3 5.4 Dénition . . . . . . . . . . . Surfaces implicites à squelette Visualisation . . . . . . . . . Application dans l'industrie . . . . . 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 25 27 29 30 30 30 31 32 33 35 35 36 37 38 4 SOMMAIRE 5.5 Surfaces implicites variationnelles . . . . . . . . . . . . . . . . . . 38 6 Nuages de points 41 7 Partitionnement 45 8 Reconstruction de Surfaces 49 9 Simplication de Surfaces 55 II Modélisation Géométrique des Solides 59 6.1 Origine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.2 Dénition et Création . . . . . . . . . . . . . . . . . . . . . . . . 41 6.3 Exploitation du nuage . . . . . . . . . . . . . . . . . . . . . . . . 43 7.1 Structures de Subdivision Spatiale hiérarchique . . . . . . . . . . 45 7.2 Comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 8.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 8.2 Les algorithmes de reconstruction . . . . . . . . . . . . . . . . . . 50 9.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 9.2 Les algorithmes de simplication . . . . . . . . . . . . . . . . . . 57 10 Fondements 10.1 10.2 10.3 10.4 Motivation . . . . . . . . . . . . Solides . . . . . . . . . . . . . . . Propriétés des représentations . . Classication des représentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Motivation . . . . . . . . . . . . . . . . . . Représentation en énumération spatiale . . Représentation en subdivision spatiale . . . Représentation en décomposition cellulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Représentations décompositives 11.1 11.2 11.3 11.4 . . . . . . . . . . . . . . . . . . . . 61 61 61 62 63 65 65 65 66 67 Première partie Modélisation Géométrique des Surfaces 5 Chapitre 1 Introduction 1.1 Description du cours étude des surfaces 3D et de leurs représentations étude des traitements géométriques TP/TD : Pascal Desbarats CC = projets + présentation article (25%) exam (25%) 50% restant : seconde partie du cours 1.2 Motivation 1.2.1 CAO - Simulation origine : Pierre Bézier pour modéliser des voitures CAO : Conception Assistée par Ordinateur intérêt : visualisation et simulation 1.2.2 Animation lm, manga, . . . 1.2.3 Imagerie médicale 1.2.4 Culture - Sauvegarde visualisation, restauration, . . . photo 3D de l'objet 1.2.5 Divertissement jeux 7 8 CHAPITRE 1. INTRODUCTION 1.3 Dénition 1.3.1 Modélisation décrire un objet ou un phénomène par un ensemble de nombres, fonctions, limites, . . . sciences transverses : biologie, physique, chimie, mathématiques appliquées, sociologie, écologie au c÷ur de la science informatique : les ordinateurs ne savent manipuler qu'un ensemble ni de nombres 1.3.2 Modélisation Géométrique décrire la forme d'un objet par un ensemble ni de valeur 1.3.3 En pratique 1. choix d'une représentation 2. spécication des valeurs des caractéristiques de cette représentation pour un objet donné 3. Manipulation de ces valeurs manipulation de la forme de l'objet l'ordinateur devient un crayon virtuel Note : la complexité de la représentation est diérente de la complexité de l'objet. Il faut adapter la représentation à l'objet que l'on veut représenter. 1.3.4 Exemple Quelle représentation choisir pour une droite dans un espace euclidien à 2 dimensions 1. représentation paramétrique : 1. représentation implicite : y = ax + b a0 x + b0 y + c0 = 0 2. caractéristiques : {a, b} 2. caractéristiques : {a0 , b0 , c0 } La représentation implicite a besoin de plus de caractéristiques mais il est plus facile de faire certains calculs avec. Il faut adapter la représentation à l'utilisation. 1.4 Thème du cours les surfaces 3D représentions et traitement interface volume - volume ce que l'on voit d'un objet → informatique graphique but 1. acquérir une vue globale de la modélisation géométrique 2. comprendre les principes mathématiques de base 3. expérimenter leur implémentation 1.5. ACQUISITION 1.5 Acquisition 9 10 CHAPITRE 1. INTRODUCTION Chapitre 2 Maillages Polygonaux 2.1 Introduction Un polygone est un n-uplet de sommets. Exemples : triangle, quadrangle, pentagone, . . . La plupart des maillages sont triangulaires ou quadrangulaires. Historiquement, il s'agit de la première représentation. Elle consiste en un ensemble de facettes dans l'espace. Inconvénient : problèmes de qualité pour représenter des surfaces lisses ; il faut beaucoup de polygones. Avantage : achage en temps réel sur les machines courantes (le GPU ne prend que des triangles) Cette représentation est donc utilisée surtout pour les jeux vidéos. Ici on va parler d'une masse de polygones assez importante pour représenter éventuellement des surfaces lisses. 2.2 Diérentes représentations 2.2.1 Soupe de polygone Présentation Pour chaque triangle, on donne à la suite les coordonnées de ses trois sommets. Exemple A(xA , yA , zA ) B(xB , yB , zB ) . . . Sp = {xA , yA , zA , xB , yB , zB , xC , yC , zC , 11 12 CHAPITRE 2. MAILLAGES POLYGONAUX xA , yA , zA , xD , yD , zD , xB , yB , zB } Avantages on peut acher de suite on peut acher n'importe quelle conguration de triangle en un sommet, on peut avoir autant de propriétés que de triangles on peut eectuer des traitements par ux Inconvénients on écrit plusieurs fois la même chose : redondance attention quand on veut déplacer un point 2.2.2 Maillages indexés Présentation graphe avec géométrie et topologie séparées une liste de sommets (V ) une liste de relation topologique arêtes (Edge E) faces (F) en pratique, {V, F } (OpenGL). On appelle V le plongement géométrique et F la topologie. V est représenté par une liste de réels (oat) et F par une liste de n-uplets d'indices (unsigned int). Exemple Les sommets : A(xA , yA , zA ), B(xB , yB , zB ), C(xC , yC , zC ), D(xD , yD , zD ) Les faces : t1 (A, B, C), t2 (A, D, B) 2.3 Propriétés géométriques de base propriétés associées aux sommets (le plus souvent), arêtes ou faces → Attributs Attributs de sommets position (p) vecteur normal (n) coordonnées paramétriques ((u,v)) apparence : couleur, indice de matériel, . . . paramètres physiques pour la simulation ... Arêtes plis vifs (discontinuité du gradient) Faces couleur 2.4. 13 PROPRIÉTÉS TOPOLOGIQUES DE BASE 2.3.1 Normales essentielles pour le rendu BRDF stockées par sommets utiles pour certains traitements géométriques simplication calcul moyennes des normales des faces incidentes moyennes pondérées par les angles des arêtes incidentes plus robustes pour les distributions de triangles non uniformes nf = (p1 − p0 ) ∧ (p2 − p0 ) k(p1 − p0 ) ∧ (p2 − p0 )k P αi ni ṅ = Pi i ni n= ṅ kṅk 2.3.2 Coordonnées paramétriques (u, v) ∈ R2 . Par convention : (u, v) ∈ [0, 1]2 Dénition d'une propriété de surface à partir d'une fonction bivariée : f: R2 → (u, v) → Rn c Dénition de coordonnées paramétriques continues sur l'ensemble des sommets d'un maillage : paramétrisation. 2.4 Propriétés topologiques de base 2-variété (2-manifold) : variété 2-dimensionnelle (ie surface) : le voisinage de tout point est homéomorphe à un disque (un demi-disque pour les sommets de bord) exemple : une arête commune à 3 triangles provoque une non-variété Genre ( Genius ) : nombre de trous au sens d'Euler, nombre maximum de courbe de coupe sur la surface maintenant une unique composante sphère : genre 0 Tore : genre 1 ... Pour calculer le genre : nombre de lignes refermées que l'on peut tracer sur la surface sans que la surface se coupe en plusieurs parties. 14 CHAPITRE 2. MAILLAGES POLYGONAUX 2.5 Isotropie et Anisotropie Isotropie : les polygones ont une forme similaire sur tout le maillage triangles quasi-équilatéraux traitement géométrique numériquement plus stables neutralité pour la déformation aucune restriction sur la taille Anisotropie : la forme des polygones suit la géométrie de la surface arêtes alignées sur les directions de courbures principales lignes de ots distance géodésique (=longueur du chemin le plus court de la surface) Notion d'optimalité du maillage 2.6 Quelques constructions simples extrusions forme dénie par une courbe 2D et une trajectoire 3D révolution forme dénie par la révolution d'une courbe de prol 2D cylindre généralisé combinaison d'une extrusion et d'une révolution (swept surface ou surface de balayage) 3 courbes : coupe, trajectoire et prol basée sur le repère de Frénet 2.7 Courbure 2.7.1 Courbure d'une courbe 1 γ= r r = ∞; γ=0 r = 0; γ=∞ norme de dérivée seconde de la courbe (accélération) inverse du rayon du cercle osculateur (le plus grand cercle tangent en un point sans que ce cercle coupe la courbe) intuitivement : à quel point la ligne est courbée en un point courbure algébrique orientée/signée utilisation du repère de Frénet 2.7. 15 COURBURE 2.7.2 Repère de Frénet v= un problème récurrent : faire évoluer un repère euclidien le long d'une courbe repère de Frénet en P : T, N, B T : tangente à la courbe en P N : vecteur normal à la courbe en P B : vecteur binormal à la courbe en P courbure : γ= a= dp du d2 p du2 N= T = = v kvk v∧a kv ∧ ak T ∧B ~ T ∧ Bk kv ∧ ak kvk3 Note : la variation de B est appelée la torsion. Elle est nulle pour une courbe plane. 2.7.3 Courbure d'une surface courbures principales courbure maximum : γmax courbure minimum : γmin courbure moyenne γ= γmin + γmax 2 courbure gaussienne γG = γmin × γmax Si γG = 0, la surface est développée (propriété d'isométrie) 2.7.4 Courbure d'un maillage . . . plus dicile Formellement courbure gaussienne nulle à l'intérieur des polygones (zone parfaitement plane) courbure gaussienne innie sur les arêtes des polygones (plis vifs) Mais maillage = échantillonnage d'une surface lisse par morceaux courbure de la surface lisse sous-jacente ? optimiser un patch paramétrique prêt du maillage, et considérer ses propriétés diérentielles chercher le cercle osculateur dans un voisinage calculer le tenseur de courbure sur un voisinage 16 CHAPITRE 2. MAILLAGES POLYGONAUX 2.7.5 Méthode alternative à la courbure On estime la courbure par 2π − X i αi Chapitre 3 Surfaces Paramétriques 3.1 Enjeux Surface lisse ? exemples : formes organiques (visage) surface d'un liquide carrosserie d'une voiture courbe (dessin vectoriel) Formellement, c'est une surface de continuité C k avec k > 0 Besoin d'une représentation spécique Continuité Maillages : C 0 C T : continuité du plan tangent C 1 : continuité de la normale C 2 : continuité des reets sur la surface Pas d'interprétation directe pour les ordres supérieurs Continuité par morceaux : surface globalement lisse, avec des singularités (plis vifs, pointes, coins) Cette courbe est C T , mais pas C 1 . En eet, les tangentes sont continues mais pas les normales. Contrôle Paramètres de contrôle d'une surface/courbe lisse faible nombre intuitifs graphiques/visualisables Idée utiliser un réseau de points de contrôle 17 18 CHAPITRE 3. SURFACES PARAMÉTRIQUES un polygone pour manipuler une courbe lisse une grille pour manipuler une surface lisse paramétrer la surface lisse sur le réseau de contrôle ⇒ Spline Spline S : Rm → Rn m ≤ n objet paramétrique dénissant une variété û → x̂ énumération de tous les points de la surface par itération sur les paramètres En pratique domaine de dénition des paramètres réduit : û ∈ [0, 1]m courbe 2D : c(u) = {x, y} courbe 3D : c(u) = {x, y, y} surface 3D : s(u, v) = {x, y, z} Réseau de contrôle un ensemble réduit de points 2D ou 3D pour piloter une courbe ou une surface spline c est injective c est paramétrée par le polygone P := f P (u) Problème : comment construire la fonction c à partir des points de P ? 3.2. 19 BÉZIER 3.2 Bézier 3.2.1 Courbe de Bézier Inventée par Pierre Bézier pour modéliser des carrosseries avec des splines. une courbe de Bézier pilotée par un ensemble de N + 1 points de contrôle {p0 , . . . , pN } s'écrit c(u) = N X p k BN k (u) k=0 Les BN k sont les polynômes de Bernstein BN k (t) = N k (1 − t)N −k tk avec N k = N! k!(N − k)! les polynômes de Bernstein correspondent au développement de ((1 − t) + t)N Quelques propriétés remarquables invariance ane : translation (resp rotation et étirement) par translation (resp rotation et étirement) des points de contrôle, sans déformation introduite. interpolation des extrémités (P0 et PN ), approximation pour les autres points une courbe de Bézier est entièrement contenue dans la coque convexe de ses points de contrôle : donc dans la boite englobante de P → culling/cliping pour le rendu dénition globale : chaque point de contrôle inuence la totalité de la courbe Le degré d'une courbe de Bézier correspond au degré de son polynome ; une courbe de Bézier de degré n a n + 1 points 3.2.2 Patch de Bézier Idée : considérer une surface comme dénie par le balayage d'une courbe dans l'espace : la courbe se déforme pendant qu'elle se déplace pour épouser la surface une courbe de Bézier avec des points de contrôle variant en fonction d'un second paramètre : cette variation peut elle-même s'exprimer par une courbe de Bézier : pi (u) = N X k=0 pik BN k (u) 20 CHAPITRE 3. SURFACES PARAMÉTRIQUES Un patch de Bézier est déni par le produit tensoriel de ces courbes : p(u, v) = M X N X N pik BM i (u)Bk (v) i=0 k=0 les patchs de Bézier héritent des propriétés des courbes de Bézier En pratique : patch 4 × 4 ensemble de patchs pour approximer correctement une surface 3.2.3 Algorithme de Casteljau Cet algorithme permet d'évaluer une courbe spline sans la calculer explicitement. Il consiste à partir du premier segment et à se déplacer d'un pas constant vers le dernier segment. On voit alors apparaître la courbe. Plus le pas est petit, plus l'approximation est ne. 3.3 B-Spline 3.3.1 Courbe courbe algébriquement polynomiale par morceaux contrôle local par construction à partir de la courbe de Bézier B-spline de degré n Construite à partir de courbes de Bézier de degré n 2 courbes de Bézier consécutives ont tous leurs points en commun sauf le premier point de la première courbe le dernier point de la deuxième courbe B-spline = liste de points de contrôle + vecteur de n÷uds 3.3. 21 B-SPLINE 3.3.2 Passage de Bézier à B-spline [ABC] : point de Bézier [P QR] : points de contrôle de la B-spline Q=B P symétrique de B par rapport à A R symétrique de B par rapport à C [P Q] : position et tangente en A B-Spline uniforme de degré 2 Continuité C 1 au point de raccordement C Note : B-spline de degré n = continuité C n−2 ; répéter un point de raccordement correspond à faire diminuer d'un ordre la continuité au point 3.3.3 Vecteur de N÷uds une B-spline uniforme est dénie sur l'intervalle [0, N ] pour N courbes de Bézier sous-jacentes. On normalise la somme des intervalles sur [0, 1] : c'est uniforme. B-spline non-uniforme première courbe de Bézier sous-jacente dénie sur [0, t0 ] deuxième courbe de Bézier sous-jacente dénie sur [t0 , t1 ] ... [t0 , t1 , . . . , 1] : vecteur de n÷uds de la courbe B-spline 3.3.4 NURBS Non Uniform Rational B-Spline Rationnel = coecients de pondération sur les polynômes de Bernstein pour reproduire d'autres types de coniques que les paraboles meilleur contrôle local de la courbe : courbure Les NURBS permettent de représenter toutes les courbes et toutes les surfaces pourvu que le polygone de contrôle soit une grille (genre ≤ 1) 3.3.5 Rendu d'une surface spline trivial ! itérer sur les paramètres (u, v) : pour toute valeur (ui , vj ) dessiner le quadrangle ((ui , vj )(ui+1 , vj )(ui+1 , vj+1 )(ui , vj+1 )) Rendu ecace en temps réel : 22 CHAPITRE 3. SURFACES PARAMÉTRIQUES Vertex Shader pour évaluation de la spline en tout point (notion de déplacement procédural) topologie xe, encodée dans la mémoire graphique(VBO) voir l'article Generic Mesh Renement 3.3.6 Surface B-spline et NURBS Même principe que pour les patchs de Bézier : produit tensoriel de courbes. Les grilles de contrôles impliquent des restrictions topologiques. On emploie des surfaces de subdivision. Chapitre 4 Surfaces de subdivision 4.1 Présentation 4.1.1 Pourquoi ? Application animation FX jeux vidéos CAO D'où viennent les surfaces de subdivision problème de départ : comment raner le réseau de contrôle d'une surface spline sans modier la géométrie de surface ? type de ranement souhaité : local, récursif, ecace et simple idée n°1 : ne plus considérer la surface spline et travailler uniquement avec le réseau de contrôle et ses règles de ranement idée n°2 : sans surface spline à maintenir, considérer une topologie arbitraire pour le réseau de contrôle idée n°3 : ne plus l'appeler réseau de contrôle mais surface de subdivision 4.1.2 Surface de Subdivision Dénition fondamentalement : maillage de base (possiblement marqué) + règles de subdivision un ensemble de règles de subdivision = un schéma de subdivision évaluation récursive 1. ranement linéaire 2. lissage 3. ranement linéaire 4. lissage 23 24 CHAPITRE 4. SURFACES DE SUBDIVISION 5. . . . évaluation paramétrique 1. construire une surface spline pour chaque polygone de base en fonction de son voisinage et du schéma de subdivision 2. évaluer la surface limite de subdivision en évaluant la surface spline(coordonnées barycentriques) Vocabulaire sommet pair : sommet existant à la précédente étape de subdivision sommet impair : sommet insérer à l'étape courante sommet régulier : valence 6 pour les maillages triangulaires, 4 pour les maillages quadrangulaires sommets extraordinaires : tous les autres schéma primal : subdivision de faces schéma dual : subdivision de sommets Masque de subdivision une représentation graphique simple d'un schéma de subdivision Critères de classication des schémas de subdivision interpolation ou approximation types de polygones du maillage de base : triangles, quadrangles, pentagones, hybrides, . . . localité : connaissance nécessaire du voisinage d'un polygone pour le subdiviser (anneaux des 1-voisins, 2-voisins) continuité de la surface limite : analyse de la matrice de subdivision pour les sommets réguliers et extraordinaires primal ou dual Classication primal approximé interpolé dual approximé Maillage Triangulaire Maillage quadrangulaire Loop (C2) Catmull-Clark (C2) Buttery modié (C1) Kobbelt (C1) Maillage Triangulaire Maillage quadrangulaire Doo-Sabin (C1) √ 3 (C2) Mid-Edge Bi-Quartic (C2) 4.2. 25 SCHÉMA 4.2 Schéma 4.2.1 Schéma de Loop Schéma approximant pour maillages triangulaires continuité C2 partout sauf aux sommets extraordinaires (C1) ranement primal Marquage (sommets, arêtes, faces) et règles exceptionnelles bords plis vifs et semi-vifs coins points singuliers contrainte par la normale Les masques de Loop : Sommets pairs Les coecients des Pir sont αnn et celui de Qr est (1 − αn ) avec n le nombre de voisins et Sommets pairs αn = 1 2π (40 − (3 + 2 cos( ))2 ) 64 n D'où Qr+1 = (1 − αn )Qr + n X αn i=0 n Pir 26 CHAPITRE 4. SURFACES DE SUBDIVISION 4.2.2 Le schéma de Catmull-Clark Schéma approximant pour maillages quadrangulaires C2 partout sauf aux sommets extraordinaire (C1) ranement primal règles spéciales : arêtes/plis vives, coins, points singuliers ( pointes ) Face n f= 1X vi n i Arête e= v1 + v2 + f1 + f2 4 Sommet vi+1 = n−2 1 X 1 X vi + 2 ej + 2 fj n n j n j 4.2.3 Le schéma de Buttery modié Schéma interpolant pour maillage triangulaire C1 partout (version modiée) Sommets impairs extraordinaires sommets impairs modiés Bords et arêtes vives k = 3 s0 = k = 4 s0 = k>5 3 8 5 12 s1,2 = s2 = −1 8 −1 12 s1,3 = 0 1 1 2iπ 1 4iπ ( + cos + cos ) 4 4 n 2 k Note : comme ce schéma est interpolant, il y a uniquement des masques de sommets impairs 4.3. 27 MATRICE DE SUBDIVISION 4.2.4 Racine de 3 √ 3 un schéma triadic (ranement 1-3) pour maillage triangulaire (rotation de la topologie locale) étape de ranement plus ne que loop arêtes vives subdivision adaptative simple Insertion des sommets impair : on prend le barycentre du triangle : q= 1 (pi + pj + pk ) 3 Relaxation des sommets pairs : on fait une interpolation entre la position d'origine et le barycentre du 1-voisinage : S(p) = (1 − αn )p + αn avec αn = n−1 1X pj n i=0 4 − 2 cos( 2π n ) 9 4.3 Matrice de subdivision un schéma de subdivision peut être exprimé par une matrice M de poids w M est creuse pour les schémas usuels M ne doit pas être utilisée pour l'implémentation permet l'étude analytique de la courbure la continuité de la surface limite P i+1 = M P i w00 w10 .. . 0 w01 w11 ··· ··· 0 ··· .. . .. . 0 0 .. . 0 i+1 pi0 p0 pi+1 pi1 1 .. = .. . . pin pi+1 n Note : en fait un schéma est exprimé par 2 matrices, une de ranement pour insérer les nouveaux sommets, et une de convergence pour déplacer les sommets 28 CHAPITRE 4. SURFACES DE SUBDIVISION existants (la plus intéressante à étudier) 4.4 Subdivision adaptative subdiviser à diérentes profondeurs les polygones d'un maillage avantage : contrôle/réduction du nombre de polygones selon divers critères (courbe, visibilité, niveau de détails) inconvénients plus dicile à analyser plus dicile à implémenter Attention : il faut garantir que l'on n'introduit pas de trous dans la variété ( craquelures entre polygones subdivisés à diérentes profondeurs) 4.5 Traitement géométrique par subdivision . . . nombreux, avec en particulier conversion entre un maillage et un ensemble de splines reconstruction multirésolution (analyse/déformation/rendu) paramétrisation compression simplication remaillage 4.6 Implémentations Forets de quad-tree Chaque polygone du maillage de base et une racine ranement du polygone = quad-tree Avantage : subdivision adaptive possible Inconvénients : lourd et complexe Table de ranement 1. pré-calculer les tables de poids pour un profondeur et une valence donnée 2. remplacer chaque polygone du maillage de base par un polygone rané à la profondeur choisie, en utilisant la table pour calculer la position des sommets ranés en fonction des voisins d'origine Avantage : très rapide et adaptable sur le GPU Inconvénient : pré-calcul nécessaire pour chaque valence et chaque profondeur Hash-table 1. Construire une hash-table indexé par les arêtes du maillage stockant les sommets nouvellement insérés 4.7. TEMPS RÉEL 29 2. parcourir les polygones, en accumulant les contributions aux arêtes dans la hash-table (poids du masque) 3. remailler : remplacer chaque polygone par 4 nouveaux polygones, en utilisant les sommets pairs et les sommets impairs (stockés dans la hash-table) Avantage : très facile à implémenter, fonctionne sur divers schémas Inconvénients : pas de structure multirésolution (conversion maillage à maillage) Rendu sur GPU 1. Subdiviser 2 fois sur le CPU 2. décomposer la surface obtenue en morceaux centrés sur les sommets d'origine, avec leurs 2-couronnes de sommets insérés 3. déplier les morceaux en spirale (1 D) 4. les convertir en texture 5. rendre la texture plaquée sur un QUAD, à un e résolution supérieure : remplacer le noyau de rééchantillonage de texture par le masque de subdivision 6. réitérer jusqu'à la profondeur choisie 7. reconvertir les textures résultantes en maillages (1 pixel = 1 sommet) Avantage : (presque) entièrement sur le GPU Inconvénient : pas élégant, usage intensif du rendu multi-passe et du fragment shader 4.7 Temps réel 4.7.1 subdivision de surface en temps réel implentation possible : utiliser l'une des implémentation à base de tables implémentation sur le GPU . . . mais mal adaptées gestion d'une topologie dynamique 4.7.2 Curved PN Triangles ranement de maillage temps-réel alternative aux surfaces de subdivision interpolante produit un ranement de maillage visuellement lisse de manière purement locale ranement basésur les positions et vecteurs normaux aux sommets d'un triangle pas continuité géométrique aux arêtes, mais une continuité visuelle Principe gnérer un champ de déplacement Cd et un champ de normales Cn sur chaque triangle en créant 2 patches de Bézier piloté par les positions et les normales des sommets du triangle 30 CHAPITRE 4. SURFACES DE SUBDIVISION un patch cubique pour Cd un patch quadratique pour Cn générer un ranement linéaire du triangle (tesselation) et plonger ses positions dans Cd et ses normales dans Cn dessiner les polygones résultants en lieu et place du triangle original Avantages pas de topologie nécessaire compatible avec le format de données du GPU bi = di + ei Inconvénients d est donné par les coordonnées ba dégré de continuité à 0 en général i rycentriques : → aspect lisse obtenu via Cn di = pj + (pk − pj )/3 ei est donné par la projection sur le plan tangent (PN) du sommet le plus proche ei = Y (pj , nj , di )nj Extension : Scalar Tagged PN Triangle gérer les singularité 4.8 Modélisation multi-résolution approximer une surface échantillonnée (maillage ou nuage de points) par une surface de subdivision idée similaire aux ondelettes M i+1 = Sub(M i ) + Di+1 4.9. 31 MEMO 4.9 Memo 1978 1987 1994 1995 1996 1998 2000 2001 01-05 20 ? ? premiers schémas dont celui de CatmullClark(quadrangles) schéma de Loop : schéma approximant pour maillages triangulaires modication de Loop (plis vifs, bords, pondération) dans le cadre de reconstruction de surface analyse multirésolution de maillages arbitraires résultats théoriques sur la continuité surfaces de subdivision variationnelles surfaces de subdivision pour l'animation de personnages surfaces splines sous-jacentes découvertes pour les schémas de Catmull-Clark et Loop cours SIGGRAPH, seconde version (LE point d'entrée) contrôle des √ singularités, contrôle de la normale schémas 3, ranement triadique, approche constructive surfaces de subdivision déplacées curved PN Triangle, une fausse subdivision, plus ecace et visuellement plausible approches combinées schémas de subdivision pour maillages hybrides véritable implémentation matérielle (premiers pas vers le geometry shader de DirectX 10, véritable étage de subdivision dans le ppeline DirectX 11) véritable contrôle pour la normale subdivision pour les représentations sans maillages 32 CHAPITRE 4. SURFACES DE SUBDIVISION Chapitre 5 Surfaces Implicites Origine : Jim Blier, 1982 : modéliser des molécules 3D pour un documentaire TV de vulgarisation 5.1 Dénition représentation volumique de surfaces dénie à partir d'une fonction f : R3 → R [x, y, z] → v dénit l'isosurface Sv associée à l'isovaleur v Par convention v < 0 : le point est à l'intérieur de l'objet v > 0 : le point est à l'extérieur de l'objet v = 0 : le point est sur la surface de l'objet Mais d'autres iso-valeurs peuvent être considérées pour une description du volume (notion de couches). Fonction de la surface implicite ≈ fonction de chaleur. 5.1.1 Exemple : la sphère Propriété : centre c et rayon r. Fonction de la surface implicite associée : fcr (x, y, z) = r − p (x − xc )2 + (y − yc )2 + (z − zc )2 L'ensemble des points de la surface de la sphère sont les points pour lesquels f vaut 0. 33 34 CHAPITRE 5. SURFACES IMPLICITES 5.1.2 Inconvénients La surface est implicitement dénie : on ne peut pas en général itérer sur les points de la surface on peut seulement tester si un point est à l'intérieur, sur la surface ou à l'extérieur de l'objet pas directement visualisable topologie de surface contrainte : pas de bords ni de trous sur la surface 5.1.3 Avantages Volumes consistants : opérations booléennes triviales (∪, ∩, r) test de collision trivial surfaces lisses topologie du volume arbitraire (eg genre de la surface) 5.2 Surfaces implicites à squelette contrôle via l'équation analytique de la surface → trop peu de degré de liberté pour dénir une forme complexe composition par squelette fS = X fi i avec fi des fonctions de décroissance de distance (p, ci ) 5.3. VISUALISATION 35 5.2.1 CSG Géométrie Constructive des Solides basée sur un ensemble d'opérateurs ensemblistes (union, intersection, soustraction) idée : dénir une forme complexe à partir de formes simples et d'opérateurs binaires la forme obtenue est organisée en un arbre binaire complet n÷uds = opérateurs feuilles = formes simples (implicites) 5.3 Visualisation 5.3.1 Ray-tracing assez facile à implémenter : test d'intersection rayon-objet direct lent 5.3.2 Visualisation temps réel extraction d'une surface polygonale on ne peut pas itérer sur la surface à la manière d'une spline on ne peut donc pas générer facilement des polygones pour l'achage de la surface 5.3.3 Marching Cube un algorithme d'extraction de surface polygonale à partir d'une surface implicite 36 CHAPITRE 5. SURFACES IMPLICITES Idée : plonger la surface dans une grille 3D évaluer la valeur de la fonction implicite à chaque sommet de la grille (n3 sommets) pour chaque cube dans la grille : ses 8 sommets ont des valeurs positives ⇒ le cube est à l'intérieur de l'objet ses 8 sommets ont des valeurs négatives ⇒ le cube est à l'extérieur de l'objet sinon ⇒ le cube est intersecté par la surface implicite Pour chaque cube intersecté, la conguration des valeurs (positives/négatives) donne un placement de la surface (position exacte par interpolation sur les arêtes) 8 sommets ⇒ 256 congurations possibles (on ramène à 16 par symétrie) congurations rangées dans une table (brevetée !) chaque conguration génère un petit nombre de polygones dans le cube, approximant la surface implicite la somme de ces ensembles forme un maillage approximant la surface implicite à la résolution de la grille on peut regarder le voisinage pour lever les ambiguïtés 5.4 Application dans l'industrie surfaces implicites dans les modeleurs : metaballs principales utilisations uide formes molles (muscles) réparation de maillage nombreuses application en imagerie médicale adéquation aux formats de données conversion voxels → surfaces implicites simples 5.5 Surfaces implicites variationnelles surface implicite minimisant une fonction d'erreur permet la génération automatique d'une surface implicite à partir de données échantillonnées 5.5. SURFACES IMPLICITES VARIATIONNELLES 37 38 CHAPITRE 5. SURFACES IMPLICITES Chapitre 6 Nuages de points 6.1 Origine 6.1.1 Contexte 1 1980 résolution de l'écran ' 500 000 pixels ∼ milliers de polygones Plusieurs centaines de pixels par polygone 2000 résolution de l'écran ' 1 500 000 pixels ∼ dizaines/centaines de millions de polygones Plusieurs centaines de polygones par pixel contexte 2 Modélisation automatique : remplacer les infographistes par des périphériques d'acquisition scanner Laser (géométrie) périphérique type LightStage (apparence) → génération d'un ensemble non organisé d'échantillons sans connectivité explicite Digital Michelangelo Project : David 22 personnes 30 jours précision : 0.29mm 2 milliards d'échantillons 7 000 images 2.5D 32 Go de données 6.2 Dénition et Création 6.2.1 Nuage de points un ensemble non-organisé d'échantillons échantillons = surfel (SURFace ELement) 39 40 CHAPITRE 6. NUAGES DE POINTS nuage de points ou ensemble de surfels surfel = position + attributs normale apparence = couleurs, matériaux, . . . physique = densité, friction acquisition = facteur de conance Création : échantillonnage d'un modèle numérique existant acquisition d'un objet réel 6.2.2 Échantillonnage d'un modèle Entrée : NUBS, maillages, Surfaces de subdivision, Surfaces implicites Sortie : nuage de points Échantillons : basé sur l'analyse locale de la géométrie et éventuellement de l'apparence courbure et anisotropie bruits variance des matériaux 6.2.3 Acquisition d'un modèle 6.2.4 Normale une propriété importante pour la visualisation et le traitement géométrique sur un nuage de points échantillonnage d'un modèle numérique : exemple : forme paramétrique du gradient pour une surface spline acquisition : Shape from Shading estimation gradient des images de profondeur si disponible problème lorsqu'on a qu'un nuage de points, sans autre information solution : analyse en composante principale Estimation par Analyse en Composante Principale Pour chaque point 6.3. EXPLOITATION DU NUAGE 41 collecter un k-voisinage Vk pour l'ensemble des points de Vk , exprimer leurs coordonnées dans le repère du barycentre de Vk (covariance) composer la matrice de covariance M par produit externe des coordonnées des points (matrice 3 × 3) extraire les valeurs propres et vecteurs propres de M Le vecteur propre associé à la plus petite valeur propre ore une bonne approximation de la normale. Les 2 autres vecteurs propres peuvent éventuellement servir à analyser la courbure de la surface localement. 6.3 Exploitation du nuage 6.3.1 Traitement sans maillage Traitement géométrique simplication échantillonnage collision lissage ... → besoin d'une dénition de surface continue et lisse à partir d'un nuage de points : ⇒ Surfaces de points MLS 6.3.2 Surfaces MLS Dénition Moving Least Square approximation des moindre carrés glissants dénir une variété continue par morceaux pour tout nuage de points localement, en ne considérant que les points du voisinage surface MLS : dénir une surface via un opérateur de projection surface : ensemble de points stationnaires par l'opérateur Construction Méthode pour atteindre une surface de points par projection MLS depuis p 1. évaluer un plan de référence local Hp 2. calculer les coecients d'un polynôme Gp déni sur Hp 3. projeter p sur Gp : p0 = Gp (0) 4. évaluer la normale en p0 42 CHAPITRE 6. NUAGES DE POINTS Plan de référence {q, n} tel que min P i hq − pi , ni2 Θ(kq − pi k) minimisation des moindres carrés 2 2 Θ(d) = ed /h , fonction de poids centrée en q H est indépendant de la distance à p Implémentation utilisation d'un kD-tree pour chercher rapidement un voisinage de points G est habituellement de faible degré (entre 2 et 4) la surface 2ainsi dénie est une variété inniment lisse 2 Θ(d) = ed /h , h permet de contrôler le degré de lissage (eg : ltrage de bruit) Chapitre 7 Partitionnement Traitements géométriques en 3D Pour la modélisation la synthèse (d'images, mais pas seulement) l'animation Les solution ecaces sont en général locales → partitionnement d'objets Une solution ecace et élégante : Subdivision Spacial Hierarchy 7.1 Structures de Subdivision Spatiale hiérarchique omniprésentes en informatique graphique modélisation : partitionnement, analyse, simplication, reconstruction, génération de niveaux de détails rendu : lancé de rayon, photon mapping, radiosité, approximation de l'illumination incidente, visibilité, . . . animation : détection de collision, simulation de foules, déformation basée physique Réalité virtuelle : graphe de scène, sélection de niveaux de détails, parallélisation, . . . Principales structures : kD-tree [Bentley 75] : organisation orthogonale d'un ensemble d'échantillons BSP-tree[Fuchs et al 80] : subdivision binaire et récursive de l'espace par des hyperplans QuadTree / OcTree[Jackins & tanimoto 80] : dimension de l'espace dans la structure (subdivision 1-pour-4 en 2D, 1-pour-8 en 3D) BVH (Bounding Volume Hierarchy) de très nombreuses utilisations et combinaisons dans la littérature 7.1.1 QuadTree séparation récursive 1-4 d'un domaine planaire organisation des partitions dans un arbre quaternaire 43 44 CHAPITRE 7. PARTITIONNEMENT 7.1.2 OcTree généralisation en 3D du QuadTree hiérarchie de cubes englobants TYPE OctreeNode { OctreeNode children[8]; Data data; // Bounding Cube + miscelaneous data } OctreeNode buildOctree (Data data) { OctreeNode node; if (stopCriteria(data)) init(node, data) // fill children with NULL and affect data else Data * children[8]; dataSpatialSplit(data, dataChild) // 8-split of the bounding cube // and partitioning of data 7.1. } STRUCTURES DE SUBDIVISION SPATIALE HIÉRARCHIQUE 45 for(int i=0; i<8; i++) node.children[i] = buildOctree(childData[i]); node.data = NULL; return node; Ca peut être implémenté dans une table (sans pointeur, arbre quasiment parfait) ou avec une hashtable (code de Morton). 7.1.3 kD-Tree structure de partitionnement orthogonal d'échantillons arbre binaire Node buildKDTree(PointList P) { BBox B = computeBoundingBox(P); Point q = findMedianSample(B,P); Node n; Place H = plane(q, maxAxis, B); n.data<q,H>; PointList Pu = upperPartition(P,H); PointList Pl = lowerPartition(P,H); n.leftChild = buildKDTree(Pu); n.righChild = buildKDTree(Pl); return n; } 7.1.4 BSP-Tree arbre binaire de partitionnement spatial chaque n÷ud dénit un hyperplan séparant son sous-espace associé Calcul des plans de coupe alignés sur les axes découpage similaire à un kD-Tree 46 CHAPITRE 7. PARTITIONNEMENT Analyse en composante principale (top-down) ACP sur P découpage de P selon le plan déni par le barycentre et le vecteur propre associé à la plus grande valeur propre Diérence entre kD-Tree et BSP Tree alignés sur les axes kD-Tree : structure d'organisation, certains échantillons sont stockés sur le n÷ud interne BSP = structure de partitionnement de l'espace, seules les feuilles stockent éventuellement des données sur les échantillons 7.2 Comparaison adaptivité à une profondeur donnée : Octree < kD-Tree < BSP-Tree Simplicité d'implémentation/Temps de construction Octree < kD-Tree < BSP-Tree Donc les kD-Tree sont un bon compromis. Il existe des heuristiques ecaces pour (quasi) garantir un temps d'accès en log(N ) (test d'intersection). Ils constituent le choix habituel du ray-tracing. Chapitre 8 Reconstruction de Surfaces 8.1 Introduction 8.1.1 Objectifs Fournir une surface à partir d'un échantillonage Entrée ensemble d'images (pixels) et/ou grille 3D (voxels) et/ou nuage de points non organisés (surfels) Sortie maillage surface de subdivision surface NURBS surface implicite 8.1.2 Caractérisation Ecacité complexité en temps-vitesse de reconstruction pas méthodes complétement automatiques, besoin de limiter le temps de reconstruction au sein d'une session d'acquisition 3D complexité en mémoire : taille de l'entrée nuages de points provenant de scanner 3D modernes : plusieurs dizaines/centaines de millions d'échantillons Qualité reproduction de surfaces de genre arbitraire 2-variété garantie Pas nécessaire pour la visualisation seule essentiel pour le traitement géométrique Structure semi-régulière maillage de qualité pour les post-traitements (paramétrisation) NURBS, subdivision Filtrage de bruit bruit d'acquisition, de consolidation 47 48 CHAPITRE 8. RECONSTRUCTION DE SURFACES 8.1.3 Classication 8.1.4 Historique (partiel) Quelques algorithmes de reconstruction Hoppe (92 94) : Extraction de contours d'une union de plans implicites Modèles déformables : conformation de la surface d'un ballon au nuage de points VolFill : reconstruction volumétrique pour les grands objets PowerCrust : diagramme de Voronoï MPU : Partition de l'Unité Implicite 8.2 Les algorithmes de reconstruction 8.2.1 Algorithme de Hoppe 1. Pour chaque point, évaluer une normale par PCA si elle n'est pas fournie (surfel) 2. La position et la normale d'un surfel dénissent un plan 3. Dénir en tout point une fonction signée en classiant le point par rapport à la fonction implicite du plan du surfel le plus proche (kD-Tree) 4. Extraire un maillage à partir de cette fonction via l'algorithme du marching cube 8.2. LES ALGORITHMES DE RECONSTRUCTION 49 Avantages simple rapide Inconvénients qualité du maillage (à cause du marching cube) pas de ltrage de bruit 8.2.2 Modèles déformables On dénit une énergie E à partir du nuage de points P (distance, erreur tangente, estimation de la courbure) 1. Placer un maillage simple M à l'intérieur du nuage de points à reconstruire 2. Soumettre tous les sommets de M à E et les faire progresser agin de minimiser E localement 3. Si erreur(P, M ) > ε raner le maillage recommencer en 2 Avantages qualité du maillage : semi-régulier dynamique : processus observable/manipulable par l'utilisateur Inconvénients lent : coût de l'évaluation de l'énergie, test d'auto-intersection topologie : diculté à reproduire des genres élevés 8.2.3 VolFill 1. Prendre en entrée un ensemble d'images de profondeur (+ repére 3D) 2. Dénir pour chacune une fonction de distance 3D 3. Accumuler dans une grille 3D les valeurs de distances induites pour chaque fonction 4. Extraire un maillage via un algorithme de type Marching Cube Avantages algorithme hors mémoire : une fonction/image traitée à la fois, possibilité de ne charger qu'une partie de la grille à un moment donné permet de produire des maillages en très hautes résolutions Inconvénients nécessite les images de profondeur du scanner (ne prend pas directement un nuage de points) 50 CHAPITRE 8. RECONSTRUCTION DE SURFACES 8.2.4 PowerCrust 1. Construire le diagramme de Voronoï du nuage de points 2. Un sous-ensemble des sommets de Voronoï constitue une approximation discrète de l'axe médian 3. L'intérieur de l'objet est déni comme étant l'union de balles centrées sur ces sommets 4. Les triangles de Delaunay à la surface de cette union constitue le maillage obtenu Avantage Sous certaines condition d'échantillonnage, 2-variété garantie interpole le nuage de points Inconvénients lent condition d'échantillonnage rarement réunies/connues Pas de lissage de bruit distribution non-uniforme : triangles très (trop) elés 8.2.5 MPU Approximer localement de nuage de points par une surface implicite Partitionnement du nuage de points en octree A chaque niveau Approximer une surface polynomiale de faible degré (2 ou 3) par la partition élargie (zone de chevauchement) Si l'erreur entre le sous-ensemble de points de la partition et la surface implicite est trop forte, subdiviser la partition en 8 (octree et split) et recommencer Evaluation en P : mélanger la valeur du polynôme de la feuille de l'arbre intersectant P à celle de ses voisines (partition de l'unité) avec l'équation : PM f (x) = i=1 fi (x)wi (x) PM i=1 wi (x) Extraction d'un maillage par Marching Cube Avantages très rapide adaptatif ltre le bruit surface implicite (genre arbitraire, 2-variété quasi-garantie) Inconvénients maillage de faible qualité (Marching Cube) Diculté à reproduire les détails 8.2. LES ALGORITHMES DE RECONSTRUCTION arbre profond beaucoup d'approximation polynomiales marching cube en très (trop) haute résolution 8.2.6 Comparaison Ecacité Qualité Hoppe +++ + Modèle Déformable + +++ Volll ++ ++ PowerCrust + ++ MPU +++ ++ Beaucoup d'autres algorithmes récemment proposés. 51 52 CHAPITRE 8. RECONSTRUCTION DE SURFACES Chapitre 9 Simplication de Surfaces On utilise la simplication de surfaces pour diminuer le nombre de polygones. C'est la première quand on veut faire de l'abstraction (analyse des objets plus sémantique, classication d'objets). 9.1 Introduction 9.1.1 Contexte Modèle de Saint Matthieu :360 000 000 triangles Atlas :500 000 000 triangles → Trop pour beaucoup d'applications. On va donc vouloir les simplier. 9.1.2 Objectif Fournir automatiquement un maillage contenant moins de polygones, mais en préservant autant que possible la forme d'origine. Entrée : un maillage Sortie : un maillage Note : des techniques similaires peuvent être appliquées aux surfaces de points. 9.1.3 Caractérisation Ecacité temps : simplication à la volée mémoire : algorithme hors mémoire souhaitable. Qualité préservation de la topologie de la surface préservation de la géométrie de la surface 53 54 CHAPITRE 9. SIMPLIFICATION DE SURFACES 9.1.4 Classication 9.1.5 Historique (partiel) PM (Progressive Meshes) [Hoppe et al 1993, 1996] : optimisation de maillage QEF (Quadric Error Function) [Garland 97] : erreur L2 basée sur une quadrique OOCS(Out-Of-Core Simplication) [Lindstrom 2000] Partitionnement en grille de soupes de polygones VSA (Variational Shape Approximation) [Cohen-Steiner 04] : relaxation de Lloyd pilotée par la normale 9.1.6 Métriques d'erreur Les méthodes de simplication dépendent souvent d'une métrique d'erreur qui caractérise le coût géométrique (perte d'information) introduit. L2 : erreur des moindres carrés n eL2 1X = kpi − ck2 n i=0 L2.1 : erreur basée normale n eL2.1 = 1X ni · n n i=0 9.2. LES ALGORITHMES DE SIMPLIFICATION 55 L∞ : erreur basée sur la distance de Haussdorf (distance au sens où on l'entend) eL∞ = max kpi − ck i 9.2 Les algorithmes de simplication 9.2.1 PM : Optimisation de maillage 1. Trier les sommets en fonction de leurs importances Métriques d'importance : position, normale, couleur, point de vue, . . . 2. Contracter une arête adjacente au sommet de moindre importance pour réduire de 2 le nombre de polygones opération duale : séparation de sommet 3. Recommencer en 1 tant que le nombre de polygone est supérieur au maximum souhaité. Note : on peut supprimer un certain nombre d'arêtes sans retrier les sommets à chaque fois car on peut penser que l'importance d'un sommet n'augmente pas tout d'un coup. Note : cette simplication permet de construire une structure complète de multi-résolution, avec continuum (interpolation le long des arêtes contractées). Avantage précis Inconvénient lent 9.2.2 QEF Quadric Error Function : erreur L2 par rapport à une quadrique (forme générée par un polynôme quadratique) Permet de mieux placer un sommet représentant dans les méthodes de partitionnement un sommet voisin d'un sommet contracté 56 CHAPITRE 9. SIMPLIFICATION DE SURFACES 9.2.3 OOCS Idée : partitionnement de sommets hors-mémoire Partitionnement du maillage dans une grille Pour chaque cellule, calcul d'un représentant via QEF Pour chaque triangle, 2 cas Si 2 ou 3 des sommets sont dans la même cellule, supprimer le triangle Sinon, conserver le triangle, en aectant pour chaque sommet la position du représentant de sa cellule 9.2.4 VSA Algorithme en 2 étapes 1. Partitionnement d'un maillage via une relaxation de Lloyd pilotée par la métrique L2.1 2. Simplication par remaillage des partitions et suivi de contours (technique diérente du partitionnement de sommets) La métrique L2.1 est basée sur la normale ; elle détecte mieux les anisotropies, les plis vifs, les larges zones planes. Deuxième partie Modélisation Géométrique des Solides 57 Chapitre 10 Fondements 10.1 Motivation Problématique représentation des caractéristiques propres à la géométrie pouvoir calculer toute propriété relevante de la géométrie Exemples de problèmes La théière est l'union de plusieurs formes qu'on a recollées : le corps, le couvercle, l'anse et le bec verseur. On remarque que les diérents morceaux ne sont pas collés correctement : il faut que les sommets et les arrêtes coïncident, ce qui n'est pas le cas. De même, certaines constructions peuvent faire que la surface dénissant le solide s'auto-intersecte. Il y a alors un conit que l'on peut résoudre en analysant le maillage. 10.2 Solides Rigidité des solides Un solide est dit rigide si et seulement si sa forme reste homogène et invariante par rapport à l'orientation dans l'espace. Régularité des solides Un solide est dit régulier si et seulement si tout point du solide a un voisinage homéomorphe soit à une sphère pour les points à l'intérieur, soit à une demisphère pour les points de la frontière. On parle de variété 2D pour une surface (homéomorphie à un disque ou un demi-disque) et de variété 3D pour un volume. 59 60 CHAPITRE 10. FONDEMENTS Description nie des solides Un solide est dit de description nie si et seulement si sa frontière supporte une description nie. 10.3 Propriétés des représentations Puissance La puissance des méthodes de représentation est déterminée par leur capacité à représenter un grand nombre de familles de formes choisies par exemple parmi des solides bornés par des faces planes (polyèdre). Validité Une méthode de représentation est considérée comme étant valide si et seulement si à partir de toute représentation de ce type on peut retrouver au moins un solide qui lui correspond. Non-ambiguïté Une méthode de représentation est considérée comme étant non-ambiguë si et seulement si à tout solide correspond une seule représentation de ce type. Par exemple, CSG est ambiguë : Fermeture Une méthode de représentation est dite fermée par rapport à un ensemble d'opérations si et seulement si le résultat des répétitions successives d'opérations de cet ensemble ne l'invalide pas ie correspond toujours à un solide. 10.4. CLASSIFICATION DES REPRÉSENTATIONS 61 Description Une méthode de représentation supporte une description informatique si et seulement si sa construction peut être dénie sous la forme d'un script à partir d'un nombre limité de paramètres. Densité Une méthode de représentation est dite dense si et seulement si le coût mémoire nécessaire à sa sauvegarde est faible. Facilité d'usage Une méthode de représentation est dite facile d'usage si et seulement si les pré-requis nécessaires à sa manipulation sont faibles. 10.4 Classication des représentations Représentations primitives Une méthode de représentation est dite primitive si et seulement si elle contient la dénition du solide de manière explicite (ex : polygonal, WireFrame, sweeping = contours+trajectoire) Représentations décompositives Une méthode de représentation est dite décompositive si et seulement si elle est basée sur la décomposition du solide en cellules volumiques. Représentations constructives Une méthode de représentation est dite constructive si et seulement si elle présente le solide comme des constructions booléennes de primitives. Représentations par frontière Une méthode de représentation est dite par frontière si et seulement si elle décrit le solide par subdivision de la surface frontière en sommets, arêtes et faces, et son espace de plongement dans l'espace E 3 . 62 CHAPITRE 10. FONDEMENTS Chapitre 11 Représentations décompositives 11.1 Motivation 11.1.1 Problématique Une représentation est dite décompositive si et seulement si elle contient la dénition de la décomposition du solide en cellules volumiques (voxels). 11.2 Représentation en énumération spatiale (SOE) 11.2.1 Notions de base L'énumération spatiale est dénie par une subdivision régulière en cellules identiques qu'on applique au volume occupé par l'objet. On doit faire une approximation grossière. Visualisation : on ne voit que les cubes frontières : il faut les détecter. Pour chacun d'eux, il faut détecter lesquelles de ses faces sont visibles. 11.2.2 Construction du SOE On considère la cellule et son centre. On veut évaluer si elle appartient au solide on teste les 8 sommets ou son centre ou une sphère centrée en son centre ... Quand on est partiellement occupé, on regarde le pourcentage d'occupation de la cellule par le solide. Selon la façon dont on fait ça, ça peut changer les choses pour la reconstruction de l'objet. On peut obtenir une borne max ou une borne min. 63 64 CHAPITRE 11. REPRÉSENTATIONS DÉCOMPOSITIVES 11.2.3 Propriétés Puissance On a un solide de forme irrégulière et des arféfacts. Validité Ce modèle n'est pas valide. Un algorithme simple pour vérier la 3D variété : Pour chaque paire de cellule, on doit avoir : soit les cellules sont disjointes soit leur intersection est une face Unicité Ça dépend de la résolution : si elle est xe, alors on a unicité Ça dépend aussi de la méthode de classication que l'on se donne. Fermeture Si on s'intéresse à la validité, la composition de 2 jeux n'est pas forcément valide. Densité En procédural, ça peut ne pas être gros. En stockant les cellules, ça prend beaucoup de place. Facilité d'usage Facile. 11.3 Représentation en subdivision spatiale 11.3.1 Notion de base Subdivision adaptive qui s'applique sur tout l'espace. A chaque étape, on classe les cellules comme étant vides, pleines, ou partiellement occupées. On subdivise les grises (cad les partiellement occupées). Comment les traiter quand on est à la résolution maximale ? On obtient des cellules de tailles diérentes. 11.3.2 Octree Arbre octal. A chaque étape de la subdivision, l'espace est partitionné en 8 octants correspondant aux demi-espaces le long des plans XY, YZ et XZ. 11.4. REPRÉSENTATION EN DÉCOMPOSITION CELLULAIRE 65 11.3.3 BSP Tree Arbre binaire de subdivision spatiale. A chaque étape de la subdivision, l'espace est partitionné en 2 sous-ensembles classés selon leur appartenance à l'objet (in-out). 11.3.4 Propriétés Puissance Choses complexes mais toujours le problème d'aliasing Validité On ne peut pas assurer à la 3D-variété. Même algorithme pour le vérier. Unicité Oui à une résolution prés. Fermeture oui Description Choix du codage : en bas au fond à gauche + taille, ou en bas au fond à gauche + en haut devant à droite. Code : 0=vide, 1=plein, 2=partiellement occupé. Densité Procédural : pas grand chose. Facilité d'usage struct Octree{ int code, depth; float xmin, ymin, zmin, xmax, ymax, zmax; Octree oct[8]; } renement récursif. Appel aux fonctions Octree Subdivide(Octree t) int solidClassificationFunction(Octree t) 11.4 Représentation en décomposition cellulaire 11.4.1 Notions de base Subdivision irrégulière en cellules curvilignes. 66 CHAPITRE 11. REPRÉSENTATIONS DÉCOMPOSITIVES 11.4.2 Propriétés Puissance Représentation exacte Validité Bien plus compliqué à cause du curviligne. Chapitre 12 Représentations Constructives 12.1 Motivation 12.1.1 Problèmatique Peut-on modéliser tous les objets avec des représentations constructives ? forme libre : plutôt non (objet de la nature) forme à base de sphère, cylindre, cube : plutôt oui (industrie) 12.1.2 Geométrie Constructive Solids Les représentations constructives utilisent la CSG (Constructive Solid Geometry) pour élaborer des solides complexes à partir d'un ensemble d'objets de formes relativement simples, appelés des primitives, et l'ensemble d'opérations booléennes intersection, diérence, union. 12.1.3 Modèle : arbre CSG Un solide est représenté par l'historique de sa construction. Le modèle est un arbre binaire dont les n÷uds contiennent des opérations booléennes et les feuilles des primitives. 12.2 CSG à base de Primitives Innies 12.2.1 Notions de base Dénition Une représentation constructive est dite à base de primitives innies si et seulement si les primitives utilisées sont des demi-espaces bornés par des plans algébriques. 67 68 CHAPITRE 12. REPRÉSENTATIONS CONSTRUCTIVES 12.2.2 Propriétés Puissance En fonction de nos primitives, on peut obtenir une représentation plus ou moins signicative. Une représentation exacte est rare, elle se limite à des cas restreints. Validité On risque avoir des volumes non fermés. Unicité Il n'y a pas unicité. On peut faire les intersections dans des ordres diérents. Description On stocke les primitives et l'arbre. Facilité d'usage Dicilement implémentable beacoup de tests et de parcours de l'arbre. 12.3 CSG à base de Primitives Finies 12.3.1 Notions de base Une représentation contructive est dite à primitive nie si et seulement si les primitives utilisées sont des ensembles nis. 12.3.2 Propriétés Unicité Non, voir l'exemple de l'introduction. Description On stocke la liste des primitives et l'arbre. Facilité d'usage Arbre binaire visualisation ⇒ algorithmes complexes. Chapitre 13 Représentations par Frontière 13.1 BRepr 13.1.1 Problèmatique On peut faire les mêmes choses qu'avec un CSG. Mais on peut aussi faire des formes libres. On peut faire un mélange de planaire et de curviligne grace à la composition de Faces,Edge,Vertex et le plongement. 13.1.2 Notions de base Une représentation est dite représentation par frontière (Boundary Representation) si et seulement si elle est fondée sur la description de la subdivision de la surface frontière des solides en cellules de dimension 0D (les sommets), 1D (les arêtes), et 2D (les faces) et son plongement dans l'espace E 3 . Loop est important pour les cas où il y a des trous dans les faces. Les pointeurs permettent d'avoir facilement le voisinage. 69 70 CHAPITRE 13. REPRÉSENTATIONS PAR FRONTIÈRE Le voisinage est important pour certains algorithmes. 13.1.3 Représentation BRepr basée sur des graphes planaires G = {V,E} 13.1.4 Représentation BRepr basée sur des graphes planaires G = {F,E} C'est le dual de l'autre. 13.1. BREPR 71 13.1.5 Formule d'Euler ensemble de sommets V , d'arêtes E et de faces F V −E+F =2 polyèdres simples topologiquement corrects ⇒ V − E + F = 2 V − E + F = 2 ; polyèdres simples topologiquement corrects 13.1.6 Formule d'Euler Poincaré ensemble de coquilles S , de trous H et de d'anneaux dans les faces R V − E + F = 2(S − H) + R polyèdre topologiquement corrects ⇒ V − E + F = 2(S − H) + R V − E + F = 2(S − H) + R ; polyèdre topologiquement correct 13.1.7 Manipulation des graphes planaires V. modèle planaire squelétique Primitive squelétique constituée par une coquille S , une face F et un sommet Opérations topologiques locales découpe et recollement de sommets découpe et recollement de faces 72 CHAPITRE 13. REPRÉSENTATIONS PAR FRONTIÈRE Opérations topologiques globales somme connexe diérence connexe 13.2 Propriétés 13.2.1 Validité Construction des représentations BRepr valides On considère un espace discret de 6 dimensions où les axes correspondent aux nombres de sommets V , d'arêtes E , de faces F , de trous H , d'anneaux R et de coquilles S . Soit un point P = P (v, e, f, h, r, s) de cet espace. Si P correspond à un polyèdre topologiquement correct, il doit vérier EulerPoincaré. V − E + F = 2(S − H) + R. Cette équation dénit un sous-ensemble de dimension 5, un hyperplan qui contient tous les polyèdres topologiquement corrects. Sur ce plan, on peut choisir une base de 5 vecteurs Vi tels que 1. Vi sont collinéaires au plan et 2. Vi sont linéairement indépendants Une telle base est dénie par les opérateur d'Euler. V1 V2 V3 V4 V5 = M ev(1, 1, 0, 0, 0, 0) = M ef (0, 1, 1, 0, 0, 0) = M vf s(1, 0, 1, 0, 0, 1) = KeM r(0, −1, 0, 0, 1, 0) = Kf M rh(0, 0, −1, 1, 1, 0) 13.2.2 Description Mvfs Mev 13.2. PROPRIÉTÉS Mef KeMr KfMrh 13.2.3 Densité Ca peut devenir assez lourd. 13.2.4 Facilité d'usage On peut faire pas mal de trucs avec, assez facilement. 73 74 CHAPITRE 13. REPRÉSENTATIONS PAR FRONTIÈRE Chapitre 14 Applications Synthèse d'images on peut alors associer le modèle avec des textures Conception et Fabrication Assistées pas Ordinateur calcul de la surface calcul du volume caractéristiques de formes Imagerie médicale reconstruction de surface 75