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 :

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