![]() |
![]() |
![]() |
Membre de ClickFR, Reseau francophone Paie-Par-Click |
![]() |
![]() |
|
Présentation du X3D |
Le Web3D Consortium a présenté au Siggraph 2001 le X3D, le langage qui va succéder au VRML. L'occasion pour nous de vous de faire un point sur le VRML et pour vous résumer les objectifs du X3D.
Grâce au travail de Mark Pesce et Tony Parisi, le VRML 1.0 voit le jour en 1995. Le HTML est utilisé pour décrire le contenu des pages d'information sur le WEB, le VRML sera utilisé pour décrire les scènes en 3 dimensions sur Internet.
Le VRML 1.0 connaît un grand succès, nombre de navigateurs fleurissent sur
le Web et nombre d'internautes s'y intéressent.
Certains navigateurs proposent même des fonctionnalités supplémentaires,
comme la navigation de monde en monde, l'animation etc.
Il est temps de réfléchir à une nouvelle spécification du VRML. Un concours
est lancé et c'est la spécification " The Moving VRML Worlds "
(Mondes animés) qui est choisie. Elle est issue principalement des sociétés
SGI, Sony et Mitra. VRML97 ou VRML 2.0 est né.
Il intègre maintenant des fonctions évoluées d'animations et d'interactions
avec l'utilisateur, l'intégration de codes Javacripts, l'accès aux données de
la scène depuis l'extèrieur (principe EAI) et les prototypes.
Pour l'époque, Le VRML 2.0 était réellement puissant et incontournable.
Aujourd'hui, même si les ressources VRML sont nombreuses, fleurissent des
plug-in propriétaires d'affichage de 3D et depuis un an, beaucoup d'acteurs de
la 3D se tournent vers ces solutions.
Pourquoi ?
VRML 2.0 est un langage de description de mondes virtuels complet et très
puissant.
Il est par contre difficile à maîtriser. Il est difficile, par exemple
d'écrire un outil de modélisation graphique (comme Spazz3D) tirant partie de
toutes les possibilités du langage
Il est aussi difficile d'exporter ou d'importer une scène en VRML dans un
éditeur lorsqu'elle comporte des animations ou des interactions.
En fait, le VRML 2.0 est un langage qui se pratique principalement sous un
éditeur de texte, surtout pour programmer les interactions.
Cette technologie n'est donc pas accessible à tous.
Malgré les prototypes (qui permettent d'ajouter de nouveaux types de noeuds
au langage), les spécifications du langage sont assez rigides. Il est
impossible d'ajouter de nouvelles fonctionnalités à une scène VRML sans
transgresser ou devoir contourner les spécifications.
Les scènes VRML sont donc la plupart du temps dépourvues des dernières
possibilités technologiques tels que le son ou la vidéo en flux, le "
bumpmapping ", l ' " environnement mapping ", la réflexion, les
ombres, les NURBS (courbes) etc.).
Les éditeurs les plus connus de navigateur VRML ont bien ajouté certaines de
ces fonctions, mais elles restent spécifiques à leur navigateur et sont donc
très peu utilisées.
Il est donc apparu sur le marché des langages et des viewers permettant d'aller
beaucoup plus loin dans le réalisme d'un objet tels que Vet de ViewPoint qui
donnent effectivement des résultats excellents en terme de réalisme.
Le X3D est le successeur du VRML 2.0. C'est le fruit du travail du groupe de
travail du Web3D consortium plus récemment du " Browser Working Group
".
X3D veut dite eXtensible 3D. L'objectif de cette spécification est de donner un
langage évolutif, qui permet d'ajouter facilement de nouvelles fonctions aux
scènes 3D.
Les components (composants) sont des ensembles de nœuds ou des ensembles de
fonctionnalités qui permettent de décrire une scène 3D. Au début d'une
scène, l'utilisateur doit donner la liste des components qu'il compte utiliser.
Par exemple :
#X3D component :geometry :1
Chaque component peut posséder des niveaux d'implémentations. Ici, l'utilisateur veut utiliser les composants de type geometry (indexfacedFace, box etc.) de niveau 1.
#X3D component :streaming :1
Ici, l'utilisateur compte utilise les fonctions de streaming de niveau 1.
Les profiles sont des ensembles de components. Les profiles permettent aux utilisateurs de ne pas forcément avoir à liste l'ensemble des composants pour un typer d'utilisation. Par exemple,
#X3D profile :base
Permet d'utiliser toutes les fonctions du VRML 2.0
L'intérêt de cette gestion de composants et de profils est que tous les
logiciels permettant d'afficher ou de générer du X3D ne sont pas obligés
d'implémenter toutes les fonctions possibles de X3D.
De même, une société exerçant un métier particulier et ayant besoin de 3D
(par exemple les géologue avec GeoVRML) pourra implémenter ses propres
fonctions.
De même, les fonctions d'affichage évoluées (Nurbs, réflexion, bumpmapping
… )pourront être facilement ajoutées au langage et facilement intégrée
dans les navigateurs existant.
Le X3D garde une entière comptabilité avec le VRML 2.0. Les fichiers VRML
2.0 seront entièrement lisible sur un navigateur X3D.
Toutes les fonctions du VRML 2.0 sont donc gardées dans X3D. Ces fonctions sont
cependant séparées en deux profiles différents :
Les fonctions du VRML 2.0 ont été dissociées car le Web3D consortium a remarqué qu'il était difficile pour un éditeur d'intégrer toutes ces fonctions. La spécification du VRML 2.0 était monolithique, un éditeur désirant intégrer cette technologie devait l'implémenter dans sa totalité.
Avec le X3D, une entreprise désirant développer un logiciel n'affichant que des scènes simples dépourvues d'interactivité peut tout de même utiliser le X3D, en n'implémentant que le profile X3D-1.
Cela promet une utilisation plus large de X3D.
Donc tous les acteurs du Web3D pourront ajouter leurs propres fonctions au
X3D. Mais comment ne pas éviter l'explosion de fonctions plus ou moins
semblables, où chaque éditeur aurait ses propres usages et où il serait
impossible de s'appuyer sur le X3D pour décrire une scène réellement standard
et affichage sur tous les navigateurs du marché ?
Chaque nouveau niveau de composants ou chaque nouvelle fonction sera soumis au
groupe de travail du X3D, qui garantira une évolution cohérente de la norme.
Les composants validés par le groupe X3D porteront le préfixe X3D_ et les
autres se contenteront d'un EXT_.
Un fichier X3D pourra être écrit " à l'ancienne ", c'est à dire
comme un fichier VRML 2.0 ou en XML. Cette option va, elle aussi, permettre une
intégration du langage plus facile dans les outils actuels de gestion de l'information et
de navigation.
Un DTD est en passe d'être validé, le
voici.
En fait, non ... pas vraiment ! Le X3d est juste une refonte du VRML 2.0 en
plusieurs sous-ensembles dans l'objectif :
- De faciliter son intégration dans les logiciels du marché, ceux ci pourront
implémenter une partie des spécifications à un niveau donné, sans avoir à
implanter l'ensemble du langage.
- De permettre à tous les acteurs du Web3D d'y ajouter de nouvelles
fonctionnalités afin de suivre l'évolution du marché et la puissance des
machines, sans remettre en cause le langage lui-même.
Ce nouveau langage se fait attendre depuis maintenant plus d'un an, les inconditionnels de la 3D temps réel " réaliste " seront certainement déçus car le X3D ne comporte pas de réelles évolutions. Cependant, s'il est adopté par la majorité de la communauté 3D, il est suffisamment ouvert (via le XML) et tourné vers l'avenir (grâce à sa grande capacité d'adaptation) pour devenir LE langage de description des mondes virtuels dans les années qui viennent.
Jean-Michel Flamant
Copyright VRML Worlds 2001
Traductions en français des articles sur le X3D et présentation de Xj3D, le browser X3D en Java et en Open Source sur le site de <Web3D by Ap0>
Le site X3D du Web3D Consortium
La partie X3D du VRML Repository
VRML Worlds vous tiendra au courant des évolutions du langage et de outils permettant de l'utiliser.
Accueil de VRML Worlds | CHAT 3D | Autres technologies Web3D |
Des textures | Apprendre le VRML | Autres mondes multi-user |
Les objets du chat | Outils pour le VRML | Autres sites 3D |