(retour à Tutoriel JAVA-VRML)
Cette page reste evidemment sommaire et reste sujette à des modifications en fonctions de vos besoins et des commentaires que vous nous ferez.
VRML 2.0 est un langage pour construire et faire evoluer des scènes 3D. La spécification finale de ce langage date d'Aout 1996. Il s'agit donc d'un langage récent. Ce langage utilise des noeuds hierarchiques (NODE) décrivants à la fois une forme et un comportement pour cette forme. Un système d'évenements (clic de la souris, cascade entre évenements) permet de rendre effective les comportements définis pour chaque forme.
Des exemples simples et de complexité croissante pour mieux comprendre :
Pour une présentation plus exhaustive, cliquez ici .
En VRML 2.0 il existe un noeud qui revet une importance particulière : c'est le noeud Script. Il permet de définir un point de référence à un programme écrit dans un langage différent de VRML 2.0. Des instructions de routage permettent de diriger le flot d'information du fichier VRML 2.0 vers le programme et du programme vers le fichier VRML 2.0. L'intéret est évident : pouvoir bénéficier de la puissance de calcul et de la flexibilité d'un langage de programmation tout en disposant de la facilité mise à disposition par VRML 2.0 pour décrire des scènes 3D.
Pour une définition formelle du noeud Script, voir ici.
Comme le notent Lea & al. (1996) :
For various reasons, the VRML community decided that VRML 2.0 would not require any particular language. This decision was based, in part,on a wish to avoid "language wars" and also on the belief that no one language was capable of answering all the requirements of the VRML community. The drawback of this approach is that there is no guarantee that all browsers support the language you want. This inevitably leads to situations where content written for one browser wont work in another popular browser. Although this may be an inconvenience at first, it was felt by many that, eventually, browsers would converge to support one or more popular languages. Most likely, these languages would be dictated by the content creators. The VRML 2.0 specification provides annexes that explain how to support two popular languages Java and Javascript.
En pratique, les différents visualiseurs VRML 2.0 supportent les recommandations de la spécification et implémentent correctement le support de Java et de Javascript.
Pour plus d'informations : un petit article bien fait ou le manuel VRML 2.0 du TECFA.
Des exemples simples et de complexité croissante pour mieux comprendre :
A ne pas confondre avec l'utilisation du noeud script (: comme une interface interne au visualiseur VRML avec un langage de programmation), l'utilisation d'une interface externe a pour objectif de founir au fichier VRML l'accès à des ressources externes.
Ainsi, pour Chris Marrin (voir ici) :
For communication between a VRML world and its external environment an interface between the two is needed. This interface is called an External Authoring Interface and it defines the set of functions on the VRML browser that the external environment can perform to affect a VRML world.
Il n'existe pas de spécification de l'interface externe dans les recommandations pour VRML 2.0. Toutefois, une tentative interessante de Silicon Graphics est à remarquer (ici). L'auteur met par ailleurs a disposition un article fort interessant pour illuster les differences avec le scripting (ici). En fait, lorsqu'on écrit un programme en Java et que l'on veut faire communiquer celui-ci avec une scène VRML par l'interface externe, tout se passe comme pour écrire une applet. C'est naturel dans la mesure ou nous somme effectivement en train de faire communiquer deux programmes qui s'exécutent pour ainsi dire indépendemment l'un de l'autre.
Des exemples simples et de complexité croissante pour mieux comprendre :
VRML 2.0 et Java permettent d'écrire des mondes dynamiques et réactifs. La guerre fait toutefois rage entre les grands éditeurs de logiciels et les exemples ne fonctionnent généralement que pour le programme de visualisation VRML 2.0 pour lequel ils sont écrits. Vous ne vous ettonerez donc pas trop si vous avez des difficultés a les faire fonctionner.
Au cours des semaines et des mois à venir, des exemples seront accessibles à partir d'ici. Pour l'instant toutefois, il existe peu de programmes interessants et fonctionnels utilisant le scripting en VRML, il faudra donc attendre un peu.
Exemples mettant en oeuvre l'interface interne :
Exemples mettant en oeuvre l'interface externe :
Nous l'avons dit, Java et VRML sont tous deux de très jeunes enfants. Il va donc falloir les laisser grandir un peu par eux même avant de savoir plus à quoi ils pourront bien être utiles. Les possibilités offertes sont toutefois prometteuses.
Les grands constructeurs (Sony, Silicon Graphics, Netscape, Microsoft...) commencent à proposer des solutions, tant pour visualiser des fichiers VRML et Java que pour écrire des programmes dans ces deux langages. La concurrence entre ces éditeurs produira sans doute des conflits et des incompatibilité. C'est donc nous tous utilisateurs qui devons militer pour qu'un produit utilisant des spécifications puissantes et compatibles soit développé et soutenu par une communauté vivante.
Par conséquent, nous vous conseillons vivement de rester régulièrement à l'écoute, sur le Web pour connaitre les dernières tendances et autres informations utiles. En particulier, une visite aux futures générations de JAVA/VRML s'impose (cliquer ici).
Le livre de référence pour apprendre le VRML 2.0. Introduction au noeud Script, essentiellement pour Javascript. Incomplet pour se former aux interfaces internes et a fortiori externes.
Un livre très complet dans le domaine de la programmation avec l'interface interne. Ce livre et par ailleurs interessant pour se former à VRML 2.0 seul : il contient une présentation brève mais efficace des principaux concepts.