Projets image 2007
Remaillage semi-régulier d'objets 3D
Contexte
En informatique graphique, les objets 3D sont le plus souvent représentés sous forme de surfaces maillées : une telle surface représente le bord (on dit la frontière) de l'objet, et elle est constituée d'un ensemble de points ou sommets, d'un ensemble d'arêtes reliant ces sommets, et d'un ensemble de faces (souvent triangulaires) délimitées par ces arêtes. Ces maillages peuvent être statiques, c'est-à-dire ne pas évoluer dans le temps, ou dynamiques : on parle dans ce cas d'une séquence (temporelle) de maillages (voir la figure ci-dessous).Quatre maillages extraits d'une séquence représentant le mouvement d'un coq.
Le remaillage consiste à transformer un maillage, ou une séquence de maillages, en un(e) autre (séquence de) maillage(s) contenant généralement à peu près le même nombre de sommets, et vérifiant des propriétés intéressantes. Ainsi un remaillage semi-régulier consiste à remplacer le(s) maillage(s) de départ par un/des maillage(s) semi-réguliers, c'est-à-dire un/des maillage(s) dont presque tous les sommets ont la même connectivité (c'est-à-dire le même nombre de voisins). Plus précisément, un maillage semi-régulier est un maillage obtenu par subdivisions successives des faces d'un maillage de départ très grossier (voir la figure ci-dessous). Les maillages semi-réguliers ont plein de propriétés intéressantes : entre autres, la compression se fait de manière très efficace du fait que la connectivité est presque partout la même.
Remaillage semi-régulier de la tête du David de Michel-Ange. En turquoise, un triangle du maillage grossier raffiné.
Les deux projets proposés ont pour but de convertir des maillages quelconques en maillages semi-réguliers. Ils consistent en l'implémentation d'un ou de plusieurs algorithmes existant(s), décrit(s) (en anglais) dans un article publié dans une revue scientifique spécialisée. Mais comme vous vous destinez à être ingénieurs (ou éventuellement chercheurs), c'est-à-dire plus que de simples programmeurs, ces projets comportent également une part de réflexion : je vous demande d'analyser les résultats produits par ces algorithmes sur différentes données, et éventuellement, de proposer des améliorations à ces algorithmes.
Détails techniques
Voir ma page principale sur les projets image pour les aspects pratiques.- Niveau correct en anglais nécessaire (pour comprendre les articles et les références).
- Programmation en C/C++.
- Cette année, vous devrez utiliser la bibliothèque OpenMesh, qui contient toutes les structures de données nécessaires à la manipulation de maillages polygonaux.
- Une interface de visualisation de maillages statiques vous sera fournie. Elle utilise QGLViewer (QGLViewer est construit sur Qt et OpenGL, et offre des outils pour construire très facilement une application 3D : visualisation d'une scène, mais aussi animation, par exemple).
- Vous devrez développer votre propre interface pour les maillages dynamiques (sujet 3). Néanmoins, vous pouvez utiliser Cortona pour vérifier vos résultats.
- Pour tout souci ou question, me contacter par mail. Je passerai en salle E303 plusieurs fois par semaine.
Les sujets
- Sujet 1 (3 étudiants) : remaillage semi-régulier par chartification.
- Sujet 2 (2 étudiants) : remaillage semi-régulier par approximation variationnelle.
- Sujet 3 (4 étudiants) : représentation semi-régulière de séquences de maillages.