3D dans le navigateur Web, où en est-on ?
update 3 mars 2010: j’ai fait un petit tutoriel ici
Attention, cet article contient peut-être quelques erreurs d’historique ou d’interprétation, je ne suis pas un super-spécialiste de la 3D, seulement un fan.
Ca faisait 10 que j’attendais une techno alliant la simplicité de déclaration du vrml, la standardisation d’un plugin ouvert, utilisant les ressources de l’objet javascript DOM, permettant des applications Ajax. Oulala que de jargon.
Petit historique approximatif
Le Web3D consortium, une branche du W3C, avait posé au début des années 2000 les bases du successeur du vrml : X3D. C’est la version XMLisée du vrml. Mais un problème subsistait: si le langage existait, les navigateurs ne l’avaient pas encore apprit, et il était nécessaire pour X3D comme pour vrml d’installer un plugin. Les éditeurs de plugin X3D ou vrml ne développant pas gratuitement, et les solutions open source n’étant pas parfaites ni multi-support, X3D est resté un truc de passionnés ou de professionnels pendant quelques années sans vraiment décoller dans l’intérêt général des développeurs, qui attendaient probablement que tout le monde se mette d’accord, ou qu’un acteur majeur prenne le lead pour s’y mettre. Et la plupart des plugins n’acceptait qu’un ECMAscript interne complètement détaché de la page HTML dans laquelle l’objet s’affichait. Interactivité très limitée à une période où Ajax révolutionnait l’approche du développement Web.
Il y a eu un essai prometteur mais éphémère qui s’appelait Ajax3D (lien mort aujourd’hui…), basé sur les capacités du plugin de Vivaty à communiquer avec le DOM object, donc avec le serveur pour manipuler les objets 3D depuis une base de données. Puis Vivaty, probablement en besoin de financement, a lancé son service un peu dérivé de Second Life dans la même vague que celle qui avait vu naître feu Google Lively et son plugin a été délaissé.
C’était à désespérer. Je n’en mangeais plus, mes amis se moquait de moi, on me montrait du doigt quand je marchais dans la rue et j’entendais les quolibets “regarde, c’est le type qui croit encore à la 3D dans le navigateur pouvant communiquer avec un serveur distant” “holala le has-been, il est grave trop web 1.0 ce guguss, je parie qu’il dépose des noms de domaines avec ‘oo’ dedans”…
Je me suis caché en attendant et quand Google a lancé O3D j’ai voulu y croire. Le premier jour. Après j’ai commencé à lire les tutoriels et j’ai laissé tomber. Le deuxième jour. Encore un plugin, et surtout du code à décorner les boeufs. Rien de la magnificente simplicité d’apprentissage du X3D. Une grosse bibliothèque incompréhensible demandant un mois de formation et de solides connaissance en mathématique et en C pour dessiner un pauvre triangle.
Dernièrement j’ai même vu passer un truc bizarre dans une des bulletins électroniques à propos d’un xml3D, une annonce probablement issue d’un ventilateur car je n’ai trouvé aucune doc technique.
Et WebGL arriva…
WebGL. Ca vous fait penser à OpenGL ? Normal. C’est le chainon manquant entre la célèbre spécification couramment utilisée dans le développement de jeux vidéos et le navigateur.
Mais.
C’est encore un truc compliqué, en javascript certes, mais pas X3D compliant. Et puis il faut encore installer un plugin encore non-standard dans les navigateurs.
Flute alors.
Sauf que.
Et X3Dom arriva…
X3Dom est, en gros, un traducteur X3D-WebGL. C’est un gros fichier javascript qui interprète votre code X3D et appelle les fonctions webGL qui vont bien. C’est l’objet DOM qui reconnaît ses petits, même ceux 3D. Sans effort.
Certes c’est encore en même-pas-alpha, ça progresse au rythme de développeurs indépendants gratifiés de la seule reconnaissance de leurs fans, et il y manque des tas de fonctions des spécification X3D. Mais que c’est prometteur !
On va enfin pouvoir jouer au Lego dans son navigateur.
Le gros plus de tout ça, c’est que WebGL devrait être intégré nativement dans tous les navigateurs à partir d’HTML5 et x3dom aussi puisque ça sera un simple fichier JS à appeler en header, ce qui lèvera le frein au développement qu’était la compatibilité des plugins (par ailleurs bien souvent propriétaires).
Youpi !
Prochain billet, un petit tutoriel pour commencer à s’amuser avec x3dom. Même votre chat saura bientôt faire de la 3D.





je serais curieux de voir ce que ogre 3D prepare en ce sens… je doute que cette techno n’ai pas envisagé le portage vers navigateur, et c’est de tres loin la techno la plus aboutie et la plus satisfaisante en terme de moteur 3D temps reel open source..
toi qui aime chercher… va jeter un coup d’oeil
(ps c’est avec ca que nous avions fait freaks)
rapidement ?
non pas sur, mais consciencieusement, je veux le croire. ogre porte bien son nom et c’est une bestiole solide qui avance lentement mais surement