Welcome in the VRML's virtual world

Spécification VRML 1.0

  1. Qu'est-ce que le VRML ?
  2. Navigation VRML, de Quoi a-t-on besoin ?
  3. Le Langage VRML 1.0
  4. Conception VRML visuelle
  5. Exemples de mondes virtuels


1 - Qu'est-ce que le VRML ?

Le VRML (Virtual Reality Modeling Langage) est un langage de description de page au même titre que le HTML. Il gère les liens hypertextes comme le HTML mais l'interface graphique 2D du HTML est remplacé par un environnement en 3D appelé "Monde virtuel" dans lequel on évolue. Il permet l'exploration en temps réel et en ligne d'environnements réalistes en 3D. Ces mondes VRML peuvent être constitués de scènes familières, par exemple des boutiques, des villes ou être totalement imaginaires.

Imaginez une page HTML dans laquelle vous pouvez évoluer dans toutes les directions, manipuler des objets familiers pour effectuer une opération de recherche de sites ou de consultation de données en 3 dimensions, exécuter une animation dès que vous cliquez sur un objet ou sur un hyper lien ... bref surfer l'Internet en utilisant la "Réalité Virtuelle".

L'avantage pour l'utilisateur est que la valeur de la Réalité Virtuelle est directement liée à sa puissance en tant qu'outil de visualisation. Ainsi, avec des applications VRML, vous pouvez dans un cadre expérimental comme opérationnel :
  - visualiser les structures et les flux de vos données en 3 dimensions,
  - visualiser des inventaires,
  - représenter des phases de vos projets sous forme de régions dans un paysage,
  - expérimenter un flux de données.

 

Historique

Le VRML a vu le jour durant l'été 1994 lors d'une conférence sur le World Wide Web. Il était alors question de réaliser une interface entre le WEB et la Réalité Virtuelle.

Quelques temps après, une Mailing List fut créer pour élaborer les spécifications de la première version du VRML. En moins d'une semaine le nombre de collaborateurs dépassa les 1000, et après une période d'initialisation, il fut décidé sous la direction de Mark PESCE (http://www.hyperreal.org/~mpesce), d'élaboré une Draft Version pour la conférence sur le World Wide Web de la fin de l'année 1994. La Liste fut d'accord sur cette décision et on commença à rechercher les technologies adaptable au VRML.

Après quelques délibérations, il fut décidé de choisir le format de fichier Inventor File Format développé par Silicon Graphics Inc. pour supporter la syntaxe du langage, celui-ci contenant un mode de description des mondes 3D (Objets calculés, lumière, texture, effets réalistes ...). Ce format de fichier fut adapté pour le VRML en fonction des spécifications développées par les membres de la Mailing List, puis SGI déclara le format de fichier du VRML comme faisant parti du domaine publique afin d'accélérer le développement des navigateurs VRML.

 

Sites traitant du VRML

VRML Consortium
http://www.vrml.org/Specifications/
http://www.vrml.org/consort/apr98.html
Pour tout savoir sur la naissance du VRML et la syntaxe du langage.

Le VRML Architecture Group
http://vag.vrml.org/
Le site des 8 experts qui ont organisé le developpement des spécifications du VRML.

Le NewsGroup du VRML
news:comp.lang.vrml

Le journal du VRML
http://www.tcp.ca/gsb/VRML/vrml-news.html
Toutes les infos sur le monde du VRML jour par jour.

The Moving Worlds proposal/working VRML97 specification :
http://www.vrml.org/Specifications/VRML97
http://cosmosoftware.com/developer/moving-worlds/
2 sites sur la présentation complète de la dernière mouture VRML.

The Moving Worlds proposal/working VRML98 specification :
http://ece.uwaterloo.ca/vrml98
Un site sur la présentation de la prochaine mouture du VRML.


2 - Navigation VRML, de quoi a-t-on besoin ?

Comme le HTML, le VRML a besoin d'un logiciel appelé Navigateur, pour interpréter son contenu et en calculer le résultat graphique. Pour cela on trouve sur le Net des plug-in permettant de passer de la navigation 2D HTML à la navigation en 3 dimensions.

 

Plug-in VRML

Un plug-in VRML correspond à un composant logiciel que vous branchez sur votre navigateur. A chaque chargement d'un fichier de type MIME : x-world/x-vrml le plug-in VRML est exécuté. Il se charge d'interpréter le fichier .WRL et de calculer graphiquement son contenu en dessinant les objets en 3 dimensions, en appliquant les textures, en calculant les effets de réalisme et de jeux de lumières ainsi que les points de vue mémorisés et les animations programmées.

Parmi la quantité phénoménal de plug-in VRML existant, voici une présentation des plus utilisés :

CosmoPlayer 2.1 de SGI
(n'est plus téléchargeable depuis http://www.sgi.com/ pour cause d'abandon de la version pour PC)
http://www.altern.org/garstud/vrml/cosmo_win95nt_fr.exe (3.1 Mo)
Le plug-in de Silicon Graphics Inc. est le plus populaire. Il possède la meilleure qualité d'image et une interface de navigation incluant des touches de contrôles au clavier très pratique, et une gestion des 2 boutons de la souris qui confère à l'internaute une maniabilité inégalée.

Blaxxun 4.0
http://virtuel.cplus.fr/visiteurs/blaxxun40.htm (3.9 Mo)
Le plug-in de Blaxxun est le plus abouti et semble etre le seule à tenir la route avec la disparition de la version PC de CosmoPlayer. Il est notamment conseillé - même obligatoire - pour surfez dans le "2eme monde de CANAL+" puisqu'il est le seul à gérer le "Multi-user".

WorldView de Intervista
www.intervista.com
Un moteur VRML un peu désué qui a été longtemps la meilleure solution pour les accros de Internet Explorer.

Microsoft VRML Add-on
www.microsoft.com/vrml
Le plug-in de Microsoft reste un moteur sobre avec tout de même une image de qualité et une interface intuitive.

 

Sites traitant des plug-in VRML

The VRML Repository : un moteur de recherche sur le VRML
http://www.sdsc.edu/vrml
Le site de telechargement des outils et plug-in VRML.

VRML reviews
http://www.tcp.ca/gsb/VRML/vrml-reviews.html
Présentation des plug-in et éditeurs VRML.


3 - Le langage VRML 1.0

Le VRML est un langage de description de mondes virtuels. Les fichiers .WRL sont des fichiers ASCII (texte) comme le HTML, un simple éditeur de texte permet donc de réaliser un monde virtuel.

 

Objectif du langage

Le VRML 1.0 a été crée en respectant les objectifs suivants :

  - Indépendance de plate-forme système,
  - Extensibilité,
  - Capacité à fonctionner sur des connections à bande passante faible,

 

Base du langage

Le VRML est un langage Orienté Objet. Les objets utilisés sont appelés Nodes.

Les Nodes sont arrangés selon une structure hiérarchique ordonnée appelée Scene Graphs. Il faut bien noter que l'ordre de création des objets et de leur propriétés à un effet. Un objet fils peut être affecté par les propriétés de son père si celle-ci sont déclarées avant le fils lui-même.

Un Node a les caractéristiques suivantes :
  - un type : un node peut être un cube, une sphère, une couleur, une position, etc,
  - des propriétés qui le différencient d'un autre Node: une taille, couleur, rotation, etc,
  - un nom qui permet de définir un type d'objet générique,
  - des fils car un Node peut contenir 0 ou plusieurs autres Nodes qui hériteront de ses propriétés.

 

Syntaxe générale

Chaque fichier VRML possède une entête d'identification, la première ligne contiendra les caractères suivants :
      #VRML V1.0 ascii

 

Système de coordonnées

Les mondes VRML sont des espaces en 3 dimensions qui nécessitent des coordonnées en X (axe horizontal),Y (axe vertical) et Z (profondeur). Pour placer les objets dans leur espace virtuel, 3 méthodes dites de transformation sont proposées.

A titre d'indication, les distances son mesurées en mètre et les rotations en radians.

 

Types de Nodes :

Quatre formes simples sont fournies pour concevoir des objets VRML :

- Le cube qui contient 3 propriétés : largeur, hauteur, profondeur

      Cube { width 3  height 2.5  depth -3 }

- La sphère qui contient 1 propriété : rayon

      Sphere { radius 6.2 }

- Le cône qui contient 2 propriétés : rayon au sol, hauteur

      Cone { bottomRadius 2.5  height 3 }

- Le cylindre qui contient 2 propriétés : rayon, hauteur

      Cylinder { radius 1.5  height 6 }

 

Propriété Transform :

- La position (Translation) en X,Y et Z :

      Transform{Translation  5  -2  1.5 }

- La rotation en X,Y,Z avec l'angle à affecter :

      Transform { Rotation  0  1  0.8   1.57}

- La taille (Scale) en X,Y,Z :

      Transform { scaleFactor  1  1.2  0.75 }

Propriété Material :

Chaque shape possèdent des propriétés qui permettent de déterminer leur apparence. 6 propriétés de type Material sont proposées :

- La couleur Diffuse en RVB (Rouge, Vert, Bleu) correspond à la couleur générale de l’objet :

      Material { diffuseColor   1  0.8  1}

- La couleur Ambiente en RVB qui affecte la DiffuseColor pour les parties de l’objet qui ne sont pas éclairées :

      Material { ambientColor   1  0.8  1}

- La couleur Specular en RVB qui défini la couleur des rayons lumineux réfléchis sur la surface de l’objet :

      Material { specularColor  1  0.8  1}

- La couleur Emissive en RVB qui défini la couleur émise par l’objet s’il était luminescent :

      Material { emissiveColor  1  0.8  1}

- La propriété Shininess défini le taux de brillance de l’objet (de 0 à 1):

      Material { shininess  0.5 }

- La propriété Transparency défini la possibilité ou non de voir à travers l’objet (de 0 à 1):

      Material { transparency  0 }

 

Group Nodes :

- Separator permet de limiter la portée des transformations et des propriétés

      Material { diffuseColor 1  0  0 } #rouge
      Separator { Material {diffuseColor 0  1  0 } #vert
                  Sphere { }
                }
      Cube { }
Résultat : la Sphere sera en vert alors que le cube gardera la couleur rouge

 

Le Texte :

- L'objet AsciiText qui contient 4 propriétés : chaîne, espacement, justification, largeur

      AsciiText { string "La Page du Developpeur"  spacing 1
                   justification LEFT  width 0 }

 

Les Lumières :

- Lumière ponctuelle défini une source de lumière en un point donné. Elle comprend 4 propriétés : on(TRUE,FALSE), intensité (de 0 à 1), couleur (RVB) et localisation(X, Y, Z) :

      PointLight { on TRUE
                   intensity 1
                   color 1  0.9  1
                   location  0 0 -1 }

- Lumière spot produit une lumière de type projecteur (conique). Elle contient 7 propriétés : on, intensité, couleur, localisation, direction, baisse de puissance et netteté

      SpotLight { on TRUE
                  intensity 1
                  color 1  0.9  1
                  location  0 2 1
                  direction  0 0 –1
                  dropOffRate 0
                  cutOffAngle 0.59 }

- Lumière directionnelle produit une lumière en rayons parallèles (pas de localisation) qui contient 4 propriétés : on, intensité, couleur et direction :

      DirectionalLight { on TRUE
                         intensity 1
                         color 1  0.9  1
                         direction  0 0 -1 }

Les Caméras :

- Caméra Orthographique produit une vue normal sans déformation qui contient 4 propriétés : position, orientation, distance de focale et hauteur :

      OrthographicCamera { position 0  2  5
                           orientation 5  3  -0.5  1.2
                           focalDistance 10.8
                           height  2 }

- Caméra perspective produit une vue grand angle avec déformation des objets se trouvant en périphérie. Elle possèdent 4 propriétés : position, orientation, distance de focale et hauteur d’angle :

      PerspectiveCamera { position 0  2  5
                          orientation 5  3  -0.5  1.2
                          focalDistance 10.8
                          heightAngle  0.7 }

La Texture :

- L’objet Texture2 permet d'appliquer une image (GIF, JPEG ...) sur un objet VRML. Ce Node contient 1 propriété : nom de fichier

      Texture2 { filename "images/vrml.gif" }

L'Ancre HTTP :

- Ancre Web permet d’affecter un hyperlien internet à un objet VRML. Ce Node contient 4 propriétés : nom, cadre cible, libellé et objet affecté
      WWWAnchor { name "http://www.webdeveloper.com"
                  target "frame2"
                  description "La Page du Developpeur"
                  Cube { } }

Instance de Node :

- On souhaite parfois réutiliser des objets. Le Node DEF permet de définir un Objet en le nommant afin de pouvoir le réutiliser à différent endroits :
Déclaration :      DEF nomNode   cube { width 5 }
Affichage   :      USE nomNode

 

Démo par l'exemple :

Pour ceux qui voudrait tester un monde récapitulatif des fonctions précédemment citées voici un monde virtuel qu’il ne vous reste qu’a copier/coller dans un éditeur, à modifier comme bon vous semble et à sauvegarder dans un fichier .WRL avant de l’interpréter par votre navigateur :

 

Sites développeurs VRML

VRML 1.0 spécification
http://www.vrml.org/Specifications/VRML1.0
Pour tout savoir sur la naissance du VRML et la syntaxe du langage.

2 supers tutoriels de Didier Verna (à consulter impérativement)
http://www.inf.enst.fr/~verna/enseignement/vrml-fr.html
http://www.inf.enst.fr/~icc/tp-vrml97.html

Le site du VRML
http://www.vrmlsite.com
Un site complet sur le VRML1.0 et 2.0.

SGI Developer
http://cosmosoftware.com/developer
Pour les programmeurs ou ceux qui ont envie de le devenir, voici le site des développeurs VRML de la Silicon Graphics.


4 - Conception VRML visuelle

Pour ceux d'entre vous qui se sentent plus l'âme d'un infographiste que d'un développeur il existe le moyen de concevoir un monde VRML en utilisant soit des éditeurs VRML spécialisés, soit des plug-in VRML exporter qui vous permettent de convertir les images 3D de votre logiciel préféré en monde virtuel VRML.

Editeur VRML

HomeSpace Designer de Paragraph
http://cosmosoftware.com/products/designer/
Le plus pratique et le plus simple éditeur VRML pour Windows. Recommandé pour tout débutant. L'inconvénient de sa simplicité est qu'il est limité dans la complexité des objets qu'il crée.

Platinum VR Creator
http://www.platinum.com/products/appdev/vream/vrc_ps.htm

True space de Caligari
http://www.caligari.com/products/index.html

 

Plug-in VRML Exporter

Pour les professionnels de la 3D des plug-in VRML Exporter sont téléchargeables pour les logiciels favoris des infographistes :

3DSmax Exporter de Kinetix
http://www.ktx.com

 

Sites traitant des éditeurs VRML

The VRML Repository : un moteur de recherche sur le VRML
http://www.sdsc.edu/vrml
Le site de telechargement des outils et editeurs VRML.

VRML reviews
http://www.tcp.ca/gsb/VRML/vrml-reviews.html
Présentation des plug-in et éditeurs VRML.

Attention : Comme tout générateur de codes, les éditeurs VRML peuvent parfois choisir des solutions un peu "lourde" pour dessiner un objet complexe, vous vous retrouvez alors avec un fichier VRML de taille non-abordable pour la majeure partie des internautes. La solution demeure la vigilance, alors n'hésitez pas à rentrer dans le code du fichier .WRL afin de débusquer les énormités créer par votre éditeur VRML. Il ne vous restera alors plus qu'a simplifier des objets dont la description peut représentez plusieurs dizaines de kilo-octets ou pour les mordus de programmation de remplacer le code de l'éditeur ou d'utiliser des fonctions mathématiques en JavaScript comme les astuces présentées par le site tips de SGI (http://vrml.sgi.com/developer/tips/main.html).

 


5 - Exemples de mondes virtuels

Voici une liste de quelques sites qui offrent des balades virtuelles dans le monde du VRML.

Ci-dessous se trouve un monde virtuel représentant un Satellite Géostationnaire, si vous ne voyez pas ce monde VRML, c'est que vous n'avez pas de plug-in VRML installé, pensez alors a en télécharger un depuis la page des plug-in VRML avant de vous lancer dans le surf virtuel.

NetScape Cool Worlds
http://www.netscape.com/sv/eng/live3d/live3d_coolworlds.html
La page Live 3D de Netscape propose plusieurs dizaines de mondes virtuels au cas où vous manqueriez d'inspiration ... Totally Awesome.

Galerie de peinture
http://www.israel-discount-bank.co.il/VRML
Israel Discount Bank propose une visite guidée d'une galerie de peinture virtuelle avec des textures de toutes beautées et des commentaires sur les tableaux pour les amateurs d'arts contemporains.

Ocnus Virtuals Worlds
http://www.ocnus.com/models
Un site avec des exemples VRML trié par categorie

Vous avez dit Girl ?
http://www.vfx.com/vrml/girl.wrl

Un site perso !
http://www.altern.org/garstud
Eh oui une petite note perso car c’est l’adresse de mon site, où je vous présente comment organiser un site HTML en utilisant une barre de navigation 100% VRML, histoire de vous donner des idées ...