vrml97




Introduction au VRML

Pour commencer, munissez-vous du traitement de texte le plus simple possible : aucune mise en forme ne sera conservée de toute façon, excepté les espaces et les tabulations. Wordpad convient parfaitement.

Ouvrez donc une page blanche et tapotez sur votre clavier :
#VRML V2.0 utf8
C'est l'en-tête de toute scène VRML, qui permet au fichier d'être reconnu par le navigateur.

ATTENTION : toutes les majuscules et minuscules doivent être respectées. Si votre monde ne fonctionne pas, cherchez de ce côté, vous verrez...

Voilà, votre première scène VRML est terminée. Enregistrez-la au format texte seulement, en lui donnant l'extension .wrl (exemple : machouettescène.wrl).
Ouvrez ensuite le fichier dans l'explorateur et admirez votre oeuvre. Cette scène ne contient rien, ne fait rien, ne sert à rien, mais elle existe, et c'est déjà un bon début.

Revenez dans l'éditeur, et ajoutez ces nouvelles lignes :
Shape {
    geometry Sphere {
        radius 1.5
    }
}
La mise en forme n'est absolument pas nécessaire, mais facilite beaucoup la relecture du programme.

Enregistrez et rafraichissez le navigateur (actualiser, refresh... selon le modèle). Vous avez compris, vous venez d'ajouter une superbe sphère au centre de votre scène.


On ne peut pourtant pas laisser cette sphère nue comme ça. Il va falloir lui ajouter une apparence, ici une belle couleur rouge.
Editez à nouveau votre scène, et complétez-la pour obtenir le résultat suivant :
#VRML V2.0 utf8
Shape {
    geometry Sphere {
        radius 1.5
    }
    appearance Appearance {
        material Material {
            diffuseColor 1 0 0
        }
    }
}
Et voilà, votre sphère est devenue rouge !
Les trois chiffres après diffuseColor représentent les composantes rouge-vert-bleu de la couleur : 0 1 0 serait vert, 0.6 0.3 0.5 violet foncé.

De la même manière, on crée des cubes, des cônes ou des cylindres, auxquels on peut donner de nombreux attributs de couleur, de reflexivité, de brillance ou de transparence.


Tous les objets étant créés au centre du monde, vous devez les déplacer et les pivoter comme il vous convient.
On utilise pour cela un bloc (encore appelé noeud ou node) Transform : les objets à déplacer sont réunis comme enfants (children), c'est à dire placés entre les crochets de children[ ]. Par exemple, en ajoutant une sphère à la scène précédente :
#VRML V2.0 utf8

#les lignes précédées d'un "#" sont des commentaires
#on laisse la sphère précédente Shape { geometry Sphere { radius 1.5 } appearance Appearance { material Material { diffuseColor 1 0 0 } } } #et on en ajoute une autre, décalée par rapport au centre du monde Transform { translation 4 3 -2 rotation 1 1 0 3.14 children [ #on réunit ici les objets à déplacer Shape { geometry Sphere { radius 1.5 } appearance Appearance { material Material { diffuseColor 0 1 0 } } } #fin du groupe d'enfants ] }
Les chiffres de la translation représentent un vecteur, ici 4*x+3*y-2*z, ou encore 4 mètres vers la droite, 3 mètres vers le haut et 2 mètres en profondeur.
Pour la rotation, les trois premiers chiffres sont le vecteur directeur de l'axe (x+y ici), et le dernier l'angle en radians. Ici bien sûr cette rotation ne sert à rien, elle fait juste tourner la sphère sur elle-même...
On obtient donc la scène suivante : 2 sphères


Maintenant que vous avez (enfin j'espère...) une petite idée du fonctionnement du VRML, je vous encourage à aller lire les leçons très complètes et très claires de Sebastien Marnier, puis faire un tour au groupe VRML francophone pour avoir les références complètes du VRML décortiquées, expliquées et illustrées avec plein de couleurs.
Enfin, pour un autre point de vue, lisez le compte rendu du siggraph96 (diapos en anglais).


vrml