VRML & X3D
Qu'est ce que le VRML?
Présentation
Le Langage VRML (Virtual Reality Modeling Language) permet de concevoir des simulations interactives en multiutilisateurs et en trois dimensions (cyberespace). Ce langage est né en 1994 et a été pensé par Mark D. Pesce1, Peter Kennard2 et Tony Parisi3.
Ce langage interprété est une norme internationale ISO et les fichiers VRML ont habituellement pour extension .wrl.
En fait, c'est à proprement parler un langage de présentation et non de programmation, puisque comme pour le langage HTML par exemple, un fichier VRML ne contient généralement pas une suite d'instructions mais plutôt les informations permettant au visionneur d'afficher ensuite les éléments (formes, senseurs, lumières, etc).
Reposant sur un plug-in spécifique, ce langage à balises, propose une syntaxe pour définir les objets, leurs attributs (position, couleurs, textures, transparence...) et leurs interactions avec l'environnement. Le développeur peut attacher des évènements (animation, son, éclairages), et même des URLs aux objets. VRML dispose même de balises pour inclure du code Java ou JavaScript.
Le fonctionnement est simple, une fois le programme interprété par le visionneur, le monde virtuel s'affiche à l'écran, en 3D; la caméra (c'est-à-dire le point de vue) se positionne à l'endroit prévu de la scène, et l'utilisateur est alors libre de se déplacer dans ce monde (généralement à l'aide du clavier ou de la souris) et d'interagir avec les différents objets présents. Les "sensors" de proximité permettent de lancer une action lors du passage à proximité d'un objet, les "sensors" de touché permettent de déclencher, par exemple, avec un clique sur l'objet l'ouverture d'un autre monde virtuel
En complément des informations de base concernant les différents objets de la scène 3D, le VRML possède un véritable langage de programmation interne appelé VrmlScript, dont la syntaxe est similaire au JavaScript. Il permet notamment de manipuler les objets (nœuds) de la scène VRML (de type SFNode), ou d'autres types de données propres au VRML comme les SFTime, SFColor, ou encore SFRotation. Un script écrit en VrmlScript est exécuté à l'intérieur d'un objet (ou nœud) de type Script{}, comme ceci :
#VRML V2.0 utf8 Script { field SFInt32 unNombre 123456 field SVec3f unVecteur 1 3 2 url "vrmlscript: function maFonction() { print('Hello world !'); print('Voici un vecteur : '+unVecteur); } " }
A partir de la version 2 de VRML, il est possible d'insérer des fichier .wrl dans des pages HTML, comme vous avez pu le voir dans la première page du site.
Il existe deux façons d'insérer un fichier VRML :
- Soit à l'aide d'un simple lien hypertexte : < a href="objet.wrl" > Cliquez ici </a>
- Soit avec la balise < embed > (remplacée par < object > dans HTML 4.0) déjà utilisée pour insérer du son ou de la vidéo. Vous devez ici définir la hauteur (height) et la largeur (width) de la fenêtre qui va accueillir le monde ou l'objet VRML : < embed src="objet.wrl" width=300 height=200 >
Il est également possible d'ajouter de nouveaux objets à vos scènes, par exemple l'objet "Text3D" que propose Cortona et qui apparait dans la figure de la première page du site, est définie
comme suit :
Text3D { exposedField MFString string [] exposedField SFNode fontStyle NULL exposedField MFFloat length [] exposedField SFFloat maxExtent 0 exposedField SFFloat depth 0.1 exposedField SFFloat creaseAngle 0 exposedField SFBool solid TRUE }On peut facilement comprendre que l'objet Text3D possede 7 champs, dont une chaine de caractère, une longueur, un style et une profondeur.
Il est possible d'insérer ces objets dans un code VRML à la façon du C, c'est à dire en définissant un prototype, du type de celui déclaré en haut, en l'enregistrant dans un fichier .wrl, et en y faisant appel dans notre autre fichier .wrl à l'aide de la commande EXTERN PROTO.
Il existe plusieurs editeurs permettant de visualiser ou de développer les objets 3D VRML ou X3D, dont les principaux sont les suivants :
Software | OS | X3D | ||
Win | Linux | Mac | ||
Cosmo Player | X | |||
Cortona3D Viewer | X | |||
BS Contact | X | X | X | X |
OpenVRML | X | X | X | X |
1Mark D. Pesce : auteur, chercheur, ingénieur et enseignant
2Peter Kennard : artiste en photomontage
3Tony Parisi : chercheur et développeur de logiciel 3D