Chapitre 2

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 :

Ces types de noeuds permettent de définir la géométrie de la scène ; ce sont en fait les seuls noeuds dessinés. Ceux-ci sont uniques, car ils décrivent la matière physique qui sera effectuée par les noeuds propriété ou groupe. Lors du rendu de la scène ce sont ces formes qui seront effectivement dessinées à l'écran. Ces noeuds représentent l'apparence et les caractéristiques qualitatives de la scène. Par exemple : la surface du matériel, le style de trait ou encore les transformations géométriques. Ces noeuds se décomposent en sous-classes : propriété de la géométrie, propriété de l'apparence, propriété de transformation ou matrice et enfin les caméras et lumière. Ces noeuds de type groupe contiennent d'autres noeuds. Ainsi, toute une collection d'objets peut être traitée en tant qu'un seul noeud. Certains noeuds " groupe " permettent de contrôler l'affichage de leurs enfants. Ces noeuds permettent de manipuler un grand nombre d'objets en un minimum d'opérations.
 

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,
]
}
}
                                                                            Figure 4 : Extrait du code du fichier VRML Cluny.wrl
 
 
 

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.
 
 

Sommaire