Depuis que je travaille comme consultant et développeur dans le monde de la 3D je suis confronté à des débats sur les technos. Cela à commencé avec SecondLife, Opensim puis Unity3d, WebGL, Flash etc …
Avec des arguments plus ou moins bien choisi, mais il y a toujours cette problématique du choix de technos. Je vais essayer de vous convaincre, dans ce billet, de tester WebGL.
WebGL logo

WebG quoi ?

WebGL est une implementation d’OpenGL en javascript qui permet d’afficher de la 3d dans les navigateurs sans plugins.
C’est en fait une API qui permet au Web de “parler” à votre carte graphique et d’afficher de la 3D.
Les navigateurs qui supportent cette techno sont:
  • Chrome (desktop & mobile)
  • Firefox (desktop & mobile)
  • Safari ( sauf sur iOS)
  • Opéra (sauf iOS)
  • Blackberry browser

A noter qu’internet explorer 11 devrait supporter WebGL, c’est du moins les rumeurs qui courent sur Twitter. Autrement dit, à part iOS qui fait le blocus, vous pouvez afficher du WebGL à peu près partout pour peu que vous ayez un  ordinateur potable, avec un navigateur mis à jour ou une tablette Android.

Si on en crois le site webglstats, à l’heure actuelle près de 70% des internautes peuvent afficher du WebGL.

Comment ça marche ?

WebGL s’affiche à l’intérieur de la nouvelle balise HTML5 appelée canvas, une fois cette balise créée il suffit de lui attribuer du le contexte qui va bien

var gl = canvas.getContext('experimental-webgl');

Et, hop vous avez un carré de WebGL, le reste c’est du javascript et des shaders.

Il y a également de nombreux frameworks pour faciliter le travail, mon préféré étant Three.js.

 

Si c’est si facile pourquoi c’est aussi peu utilisé ?

Aah, la fameuse question ! Premièrement c’est utilisé un peu partout sans forcement le savoir, WebGL est utilisé par Google Street View par exemple. dans de plus en plus d’application de prévisualisation 3D, github vient d’annoncer un “STL file viewing” supporté par du WebGL, sans oublier CouldParty, clone de SecondLife entièrement en WebGL et intégré à Facebook.

Ensuite, il faut le dire, les dernières années ont été des années de développement. WebGL n’était pas forcement stable, à fait face à des soucis de sécurité assez important et les performances n’étaient pas non plus au rendez vous.

Mais les choses changent vite, l’API est passé en version 1.0 il y a quelques semaines et, pour ce qui est des performances, Mozilla à sorti la semaine dernière un portage du moteur de jeu unreal Tournament dans le navigateur en WebGl, qui contredit vraiment les critiques sur la performance de la techno !

Quels sont les concurents ?

Unity3D

C’est à mon avis le concurrent le plus sérieux, Unity est un logiciel propriétaire dédié à la création de jeux vidéos. Les jeux crées sont exportablent vers consoles, mobiles, ou vers le web via un plugin.

L’outil est vraiment efficace et permet de créer facilement des scènes 3D de jeu. Si le web n’est pas votre cible principale ou si vous voulez des jeux extrêmement complexes, foncez c’est la techno qu’il vous faut!

Flash Stage 3D

Si je voulais troller un peu je dirais que Flash n’est pas vraiment une techno d’avenir et que ça devrait suffire pour vous convaincre !

Pour être un peu plus objectif, Stage 3d n’a pas l’air vraiment documenté, demande l’installation de Flash – même si c’est standard sur la plupart des plateformes – et ne tourne pas sur mobile. Vous pouvez toujours compiler votre code en appli native, mais on sort du champs d’application de WebGL, tout comme les applis natives générées par Unity.

Silverlight 3D

C’était une idée de Microsoft, même si la firme n’a pas apporté beaucop de soutient à Silverlight et encore moins à Silverlight 3D. Honnêtement, je ne vois pas d’avenir pour cette techno, en tout cas rien qui justifie une investissement conséquent.

 Qui m’aime me suive !

Pour moi tout est réuni pour que l’on assiste dans les prochains mois à une effervescence de projets WebGL. Cette techno, encore confidentielle est entrain d’émerger, et l’implémentation sur IE11 devrait aider encore plus son essor.

Je vois de plus en plus de projets qui sortent, Sketchfab est un bon exemple de projet WebgL qui marche. Alors pas forcement sur des jeux complexes, sur des mondes virtuels mais dans un premier temps pour tout ce qui est data-visualisation, démos produits, visite virtuelle, je crois vraiment que le WebGL à sa carte à jouer.

C’est d’ailleurs pour cette raison que je me replonge, tête la première, et avec plaisir dans cette techno. Vous venez ?