Un système de synthèse d’images tridimensionnelles
Les recherches de l’équipe IMAGES de l’EMSE touchent aux différents domaines de la synthèse d’images, modélisation comme visualisation. Nos nouveaux algorithmes, nos idées se doivent d’être testés sur un logiciel dont nous soyons entièrement maîtres ; ainsi ILLUMINES ([Beig 90]) est né du fruit des travaux de l’équipe IMAGES de l’EMSE.
L’ARCHITECTURE D’ILLUMINES
ILLUMINES est un système de synthèse tridimensionnelle centré sur un modeleur du type arbre de construction : CASTOR . Plusieurs interfaces, plusieurs techniques de visualisation peuvent être utilisées. Le concepteur d’image peut ainsi visualiser rapidement, en cas d’interaction, ou au contraire produire une image présentant un certain réalisme (ombres, transparences, sources de lumière, … ) avec un temps de calcul, bien sûr, plus important.
Ce système est de conception très modulaire et peut être représenté par le dessin de la · figure 1.1, où les rectangles représentent des fichiers et les ellipses des modules de traitement (des processus UNIX). Les flèches en trait plein représentent ce qui existe à l’heure actuelle, les pointillés correspondent à des travaux en cours.
Le système complet peut être décomposé logiquement en quatre sous-ensemble :
– la partie saisie, constituée de l’interface éditeur de texte, de l’interface graphique, de l’interface évoluée et de castorC, une sur-couche construite avec la philosophie du langage USP sur le modeleur ; cette partie sera décrite dans le paragraphe 4.
-un modeleur (CASTOR) de type arbre de construction qui sera décrit dans le paragraphe 3.
-la partie visualisation qui comporte deux familles d’algorithmes. La première est constituée du tracé de rayons, qui prend en entrée un arbre de primitives ; la seconde ne traite que des polygones. Pour cette deuxième famille d’algorithmes, le modeleur doit facettiser les primitives de l’arbre de construction, effectuer le coupage et la transformation perspective pour fournir l’entrée voulue à l’un des algorithmes d’élimination des parties cachées. Ces algorithmes seront décrits dans le paragraphe 5.
LE MODELEUR CASTOR
Le maquettiste construit son objet en accolant des éléments de surface. Le sculpteur définit une silhouette à partir d’un élément volumique de base. Par analogie, la modélisation tridimensionnelle en synthèse d’images peut s’effectuer de deux façons possibles: par une modélisation surfacique où la scène est décrite par un ensemble de surfaces planes ou gauches (la maquette) ; par une modélisation volumique (la sculpture).
La modélisation surfacique décrit l’objet par une liste de faces (planes ou gauches). Son principal inconvénient est le manque d’information de nature topologique. La notion d’intérieur et d’extérieur n’existe pas. La cohérence entre les surfaces doit être gérée manuellement par le concepteur de l’image. La modélisation volumique permet de distinguer l’intérieur de l’extérieur d’un solide. Les frontières d’un objet ne sont pas toujours connues explicitement dans toutes les modélisations volumiques. L’espace de modélisation étant l’espace affine euclidien de dimension trois, Requicha [Requ 80] précise les propriétés que doit vérifier une partie de R3 pour être susceptible de modéliser un solide réel.
La Modélisation Volumique
Plusieurs méthodes de modélisation volumique existent, dont les plus connues sont :
-La représentation par les frontières (Boundary REPresentation BREP) décrit explicitement les frontières d’un objet ([Baum 72], [Mant 82], [Ansa 85], [Mich 87]) ce qui constitue son avantage principal. Cette représentation n’est pas unique, un objet peut être représenté par différents assemblages de surfaces. Une BREP doit assurer qu’un ensemble de surfaces définit bien un volume qui a un intérieur et un extérieur. C’est alors que deux phénomènes étroitement liés interviennent : tout d’abord les éventuelles imprécisions numériques peuvent perturber la cohérence du modèle ; ensuite l’utilisation des opérations booléennes. Ces dernières (notamment l’intersection et la différence) posent des problèmes de vérification de cohérence et augmentent les imprécisions numériques.
-L’énumération spatiale code les objets dans un espace borné et discret. L’espace ainsi défini, est une trame cubique 3D et la représentation la plus simple d’un solide consiste à fournir la liste des cellules qui sont occupées par le solide ; chaque cellule est appelé voxel. Le voxel ne peut prendre que deux valeurs : plein ou vide. L’espace est donc un tableau 3D de bits (Picture Element ARya Y : PEARY). Le PEARY ne pose strictement aucun problème de validité : la représentation est toujours cohérente ; les opérations booléennes se font de façon simple et efficace. Informatiquement ce tableau est codé et compacté sous forme d’un arbre octal ( octree) [Same 84]. Cette représentation a aussi ses inconvénients :
– elle perd la continuité et les normales des smfaces. Ces dernières peuvent être reconstituées approximativement par une étude locale sur les voxels voisins ;
– l’acquisition, en l’abscence de l’existance préalable du solide et d’un moyen de saisie adéquat (saisie tomographique dans les applications médicales, … ), est rebutante.
-La modélisation par arbre de construction (Constructive Solid Geometry : CSG) [Requ 80] est une technique de modélisation qui combine des solides au moyen d’opérations ensemblistes. La structure associée est un arbre dont les noeuds sont des opérateurs booléens (union, intersection, différence) ou des transformations géométriques .(affines : rotation, translation, … , ou non linéaires comme par exemple les déformations libres [Nie 89]) et les feuilles des objets élémentaires . La modélisation par arbre de construction n’est pas unique : un objet peut être en effet obtenu à partir de plusieurs arbres différents.
-les différents sous arbres de l’arbre de construction peuvent être partagés; dans ce cas nous avons affaire à un graphe sans circuit à la place d’une · structure d’arbre.
– les transformations geométriques peuvent se situer à différents niveaux de l’arbre. Certaines implémentations préÎerent appliquer les transformations au niveau le plus bas de l’arbre, à savoir sur chaque feuille, alors que d’autres les font porter sur tous les noeuds, et pas seulement les feuilles. Cette dernière solution permet de partager davantage de noeuds. L’implémentation de CASTOR (voir le paragraphe 3.2) utilise à bon escient le partage des noeuds.
L’arbre de construction fut la structure de modélisation tridimensionnelle choisie lors de la construction de notre modeleur. Elle présente des avantages dont :
– la structure arborescente permet d’attribuer des qualités à tout un sous arbre (textures, déformations, … ) ; par exemple il est possible d’effectuer des animations simples, ou l’ajustement de la position dans tout l’espace de tout un sous arbre, par la seule modification de paramètres de certaines transformations géométriques,
– cette description est essentiellement symbolique, elle peut être produite, manipulée, modifiée en· utilisant des langages ou des techniques de manipulations symboliques : CASTOR en est un bon exemple.
|
Table des matières
Introduction
Chapitre 1 : Un système de synthèse d’images tridimensionnelles n..LUMINES
1.1 Introduction
1.2 L’architecture d’ilLUMINES
1.3 Le modeleur CASTOR
1.3.1 La modélisation volumique
1.3.2 Castor
1.4 La saisie de la scène
1.5 Les algorithmes de visualisation
1.5.1 Visualisation en fù de fer
1.5.2 Visualisation par le tampon de profondeur
1.5.3 Visualisation par balayage de ligne
1.5.3.1 Principe général de l’algorithme d’Atherton
1.5.3.2 Version programmée à l’EMSE
1.5.4 L’algorithme VOIR
1.5.5 Visualisation en tracé de rayons
1.5.5.1 Principe de l’algorithme du tracé de rayons
1.5.5.2 SKY
1.6 Premiers constats.
Chapitre 2 : Un modeleur flexible et évolutif orienté objet.
2.1 Introduction
2.2 Présentation des travaux déjà publiés
2.3 La programmation orientée objet.
2.3.1 Définitions.
2.3.2 Avantages et inconvénients de la programmation orientée objet
2.3.3 Une méthodologie pour le choix des classes
2.4 Les caractéristiques du modeleur éASTORC++
2.4.1 La conception de la hiérarchie des classes.
2.4.2 Flexibilité du modeleur.
2.4.3 Implémentation.
2.5 L’utilisation de C++
2.5.1 Présentation de C++
2.5.2 Quelques problèmes avec C++
2.5.3 Un exemple de description de scène en CastorC++.
2.6 Conclusion.
CHAPITRE 3 : Mixage d’algorithmes en synthèse d’images
3.1 Introduction
3.2 Mixage des algorithmes d’Atherton et du tracé de rayons avec interactions en réflexion et en transparence.
3.2.1 Description de la méthode.
3.2.2 Avantages de la méthode.
3.2.3 La gestion de la place mémoire.
3.3 Mixage des algorithmes d’Atherton et du tracé de rayons avec interaction en ombre portée.
3.4 Implémentation et résultats.
3.5 Conclusion.
CHAPITRE 4 : La gestion des niveaux des détails.
4.1 Introduction.
4.2 Rappels des solutions déjà proposées.
4.3 Génération des différentes descriptions d’un objet.
4.3.1 Génération manuelle des différentes descriptions d’un objet.
4.3.2 Génération automatique des différentes descriptions d’un objet.
4.4 L’utilisation de la texture.
4.4.1 La détermination de la texture.
4.4.2 La détermination de l’objet_silhouette.
4.4.3 critère de platitude.
4.4.4 Le problème de l’éclairement.
4.4.5 Résultats et perspectives.
4.5 Les objets fondants.
4.5.1 Principe
4.5.2 Changement de couleur entre deux descriptions
4.5.3 Changement de la matière d’un objet entre deux descriptions.
4.6 Conclusion
Conclusion
Télécharger le rapport complet