Octree et maillages Modélisation Géométrique.

Slides:



Advertisements
Présentations similaires
Modélisation géométrique
Advertisements

Modélisation Géométrique et Synthèse d’Images Modélisation Géométrique: les représentations Marc NEVEU Bureau G210
SOMMAIRE I - Introduction : solides platoniciens II - Quelques définitions III - Polytopes réguliers convexes en 4D.
L'image: Le codage des images BacPro SEN Lycée Condorcet.
Introduction : Besoins - Modèles Modélisation Géométrique Introduction Loïc Barthe Equipe VORTEX – IRIT Université de Toulouse
Modélisation Géométrique Cours 4 : Acquisition de la géométrie.
VECTEURS. I Translation II Vecteurs III Somme de vecteurs IV Produit d ' un vecteur par un réel V Coordonnées d ' un vecteur.
CINI – Li115 1 Semaine 9 Algorithmes de tri ● Introduction ● Tri à bulle ● - principe ● - algorithme ● - efficacité ● Tri par sélection ● - principe, algorithme,
Modélisation Géométrique Les surfaces paramétriques.
Courbes d'Interpolation Interpolation de Lagrange, et Interpolation B-spline.
Arithmétique d'Intervalles L'arithmétique d'intervalles.
Théorème de Pick Enoncé du sujet : On trace un polygone dont les sommets sont des points d'une feuille de papier pointé quadrillé. ● Peut-on trouver l'aire.
I) mesure et erreurs de mesure 1) le vocabulaire à connaitre
Réalisé par R. MARRAKHA. KHAYAR Khayar-marrakh Université Hassan-II Faculté des sciences Aïn chock Casablanca Professeurs assistants - département de physique.
Grilles 3D Les grilles 3D. Grilles 3D Plan ● Les grilles 3D – Grille 3D ? – Reconstruction de continuité C 0 – Octree min/max – Visualisation d'une iso-surface.
1 Chap. II suite : IV LES LENTILLES MINCES Qu’est ce qu’une lentille? ??? 1– Définitions: = un exemple de système optique.
Révision – mathématiques 8
Notes 7.2 La masse volumique, la flottabilité et les fluides
Cours d’Econométrie de la Finance (Stat des choix de portf. IV 1-2)
dans le triangle rectangle
Mettre à jour les données
Pierre Joli Cours de Mathématique Pierre Joli
V Graphes étiquetés Ce sont des graphes orientés où les arêtes sont affectées d’étiquettes. Lorsque les étiquettes sont des nombres, on dit que le graphe.
Représentation des nombres réels
Algorithmique Avancée et Complexité Chap2:Complexité et Optimalité
1.3 COORDONNÉES DES POINTS
INTRODUCTION A LA GEOMETRIE
Erreurs (trop) fréquentes
1°) Un nombre y est-il associé à 3, et si oui lequel ?
Résistance des Matériaux
Géométrie Leçon 3.
Les bases de données et le modèle relationnel
Précision d'une mesure et chiffres significatifs
DESSIN TECHNIQUE Té de dessin Collège technique Sousse Collège technique Sousse.
Exercice 1 : Quatre communes A, E, F et D de quatre pays différents sont jumelées entre elles ( jumelages ED, AE, AF, FD, AD et EF ). Elles organisent.
Plans d’experiences : plans de melanges
Jean-Emmanuel DESCHAUD
Le théorème de Sylvester
Le théorème de Sylvester
Module 5 : Gestion des disques.
Scénario Quatre hipsters entrent en collision un dans l'autre dans un ascenseur plein de personnes. En conséquence ils laissent tomber leurs téléphones.
C1 – Interpolation et approximation
Géométrie dans l’espace
Cours N°9: Algorithmiques Les Tableaux 1
La méthode du simplexe. 1) Algorithme du simplexe  Cet algorithme permet de déterminer la solution optimale, si elle existe, d’un problème de programmation.
1 RECURSIVITE PRESENTATION Ch. PAUL ALGORITHMIQUE Présentation de la récursivité.
Modélisation avec UML 2.0 Partie II Diagramme de classes.
IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal.
Type Concret – Type Abstrait
Calcul Scientifique Initiation à SCILB
Système de coordonnées
Système de coordonnées
La réfraction. – Avez-vous déjà remarqué qu'une petite cuillère plongée dans un verre d'eau paraît cassée...
DESSIN DE DEFINITION RAPPEL DES NOTIONS DE BASE.  Dessin technique Consiste à apporter des informations techniques (dimensions, matière…) par une représentation.
Bases de données sous Access. Initiation aux bases de données  Structure d’une base de données.
Résolution d’un problème de diffusion 3D
Le morphage d’images Steph Hoffman
OPTIMISATION 1ère année ingénieurs
Cours de physique générale I Ph 11
1 Centre d’intérêt 4 : Représentation graphique du réel  Le dessin technique.
Révision – mathématiques 8
Plan cartésien (4 quadrants) Transformations (réflexion / translation)
Information, Calcul, Communication
Projection, cosinus et trigonométrie.
IFT3355: Infographie Courbes et surfaces © Pierre Poulin Dép. I.R.O. Université de Montréal.
Wilber. Définition: GIMP , pour GNU Image Manipulation Program, littéralement « programme GNU de manipulation d'images », est un logiciel libre et gratuit.
Programme d’appui à la gestion publique et aux statistiques
1/16 CINEMATIQUE 1) Cinématique du point 2) Dérivation vectorielle.
Révision – mathématiques 8
GEOMETRIE VECTORIELLE
Transcription de la présentation:

Octree et maillages Modélisation Géométrique

Plan Représentation par octree Modèle B-Rep Un peu d'histoire Octree régulier et adaptatif Représentation surfacique et volumique d'un objet 3D Modèle B-Rep Un peu d'histoire Les maillages Définition et propriétés Dualité maillage fermé et maillage 2-Manifold Formule d'Euler Représentations internes 3 représentations optimisées pour l'espace mémoire 2 représentations optimisées pour le parcours du maillage Visualisation OpenGL Modélisation Géométrique

Octree régulier Comme son nom l'indique, un octree est un arbre à huit branches. Un octree régulier subdivise de façon récursive un volume cubique en huit sous-cubes de tailles égales. Les feuilles de l'octree sont appelées des « voxels ». 5 6 1 2 7 4 3 noeuds voxels Modélisation Géométrique

Octree adaptatif Dans un octree adaptatif, la profondeur de chaque branche peut être de taille différente, ceci permet de subdiviser l'espace de départ de façon irrégulière. 5 6 1 2 7 4 3 noeuds voxels Modélisation Géométrique

Illustration sur un quadtree Un quadtree est un arbre à quatre branches. C'est l'équivalent de l'octree en deux dimensions. Dessinez les feuilles du quadtree adaptatif de profondeur quatre représentant l'objet ci-dessous. Représentez le quadtree sous forme d'arbre en supposant que l'on a une représentation « volumique » de l'objet (ne développez que la 1ère branche). Modélisation Géométrique

Représentation surfacique par octree Octree régulier : on subdivise jusqu'à la précision souhaitée et soit la cellule n'est pas sécante à la surface et la feuille est vide (valeur 0 par exemple), soit elle est sécante et la feuille est pleine (valeur 1 par exemple). Octree adaptatif : soit la cellule n'est pas sécante à la surface : c'est une feuille vide de l'octree, soit la cellule est sécante à la surface : si on est au niveau de précision désiré, c'est une feuille pleine de l'octree, sinon, c'est un noeud qui va être subdivisé. Modélisation Géométrique

Représentation volumique par octree Octree régulier : on subdivise jusqu'à la précision souhaitée et soit elle est sécante et la feuille est pleine (valeur 0 par exemple)., soit elle est à l'intérieure de l'objet et elle vaut 1 par exemple, soit elle est à l'extérieure de l'objet et elle vaut -1 par exemple. Octree adaptatif : soit la cellule est sécante à la surface : si on est au niveau de précision désiré, c'est une feuille pleine de l'octree, sinon, c'est un noeud qui va être subdivisé, soit la cellule n'est pas sécante à la surface : c'est soit une feuille « extérieure », soit une feuille « intérieure ». Modélisation Géométrique

Octree : +/- Les + Représentation hiérarchique de l'objet : il peut être affiché à différentes résolutions. Possibilité de représentation volumique. Simplicité de positionnement d'un volume par rapport à l'objet : sécant ou non (éventuellement intérieur/extérieur). Construction et parcours récursifs simples. Les - Visualisation surfacique des voxels ? Rendu temps réel pour des scènes complexes ? Coup de stockage excessif. Modélisation Géométrique

B-Rep quelconque B-Rep Solide Modèle B-Rep Boundary-Representation Un modèle est représenté par ses bords Pas de notion de volume On peut représenter des solides B-Rep quelconque B-Rep Solide Modélisation Géométrique

B-Rep solide Test intérieur / extérieur sur un solide : Nombre pair d’intersections : le point P est à l’extérieur du solide Nombre impair d’intersections : le point P est à l’intérieur du solide P P Modélisation Géométrique

Un peu d'histoire La légende raconte que, 800 ans avant J.-C., les Etrusques jouaient déjà avec des dodécahèdre réguliers (12 faces). Les pythagoriciens, 450 ans avant J.-C., connaissaient le cube et le tétraèdre. C'est vers 400 ans avant J.-C. que Platon et ses disciples parlent de 5 polyèdres réguliers: le tétraèdre, le cube, l'octaèdre, le dodécaèdre et l'icosaèdre (20 faces). Dans la phylosophie platonicienne, chacun d'eux etait associé symboliquement au Feu, à la Terre, à l'Air, l'Eau et l'Univers. Modélisation Géométrique

Les solides platoniques Polyèdre réguliers = Polyèdre convexe inscrit dans une sphère dont toutes les faces sont identiques Toutes les faces sont des polygones réguliers convexes isométriques Tous les sommets ont la même valence (même nombre d'arêtes incidentes) Pourquoi? Combien y en a t il? A quoi ressemblent-ils? Modélisation Géométrique

Les maillages Modélisation Géométrique

Les maillages Un complexe linéaire par morceaux : les surfaces sont représentées avec des polygones. Le simplexe pour une face est le triangle. La continuité globale est C0 (discontinuité de normales au niveau des arêtes) . Ils définissent la géométrie tout en donnant une topologie de la surface C'est actuellement une structure standard pour afficher des scènes complexes en 3D Leur visualisation et leur manipulation est optimisée par la grande majorité des cartes graphiques actuelles. Modélisation Géométrique

Propriétés topologiques des maillages Dualité maillage fermé et maillage 2-manifold Formule d'Euler Modélisation Géométrique

Dualité Chaque entité du maillage primal de dimension k est remplacé par une entité de dimension (2-k) dans le maillage dual: Chaque face (dim 2) est remplacée par un point (dim 0), les arêtes gardent leur dimension et les points sont remplacés par des faces. Pour créer la géométrie du maillage dual, on place un point au barycentre de chaque face et on connecte deux point par une arrête si les faces dont ils sont issus sont adjacentes dans le maillage primal. Modélisation Géométrique

Dualité Chaque entité du maillage primal de dimension k est remplacé par une entité de dimension (2-k) dans le maillage dual: Chaque face (dim 2) est remplacée par un point (dim 0), les arêtes gardent leur dimension et les points sont remplacés par des faces. Pour créer la géométrie du maillage dual, on place un point au barycentre de chaque face et on connecte deux point par une arrête si les faces dont ils sont issus sont adjacentes dans le maillage primal. Les faces sont remplacées par leur centre Modélisation Géométrique

Dualité Chaque entité du maillage primal de dimension k est remplacé par une entité de dimension (2-k) dans le maillage dual: Chaque face (dim 2) est remplacée par un point (dim 0), les arêtes gardent leur dimension et les points sont remplacés par des faces. Pour créer la géométrie du maillage dual, on place un point au barycentre de chaque face et on connecte deux point par une arrête si les faces dont ils sont issus sont adjacentes dans le maillage primal. On “flip” les arêtes Modélisation Géométrique

Dualité Chaque entité du maillage primal de dimension k est remplacé par une entité de dimension (2-k) dans le maillage dual: Chaque face (dim 2) est remplacée par un point (dim 0), les arêtes gardent leur dimension et les points sont remplacés par des faces. Pour créer la géométrie du maillage dual, on place un point au barycentre de chaque face et on connecte deux point par une arrête si les faces dont ils sont issus sont adjacentes dans le maillage primal. On “flip” les arêtes Modélisation Géométrique

Dualité Chaque entité du maillage primal de dimension k est remplacé par une entité de dimension (2-k) dans le maillage dual: Chaque face (dim 2) est remplacée par un point (dim 0), les arêtes gardent leur dimension et les points sont remplacés par des faces. Pour créer la géométrie du maillage dual, on place un point au barycentre de chaque face et on connecte deux point par une arrête si les faces dont ils sont issus sont adjacentes dans le maillage primal. On “flip” les arêtes Modélisation Géométrique

Exercice sur le dual Tracez le dual du maillage suivant : Que remarquez vous au niveau des faces ? Que dire sur le dual du dual ? Modélisation Géométrique

Un maillage est dit fermé si il n'a pas de bord Fermeture Un maillage est dit fermé si il n'a pas de bord Modélisation Géométrique

2-manifold De façon informelle, si un maillage fermé et 2-manifold (ou manifold) alors l'objet qu'il représente est « usinable ». Par définition, un maillage est 2-manifold si il satisfait la condition suivante: Propriété de disque local: En chaque point du maillage, il existe une sphère de rayon >0 telle que l'intersection entre la sphère et le maillage est homothétique à un disque Un maillage ouvert peut être 2-manifold. A la bordure, l'intersection entre la sphère et le maillage doit être topologiquement équivalente à un demi-disque. Modélisation Géométrique

Exercice : manifold / non-manifold ? Sur des maillages triangulaires: Une arête partagée par plus de 2 triangles ? Un sommet partagé par deux ensembles de facettes non connectés ? Une jonction en T ? Problème de Crack ? Un trou dans le maillage ? Modélisation Géométrique

Formule d'Euler (1752) S - A + F = 2 (1-g) genre 1 genre 2 genre 0 Cette formule donne la correspondance entre le nombre de composant de chaque entité du maillage (sommets, arêtes, faces) S - A + F = 2 (1-g) Où S est le nombre de sommets, A est le nombre d'arêtes et F est le nombre de faces. g est le genre (génus) de l'objet = le nombre de trous (poignées) dans un objet fermé genre 1 genre 2 genre 0 Modélisation Géométrique

Les maillages triangulaires Des propriétés spécifiques dérivées à partir de la formule d'Euler: S – A + F = 2 (1-g)=c où c est une constante qui est petite par rapport à S, A ou F. La constante c est négligeable devant S,A et F. On peut donc écrire: S - A + F  0 Il est difficile d'établir directement une relation entre ces entités parce qu'une arête est partagée par plusieurs faces. Par contre, on peut introduire la notion de demi-arête. Une face possède 3 demi-arêtes et une arête est composée de 2 demi-arêtes: F  2S Da = 3 F Da = 2 A Da  6S Modélisation Géométrique

Exercices sur la formule d'Euler Calculez le nombre de faces F en fonction du nombre de sommets S puis le nombre moyen de demi-arêtes sortantes Da par sommet et en déduire la forme du maillage régulier pour : un maillage composé de quadrilatères un maillage composé d'hexagones Modélisation Géométrique

Structures de données pour les maillages Choisir une représentation adaptée aux opérations que l'on souhaite effectuer sur le maillage : Une représentation compacte Une représentation optimisée pour le parcours Modélisation Géométrique

Liste de triangles C'est l'approche la plus naïve Pour chaque triangle, on donne la liste de sommets C'est l'approche la plus naïve 4 octets par coordonnée (un flottant) 9 coordonnées par faces 2 fois plus de faces que de sommets Pour un maillage composé de S sommets, on a donc besoin de 4*9*2*S = 72*S octets. x0,y0,z0 x1,y1,z1 x2,y2,z2 x5,y5,z5 x1,y1,z1 x12,y12,z12 x9,y9,z9 x0,y0,z0 x1025,y1025,z1025 . . . Modélisation Géométrique

Sommets partagés Tout d'abord on stocke la liste des sommets Puis les facettes sont définies en donnant les index des sommets qui la compose En général, le fichier commence par le nombre de sommets et le nombre de facettes Liste des sommets Liste des facettes x0,y0,z0 0 1 2 x1,y1,z1 5 1 12 x2,y2,z2 9 0 1025 . . . . . . Combien d'octets par sommet? (36) Modélisation Géométrique

Bandes de triangles La topologie est codée de façon implicite dans l'ordre des sommets Chaque sommet est donc visité deux fois Si on ne considère qu'une seule bande, quel est l'espace mémoire utilisé ? En réalité, il y a plusieurs bandes et il faut ajouter 24 octets pour chaque nouvelle bande (le stockage des 2 premiers sommets) Modélisation Géométrique

Structure par faces Chaque face contient un pointeur vers ses sommets et vers les faces adjacentes Chaque sommet pointe sur une face adjacente Pas d'accès direct aux arêtes Octets par sommet ? Modélisation Géométrique

Structure par demi-arêtes Une arêtes est décomposée en deux demi-arêtes orientées Pour chaque demi-arête, on mémorise un pointeur vers la demi-arête opposée, le sommet vers lequel elle pointe, la face à laquelle elle appartient et la demi-arête suivante Chaque sommet contient un pointeur sur une demi-arête sortante et chaque face, un pointeur vers une de ses demi-arête Très pratique pour parcourir un maillage de diverses façons Octets par sommet ? (120) Modélisation Géométrique

Visualisation OpenGL d'un maillage Construction de l’objet : Sa liste de sommets GLfloat sommets[] = {x0, y0, z0, … xn, yn, zn}; Ses attributs, par exemples les normales GLfloat normales[] = {nx0, ny0, nz0, nxn, nyn, nzn}; Sa liste d’index GLuint index[] = {0, 1, 2, 5, 0, 4, . . . }; Modélisation Géométrique

Visualisation OpenGL d'un maillage Types de représentation pour OpenGL : GL_TRIANGLES : il faut donner les index des facettes triangulaires, GL_QUADS : il faut donner les index des quadrilatères, GL_TRIANGLE_STRIP : la liste ordonnée des index pointant sur les sommets des bandes de triangles. Dans le tableau d’index, il st possible d’utiliser un séparateur pour séparer les différentes bandes de triangles, GL_QUAD_STRIP : idem, mais liste de quadrilatères, … Modélisation Géométrique

Rendu OpenGL // Activation du mode de tracé par tableaux de sommets glEnableClientState (GL_VERTEX_ARRAY); glEnableClientState (GL_NORMAL_ARRAY); // si on utilise les normales glEnableClientState (...); // si on utilise d'autres attributs (couleur, coordonnées texture, ...) // Affectation des différents tableaux glVertexPointer (3, GL_FLOAT, 0, sommets); glNormalPointer (GL_FLOAT, 0, normales); // si on utilise les normales // … + autres tableaux s’il y a (couleur,…) // Tracé du maillage triangulaire glDrawElements (GL_TRIANGLES, nb_index, GL_UNSIGNED_INT, index); // Désactivation du mode tracé glDisableClientState ( ………..); // un pour chaque glEnableClientState Modélisation Géométrique

Rendu optimisé Les “Vertex Array” sont une façon simple de visualiser les maillages. Vous optiendrez un rendu plus efficace en utilisant des “Vertex Buffer Objects” (VBO). Modélisation Géométrique

Normale à une face La normale a une facette est obtenu en faisant le produit vectoriel de sa première arête avec la deuxième. Attention à l’orientation des normales quand on stocke un maillage => les sommets des faces doivent toujours être stockés dans le même sens. Les normales donnent l’orientation vers l’extérieur d’un objet fermé. Elles sont aussi fondamentales pour l’éclairage. S1 S2 S3 N 2 1 2 3 (S2-S1)  (S3-S2) ║(S2-S1)  (S3-S2) ║ N = 3 1 N Modélisation Géométrique

Normales aux sommets Approche naïve: somme normée des normales unitaires des faces adjacentes Approches plus avancées : les normales sont pondérées Si on suppose que le calcul de la normale est extrêmement local, les i sont les angles que forment chaque facette au point On peut aussi prendre l’aire des facettes adjacentes pour i Dans tous les cas, on obtient une approximation plus ou moins bonne de la normale à la surface. Ns =  Nfi ║ Nfi ║ Ns =  i Nfi ║ i Nfi ║ Modélisation Géométrique

Exercice : Charger un fichier Ecrire un algorithme permettant de charger un maillage triangulaire stocké par sommets partagés dans un fichier avec les contraintes suivantes : Les deux premières valeurs du fichier sont le nombre de sommets puis le nombre de facettes. Le maillage doit être chargé de façon cohérente pour être visualisé avec un tableau de sommet (Vertex Array). On souhaite aussi fournir les normales en chaque sommet afin de pouvoir éclairer l'objet lors de sa visualisation. Modélisation Géométrique