Virtual Reality Markup Language

Un article de Wikipédia, l'encyclopédie libre.

Le Virtual Reality Modeling Language (abrégé en VRML) ou Virtual Reality Markup Language est un langage de description d'univers virtuels en 3 dimensions. 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).

Présenté lors de la World Wide Web Conference de 1994, VRML n'est pas l'œuvre d'un unique programmeur, mais plutôt le résultat de la collaboration de plusieurs professionnels de la 3D, dont entre autres Mark Pesce, Tony Parisi, Gavin Bell (Silicon Graphics) et Paul Strauss (Silicon Graphics).

Le but premier de ce langage est de permettre la représentation d'univers interactifs 3D virtuels. Les fichiers .wrl sont des fichiers texte décrivant les scènes virtuelles à l'aide du langage VRML. Les fichiers .wrl, qui peuvent être stockés localement sur un ordinateur ou téléchargés depuis un serveur web, sont visualisés à l'aide d'un visionneur, qui est soit un plugin ajouté au navigateur web ou encore un logiciel autonome indépendant du navigateur web, qui est installé sur l'ordinateur de l'utilisateur.

Les programmes VRML peuvent décrire des formes simples (points, lignes, polygones) ou complexes (sphères, cubes, cônes, cylindres...), du texte, des images, des animations, des éclairages, des sons, des hyperliens, ainsi que leur agencement dans l'espace, leur texture, leur couleur, leur matériau...

Sommaire

[modifier] Exemple de description de forme en langage VRML

#VRML V2.0 utf8
Shape {
  appearance Appearance {
    material Material {
      diffuseColor  .8 0 .2
      shininess .7
    }
  }
  geometry Cylinder {
    radius 1
    height 8
    side FALSE
    top TRUE
    bottom FALSE
  }
}

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 1996, une nouvelle mouture du langage fut présentée : VRML 2.0 (par la suite rebaptisée VRML97). Parmi les améliorations par rapport à la version 1.0, on peut citer :

  • animation des objets: les mondes créés ne sont plus condamnés à demeurer statiques
  • interaction avec les objets : chaque objet du monde peut réagir à des signaux, ces signaux pouvant être générés par l'utilisateur (clavier, souris...) ou par d'autres objets du même monde.
  • création de scripts d'animation (en javascript/ecmascript) inclus aux fichiers .wrl
  • gestion des sons en 3D
  • extrusions d'objets
  • effets de brouillard
  • utilisation d'une séquence vidéo en tant que texture d'un objet
  • création de prototypes d'objets

En complément des informations de base concernant les différents objets de la scène 3D, le VRML v2 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);
    }
  "
}


Ce langage ouvert et accessible à tous, est bien documenté sur le web et est souvent utilisé pour :

  • représenter des objets réels numérisés.
  • créer des jeux vidéos 2D/3D.
  • représenter des objets dans des documentations techniques (la NASA avait par exemple publié un fichier VRML qui permettait d'observer le module Mars Pathfinder dans ses moindres détails)
  • des sites Internet de rencontre et de discussion, où chaque visiteur choisit un avatar pour le représenter, avant de s'aventurer dans le monde virtuel à la rencontre des avatars des autres visiteurs.
  • des simulations d'intérieurs (pour l'étude de l'agencement et de l'éclairage des pièces)
  • des graphiques statistiques en 3D (cartographie, histogrammes 3D...)

[modifier] Visionneur VRML (pour la visualisation de fichiers VRML)

[modifier] Voir aussi

[modifier] Liens externes