• Aucun résultat trouvé

Chapitre 3 : Précédents et outils choisis

3.2.2 Quelques concepts de base du VRML

Il est important de comprendre les principaux concepts de VRML 2.0 pour apprécier comment ils peuvent être utilisés. En effet, sans avoir une connaissance approfondie du langage, il est possible de parvenir à des résultats intéressants au niveau de la modélisation 3D. Par contre, comme dans le cas de cette étude, pour atteindre des objectifs plus sophistiqués, une maîtrise des «subtilités» du VRML est requise ainsi qu’une connaissance du JavaScript. Cette section explique les concepts de base du VRML 2.0 et décrit sans renter dans le détail les diverses composantes d'un fichier VRML 2.0.

Principe. Le VRML est un langage de description et d'échange de scènes 3D. Une visionneuse VRML est nécessaire pour rendre la scène 3D. Un utilisateur peut naviguer à l'intérieur d'une scène VRML et interagir avec elle, entraînant ainsi certains comportements animés en temps réel. Un fichier VRML définit un monde quadri-dimensionnel par la représentation graphique en trois dimensions et interaction dans le temps. Les fichiers contenant la description des scènes ont une extension .wrl. Ce fichier est un fichier ASCII pour VRML1 et UTF8 pour VRML2.0/VRML97, c'est donc du texte lisible dans n'importe quel éditeur, et c’est en ce sens là que le VRML est un langage indépendant des plates-formes. Le fichier peut aussi être transmis par un serveur, compressé par Gzip et la décompression est opérée par la visionneuse VRML. Le chargement d'une scène peut se faire par parties (fichiers VRML séparés) appelées par un premier fichier. D'autres fichiers peuvent être chargés pour constituer la scène : des images, vidéos, sons, scripts. Un fichier VRML est composé d'un ensemble de « nœuds » du langage. Un noeud permet de spécifier le type d'élément - qui seront passés en revue plus loin - et d'en spécifier l'apparence et la

géométrie s'il y a lieu ainsi que la constitution. Si VRML 1.0 était limité, VRML 2.0 a apporté de nouveaux types de nœuds et de géométries, la possibilité de grouper des nœuds, la possibilité de configurer la visionneuse directement à l’intérieur du fichier, l'animation, le support sonore, l'utilisation de scripts en Java, ECMAScript (JavaScript, VRMLScript), et les capteurs (W3C, 1996, Annexe B).

Graphe de scène et géométrie. Une scène graphique VRML se compose d'un graphe décrivant les objets de la scène (graphe de scène) dans lequel chaque entité est un noeud. Chaque noeud a un nom type, et est composé de champs et dans certains cas, d'événements qu'il peut recevoir ou envoyer. Le point 3.1.3 définit en détail chacun de ces éléments. Les événements diffusent l'information parmi des noeuds pour permettre l'animation et l’interactivité dans la scène VRML, complétés par la notion de ROUTE : des événements générés par le VRML lui-même (par exemple click de souris ou tops d'horloge) sont renvoyés vers des champs des noeuds VRML appelés eventln. Ces eventln sont redirigés vers d'autres champs des noeuds VRML appelés eventOut. Les scripts utilisent le même mécanisme pour passer leurs méthodes et être activés. Un graphe de scène se compose de noeuds et de groupes de noeuds dans une structure hiérarchique. Chaque nœud peut avoir des enfants et une transformation appliquée à un nœud parent se répercute sur ses enfants. Il existe cinquante-deux noeuds prédéfinis qui sont la base du langage, et permettent de définir la géométrie, l'apparence (la couleur et son intensité, la transparence, la texture), l'emplacement, le regroupement d'autres noeuds, etc. Ces différentes propriétés sont passées en revue dans le point 3.1.3. Le cube, le cône, le cylindre et la sphère sont les géométries primitives du VRML. Des formes complexes peuvent être réalisées par combinaison des formes élémentaires, ou encore elles peuvent être décrites par VlndexFaceSet. Un IndexFaceSet est défini par un certain nombre de points dans l’espace 3D reliés pour former des polygones (habituellement triangles) qui eux-mêmes composent les surfaces de la forme (Marrin, Campbell, Sonstein, 1997).

Interactions. VRML 2.0 procure un certain nombre de moyens par lesquels l’utilisateur peut interagir avec une scène. La navigation simple ou la navigation par points de vue se fait au travers de l’interface proposée par la visionneuse VRML. Il est également possible d’insérer des hyperliens qui relient des éléments de la scène à d’autres scènes VRML 2.0 ou des documents HTML. Pour des interactions plus complexes, l'utilisation de scripts est nécessaire. Notre prototype informatique en fait d’ailleurs un usage important. Ce sont les senseurs (Sensors) qui permettent d'initier les comportements interactifs ou les animations

au sein d'une scène. Ceux-ci ne sont pas visibles, mais réagissent à l’action de l’utilisateur ou du temps. Le TouchSensor génère un événement en réaction au clic ou au passage du curseur. Les CylinderSensor, PlaneSensor et SphereSensor (senseurs géométriques) réagissant au clic et au drag (glissement avec bouton de la souris enfoncé). Le TimeSensor génère des événements selon la valeur relative de ses StartTime et StopTime; il est généralement utilisé en conjonction avec des senseurs géométriques et des animations (Groupe VRML francophone, 1999, http://perso.infonie.fr/kdo/vrml/start.htm).

Animations. La méthode utilisée en animation est connue sous le nom de Keyframing. Le Keyframing repose sur un principe très simple : c'est le programme de visualisation qui calcule tous les points intermédiaires d’une trajectoire entre deux points (Keyframes). Par exemple, lorsque l’utilisateur déclenche un senseur, celui-ci génère un événement qui met en route un TimeSensor. A son tour le TimeSensor génère une série d’événements à intervalles réguliers qui sont envoyés à un interpolateur. Ces interpolateurs calculent les valeurs pour chaque moment dans le temps et envoient ces valeurs au nœud contenant l’objet qui doit être animé. Selon le type d'interpolateur utilisé, il est possible de translater un objet, de lui faire subir une rotation, de lui faire changer de couleur, de taille ou de forme. Les animations peuvent être configurées pour ne jouer qu'une seule fois ou en boucle (Groupe VRML francophone, 1999, http://perso.infonie.fr/kdo/vrml/start.htm).