Vrml, X3D, WebGL, Kézako ?!

A l’heure où l’HTML5 est sur le point de débarquer en force sur le web, que le navigateur internet est plus que jamais au centre de notre attention et devient un élément central de notre ordinateur, il est de bon ton de se demander quelle est la limite à l’interactivité de nos bien aimés Firefox, Chrome, Safari, IE, Opera, et consorts. Cette petite note a pour simple objectif de donner quelques pistes de réflexion sur la pertinence de l’intégration de la 3D dans une page web. Alors que Google compte proposer un système d’exploitation entièrement basé sur le cloud et sur son navigateur maison Chrome, quels moyens ont-ils à leur disposition pour afficher une scène en 3D, et permettre à l’utilisateur d’interagir avec la dite scène ?

Revenons quelques années en arrière.
Au milieu des années 90, la nécessité de créer un formalisme textuel pour décrire une scène 3D et ses animations s’est faite sentir, c’est ainsi qu’est née le VRML (Virtual Reality Markup Language). Ce langage permet de décrire, et même animer dans sa version 2.0 (nommé aussi VRML97), une scène composée d’objets 3D.

Alors voilà, nous avions un langage codifié par une nome iso, il ne restait plus qu’à avoir des logiciels de visualisation. Comme à l’accoutumé, une multitude de logiciels firent leur apparition, chacun apportant ses petites nuances et ses petites fonctionnalités dans le langage. S’ensuit l’émergence d’Internet Explorer 6 et des ActiveX, ou de Firefox et ses plugins: la 3D pouvait enfin s’intégrer à nos sites webs. Mais tout développeur web aura une poussée d’urticaire à la vue d’un activex, et à sa complexité d’intégration dans un environnement professionnel (problèmes de sécurité, de versioning, de compatibilités entre les navigateurs, etc…)

Dans un soucis d’ouverture vers les nouvelles technologies, VRML a tenté d’évoluer vers un formalisme plus orienté « WEB 2.0 », et X3D est né, normalisé en 2005. Ce langage est clairement une reformulation de la syntaxe VRML, permettant de décrire la scène 3D sous forme XML, Binaire, ou encore VRML. Mais voilà, les soucis sont les mêmes, comment visualiser la scène dans son navigateur?  Activex, plugins, encore et toujours… Le consortium Web3D finissant par se trouver dans une impasse, des acteurs comme Microsoft finissent par développer leurs propres solutions (typiquement, XAML intègre la description de scènes en 3D). Ainsi au jour d’aujourd’hui, bien trop de standards existent, (Shockwave, Java3D, etc…), et aucun n’a réussi à convaincre.

Et pourtant…

… enfin HTML 5 intègre un standard prometteur : WebGL. Pour la première fois, un développeur sera capable d’intégrer de la 3D en se basant sur des spécifications pure HTML, en faisant confiance à l’implémentation des différents navigateurs qui se veut de plus en plus fidèle aux specs, concurrence oblige… Plus de plugin, la seule présence du navigateur implémentant les dernières spécifications HTML5 suffira à faire l’interface entre les pilotes OpenGL, et l’utilisateur, juste à travers des bibliothèques javascript.
Pour moi cela ouvre vraiment de nouvelles perspectives sur le Web. Pourquoi pas des jeux en 3D plus aboutis, entièrement en cloud, basés sur le navigateur ? Pourquoi pas des sites internet avec une navigation repensée ? Une vraie 3D dans google map, ou un magasin Amazon dans lequel on pourrait se promener ? Et si le web 3.0 était un web en 3D ?

A l’heure actuelle, pour pouvoir tester les quelques démonstrations WebGL qui existent, Chrome 9, IE9, ou Firefox 4 sont nécessaires. Si vous avez l’un de ces 3 navigateurs, je vous invite à aller sur ce site (google inside, encore…)
http://bodybrowser.googlelabs.com

Je ne m’aventurerai pas à vous expliquer comment créer sa première page WebGL. De nombreux sites font ça très bien, un bon point d’entrée étant ce blog référence :
http://learningwebgl.com/blog/

Pour ma part j’espère sincèrement qu’un standard tel qu’HTML5, cumulé à une saine concurrence entre les navigateurs, permettront le développement et une exploitation cohérente d’une technologie comme WebGL.

LB.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *