|
VisuSat3D : Modélisation de bâtiments
Date : Juin 1999
Responsable : Olivier Amadieu
Cours : Projet de fin d'année |
|
|

Par :
Grégory CAZANAVE (cazanave@essi.fr)
Olivier DUMAZY (dumazy@essi.fr)
Jérôme LAPORTE (laporte@essi.fr)
Ludovic TENANT (tenant@essi.fr)
|
|
|
|
|
|
|
|
Présentation :
Le but de ce projet est de visualiser en 3D les bâtiments étudiés par Olivier Amadieu, thésard à l'I3S.
Son travail consiste à détecter des bâtiments à partir de photos aériennes. Nous devons alors analyser
ces données pour construire un objet 3D représentant l'ensemble des bâtiments, créer un moteur 3D pour
" naviguer " dans le modèle reconstruit.
|
|
|
Réalisation 3D :
Afin de construire l'objet 3D qui représentera notre scène, nous allons utiliser l'algorithme
des " Marching cubes ".Cet algorithme crée un objet constitué de points et de facettes à partir
de fichiers de voxels. L'avantage de créer un tel objet est qu'il est facilement représentable
par un logiciel de représentation 3D, que ce soit Visu(que nous avons développé en cours de
synthèse d'image) ou bien par le moteur 3D écrit en OpenGl durant le projet.
Description de l'algorithme :
Le principe des " Marching Cubes " est de subdiviser le volume où se situe notre surface en
petits cubes ou parallélépipèdes. On progresse alors dans notre volume cube par cube et on
vérifie si la surface intersecte chaque cube. Si c'est le cas on approxime la partie de la
surface concourante avec le cube par une ou plusieurs facettes. Une étude approfondie nous
montre qu'il ne peut y avoir que 256 " types " d'intersection qui peuvent se ramener à 15 cas
si l'on joue sur les rotations et symétries. Pour se référer à cette table de possibilités,
nous avons besoin de numéroter les arêtes et les sommets de nos cubes et de comparer la valeur
de chaque sommet à l'isovaleur de la surface recherchée. La qualité du résultat obtenu dépend
de la dimension des cubes (correspond à la résolution du maillage).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Visualisation 3D :
Pour réaliser ce travail, nous avons utilisé l'outil OpenGL.
Pour effectuer les transformations nous avons décidé de faire bouger uniquement la caméra autour des
bâtiments au lieu d'appliquer les transformations aux bâtiments eux-mêmes. Nous avons ensuite utiliser
une demi sphère virtuelle au-dessus des bâtiments sur laquelle se déplace la caméra. En effet,
seule la partie au-dessus du sol nous intéresse et il est inutile d'avoir une vue de dessous des
bâtiments.
La rotation consiste donc à faire tourner la caméra sur la demi sphère tout en visant son centre.
La translation est un déplacement dans le plan xOz(la translation selon l'axe des y étant inutile
puisqu'on ne veut pas voir la ville par-dessous). Enfin, le zoom correspond à une augmentation ou
une diminution du rayon de la demi sphère virtuelle.
|
|
|
|
Animations et Utilisation :
Animations
Nous pouvons réaliser des animations à partir du schéma 2D de la ville sur lequel l'utilisateur
sélectionne une suite de points qui définissent un chemin à parcourir. Nous pouvons ensuite
visualiser ce parcours à l'aide de deux fonctionnalités implémentées : la promenade à
l'intérieur de la ville et son survol.
Remarque : Il est aussi possible d'appliquer des textures sur les bâtiments reconstruits
ainsi que de produire des effets de brouillard à l'intérieur de la ville.
Utilisation
Pour faciliter l'utilisation de notre logiciel des interfaces conviviales ont été réalisées.
Une permet de le faire tourner sous WINDOWS et l'autre sous UNIX. Elles sont accompagnées
d'un "README" expliquant les diverses fonctionnalités exploitabes.
|
|
|
|
|
|
|
|
|
|
|