Le Formalisme de Représentation Géométrique
2.1 Virtual Reality Modeling Language (VRML)
Le langage VRML [Pesce 1995] a été conçu à partir du langage Open Inventor, développé par Silicon Graphics. Ce dernier a été créé pour être à la fois très complet et pour permettre aux programmeurs sans grandes connaissances en programmation des graphismes de réaliser des environnements 3D réalistes. Le VRML intègre de plus des fonctionnalités qui le rendent compatible avec Internet et améliorent certaines des fonctions d'Open Inventor.
Le concept central du VRML est le monde, ou document VRML. On doit se représenter ce monde comme une scène, plutôt que comme un vaste environnement monolithique. Comme au théâtre, une scène VRML comporte un nombre fixe d'éléments types et de qualités spécifiques. Non seulement le document VRML décrit le contenu et l'agencement du monde, mais il peut également contenir des liens vers d'autres documents HTML. Toute scène VRML possède un point de vue principal appelé caméra et c'est à travers cette caméra que l'acteur voit la scène.
Pour être affiché, le fichier VRML est d'abord analysé
syntaxiquement, c'est à dire qu'il est lu et interprété
par le visualiseur tridimensionnel. Se basant sur cette analyse, le module
de rendu crée des représentations visibles des objets qui
sont décrits dans les documents et les affiche. Le chargement des
fichiers VRML se fait souvent en plusieurs étapes : la description
de base de la scène est d'abord chargée, puis dans le cas
de descriptions imbriquées, le visualiseur charge les autres scènes.
La vitesse de transfert des données sur le réseau peut créer
un goulet d'étranglement ce qui fait que le chargement du monde
VRML ne soit pas immédiat. Cependant, VRML supporte le chargement
paresseux qui permet l'interaction avec la scène bien avant le total
chargement du monde.
2.2 Aperçu de la syntaxe de VRML
Dans le monde des graphismes 3D, l'ordinateur utilise des ensembles de points qui sont reliés ensemble pour créer la charpente des objets. Une fois la charpente créée , on ajoute la surface qui donne à l'objet son aspect final. Ces surfaces sont constituées d'objets polygonaux. Certaines autres formes de base sont à la disposition de l'utilisateur : sphères, cônes, cubes. Les objets complexes sont définis à partir d'ensembles de points donnant les sommets de chaque polygone et de une listes de références sur ces points donnant les lois de composition des facettes des polygones.
Le triangle constitue l'élément de base des représentations graphiques 3D car son rendu est simple pour un ordinateur et à partir de cette structure de base on peut obtenir une bonne approximation de n'importe quel modèle.
Le monde virtuel est représenté en VRML [Imad 1996] par un graphe de scène constitué par des noeuds à structure hiérarchique correspondant aux différents constituants de la scène. Le graphe de scène n'est donc qu'une simple collection ordonnée de noeuds introduisant une notion d'état. Par exemple, un noeud de rotation affecte les noeuds imbriqués. VRML définit plusieurs types de noeuds :
2.3 Analyse du fichier code VRML. L'IndexedFaceSet
N'ayant pas actuellement les fichiers traduits du Plan de Rome, le fichier
modèle utilisé (Figure 3) correspond à
une reconstitution virtuelle de l'Abbaye de Cluny menée par des
étudiants du CNAM (Conservatoire National des Arts et Métiers)
avec l'aide d'IBM France dans le projet CLUNY en 1992. Le fichier est disponible
sur Internet, et a été récupéré à
l'adresse suivante : http://www.catia.ibm.com/imagal/vrml.html
. Ce fichier a été choisi en raison de ses caractéristiques
topologiques puisqu'il représente une partie de l'abbaye de Cluny
et ainsi devrait se rapprocher sensiblement des fichiers qu'il faut traiter.
Figure 3: Visualisation du fichier modèle, l'abbaye de Cluny. Cluny.wrl
. Propriété de IBM
Quand on observe de près la structure du fichier VRML correspondant à l'Abbaye de Cluny (Figure 4), on remarque que le gros du fichier est constitué de noeuds IndexedFaceSet.
#VRML V1.0 ascii
Separator { Material { diffuseColor 0.8 0.8 0.533333 } --------------------------------------- Coordinate3 { Noeud Coordinate3 point [ Définition (coordonnées) de 13.2925 11.5847 8.9, l'ensemble de points constituant 12.7665 11.5242 8.9, le squelette de la maille 13.2925 11.5847 0, polygonale ... 13.2925 -11.5847 0, 12.6794 -12.3544 0, 13.2435 -12.4193 0, ]} ---------------------------------------- Normal { Noeud Normal vector [ Définition des coordonnées 0.11431 -0.993445 0, des vecteurs représentant 0.11431 -0.993445 0, la normale à une facette 0.11431 -0.993445 0, ... 0 0 -1, 0 0 -1, 0 0 -1, ]} --------------------------------------- Noeud IndexedFaceSet: Représente IndexedFaceSet { l'objet par la définition de chacune de ses facettes coordIndex [ 0,1,2,-1, coordIndex: liste des indices 1,3,2,-1, des facettes constituant l'objet 4,5,6,-1, ... 41,43,42,-1, 44,45,46,-1, 45,47,46,-1, ] normalIndex [ 0,1,2,-1, normalIndex: liste des facettes 1,3,2,-1, présentant un vecteur normal 4,5,6,-1, ... 41,43,42,-1, 44,45,46,-1, 45,47,46,-1, ] } } |
Le noeud IndexedFaceSet représente une forme 3D complexe
formée par des facettes polygonales (triangles) définies
par des sommets situés par rapport au repère coordonné.
L' IndexedFaceSet utilise les indices de son champ coordIndex
pour spécifier les facettes polygonales. Un indice de -1 indique
la fin de la facette courante et le début de la facette suivante.
Chaque IndexedFaceSet représente un des éléments
du fichier 3D Studio Max traduit.