Vos recrutements informatiques

700 000 développeurs, chefs de projets, ingénieurs, informaticiens...

Contactez notre équipe spécialiste en recrutement

Le WebGL a t-il un avenir ?
Faisons le point sur le standard Web permettant d'intégrer un rendu 3D dans une page Web

Le , par LittleWhite, Responsable 2D/3D/Jeux
WebGL est la spécification d'une bibliothèque graphique 3D au même niveau que OpenGL ou Direct3D. Celle-ci repose sur OpenGL ES 2.0 (la spécification pour l'embarqué de OpenGL) et permet de créer des pages Internet intégrant du contenu 3D. Ainsi, à l'aide de HTML 5 et du Javascript vous pouvez afficher un rendu accéléré par la carte graphique et bénéficiant donc de la puissance du GPU.


Actuellement, les principaux navigateurs présents sur le marché disposent du support de WebGL :
  • Firefox (6 juillet 2010)
  • Google Chrome(3 février 2011)
  • Safari (20 juillet 2011)
  • Opera (14 juin 2012)
  • Internet Explorer (17 octobre 2013).
  • les versions mobiles de Firefox, Opera et du navigateur de Blackberry supportent également WebGL.


Pendant un long moment, Internet Explorer a été un frein au développement de cette technologie mais depuis fin 2013, la onzième version du navigateur la supporte. On notera aussi le possible second frein lorsque des failles de sécurité critiques ont été découvertes dans le standard même, entraînant notamment la vive réaction de la communauté et de Microsoft.

Il ne faut pas non plus oublier que l'accélération graphique dans WebGL est disponible uniquement que si la carte graphique implémente correctement la spécification. Cela a aussi provoqué une certaine lenteur dans l'évolution du support d'OpenGL, notamment sous Linux où il était peu présent. Maintenant, nous pouvons dire que ces soucis sont globalement résolus.

Malgré cela, la technologie n'est pas désuète. En effet, elle a une place de plus en plus importante et les différents acteurs se dirigent vers cette solution (Unity Technologies, Epic Games...). En effet, Flash est de plus en plus abandonné (et son intégration de la 3D fut laborieuse et n'était d'ailleurs pas portable), WebGL est un standard disposant de nombreux avantages. Le plus clair et le plus visible pour l'utilisateur est le fonctionnement immédiat des pages intégrant WebGL. En effet, contrairement à une solution comme celle proposée dans Unity et nécessitant un module à installer sur la machine, WebGL est disponible dans le navigateur de l'utilisateur sans rien avoir à faire en plus. Comme indiqué ci-dessus, le support est présent sur une majorité de machines et même de mobiles.

WebGL a toutefois quelques limitations :
  • absence de tampon de sélection ;
  • absence de textures 3D ;
  • absence de geometry shader.


Mais tout cela sera résolu dans la nouvelle spécification WebGL 2.0 dont l'étude a commencé en 2012.

De nombreuses bibliothèques 2D et 3D ont vu le jour pour les développeurs. Elles permettent de faciliter le développement des applications tout en bénéficiant des apports de WebGL. On peut maintenant dire que la technologie est répandue et facile à prendre en main. De plus, il est possible de convertir un programme C et C++ à l'aide de compilateurs tel que Emscripten. La 3D n'est pas perdue grâce à la bibliothèque WebGL.

Chez les concurrents, on ne peut pas vraiment citer d'alternatives répandues. Il existe Adobe Flash 11, mais celui-ci est de plus en plus abandonné et n'a jamais permis d'avoir une application 3D autre que sous Windows. Il existe aussi le Native Client de Google proposant lui aussi une accélération graphique (reposant aussi sur OpenGL ES 2.0), mais son fonctionnement est complètement différent de WebGL. En effet, le Native Client est une sandbox où le code natif est exécuté puis afficher dans le navigateur.

Finalement, il n'y a toujours pas d'application phare pour cette technologie. De plus, pour les jeux vidéo et les applications intensives le JavaScript et la surcouche apportée par le navigateur peut être aussi un facteur décisif et ainsi empêcher l'adoption de ce standard.

Votre opinion

Croyez-vous que le WebGL a un avenir ? Comment voyez-vous cet avenir ?
Qu'aimeriez-vous voir dans le futur du Web et des site intégrant du contenu 3D ?

Voir aussi

Retrouvez une série complète de tutoriels sur WebGL sur Developpez.com


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de jean_kevin_musclor jean_kevin_musclor - Inactif http://www.developpez.com
le 05/09/2014 à 17:11
Oo impressionné comment t'as trop bien réecrit mon post La prochaine fois que je veux lancer un débat je te l'envoie directement par mp.

Pour répondre au quizz:

je ne sais pas si WebGL a un avenir. comme je disais, la 3d ça coute un bras, je ne sais pas combien de temps mozilla google microsoft vont continuer à investir là dedans

histoire de pas prendre de risques je vais rester sur du low-poly des années 50, au pire ça sera rattrapable en rendu software
Avatar de Sodium Sodium - Membre éclairé http://www.developpez.com
le 05/09/2014 à 19:23
Je n'ai jamais compris l'intérêt d'afficher une application 3d dans un browser et encore moins comme l'on peut souhaiter vouloir coder ce genre d'applications en javascript.
Si le but est de ne pas avoir à installer le jeu sur sa machine, je trouve le principe d'un plugin comme Flash beaucoup plus intelligent.
À vouloir transformer notre navigateur en seul point d'entrée du contenu informatique, on y perd toujours plus en performance et en ergonomie.
Avatar de Dabou Master Dabou Master - Membre émérite http://www.developpez.com
le 05/09/2014 à 20:09
Citation Envoyé par jean_kevin_musclor  Voir le message
histoire de pas prendre de risques je vais rester sur du low-poly des années 50, au pire ça sera rattrapable en rendu software

Ahem, c'est-à-dire un cube ? Non parce que le high-poly des années 50 étant nettement moins chargé que les low-poly qu'on peut trouver actuellement, je me dis que tu es parti un peu trop loin dans le passé là .
Avatar de jean_kevin_musclor jean_kevin_musclor - Inactif http://www.developpez.com
le 05/09/2014 à 20:43
Citation Envoyé par Sodium  Voir le message
Je n'ai jamais compris l'intérêt d'afficher une application 3d dans un browser et encore moins comme l'on peut souhaiter vouloir coder ce genre d'applications en javascript.
Si le but est de ne pas avoir à installer le jeu sur sa machine, je trouve le principe d'un plugin comme Flash beaucoup plus intelligent.
À vouloir transformer notre navigateur en seul point d'entrée du contenu informatique, on y perd toujours plus en performance et en ergonomie.

Flash plugin non c'est pas conçu pour des jeux vidéo, juste du multimédia grossier (vidéo, son, cartoon).

Pour les jeux y'a le plugin unity.

Javascript ça n'a jamais servi à faire des jeux vidéo (on peut s'amuser à en bricoler certes mais ça ne donnera rien de bon, ça sera lent, bouffe-cpu, memory-leaké, comme flash mais en pire).

Webgl c'est juste pour faire des petites applis avec de la 3d rudimentaire, c'est utilisé par exemple pour les cartes de google maps ou greenpeace.

Mais c'est ça que je trouve intéressant dans le webgl justement, faire de la 3d pour des choses plus nourrissantes que les jeux vidéo. L'embauche dans les jeux en france c'est mort, par contre dans le webdesign y'a de l'emploi.
Avatar de FTC56 FTC56 - Membre régulier http://www.developpez.com
le 05/09/2014 à 20:47
Personnellement, je n'ai jamais (de ce que je m'en souviens) ou presque croisé d'application utilisant cette technologie et comme dit plus haut, je ne vois pas trop l'intérêt d'intégrer des applications 3D dans le navigateur ...
Pour moi, un navigateur est un outil qui permet de naviguer sur internet via des forums, des sites webs, mais n'est nullement une plateforme de jeu, et encore moins pour des jeux en 3D dont je trouve le rendu bien moins bon que dans un programme fonctionnant directement sur le PC de l'utilisateur.

D'un autre côté, je suis contre les plugins qui peuvent créer des problèmes de sécurité d'autant que flash, par exemple, n'est plus mis à jours ...
Avatar de jean_kevin_musclor jean_kevin_musclor - Inactif http://www.developpez.com
le 05/09/2014 à 20:49
l'usage majoritaire que font les internautes du html5 c'est youtube. les bricolages de jeux foireux genre farmville c'est marginal

html5 ou flash plugin ça n'est pas conçu pour les jeux vidéo, c'est même pas pensable, les fabricants de navigateurs ou adobe ils ont pas les budgets de chez ubisoft (pour rappel les budgets des jeux pros ça dépasse ceux des blockbusters hollywoodiens, c'est pas des trucs que l'internet peut s'offrir). Ca sert juste à égayer le web avec un peu de multimédia, un peu d'animation, de son, de vidéo, (et éventuellement oui des jeux pourris avec du gameplay d'atari 2600) sinon internet serait aussi chiant qu'une feuille d'impôts. ils appellent ça une "valeur ajoutée" qui permet de retenir plus longtemps l'attention d'un internaute afin d'augmenter le trafic.

si vous voulez absolument faire des jeux vidéo javascript il n'y a que de la 2d simple qui donnera des perf correctes

sinon la 3d sur internet c'est surtout utilisé pour:
- la cartographie (google maps, greenpeace)
- les vr et autres visites virtuelles pour office du tourisme (musées, monuments...)
- le marketing (maquettes de produits ou d'appartements, bannières de pub interactives)
- juste pour faire joli (menus 3d et autres gadgets)

ça n'a jamais décollé à l'époque des plugins car c'était un bazar ingérable (fallait maîtriser virtools, applet jogl, svg, shockwahe, unity, flash, etc.. chaque boite utilisait un différent). Avec le webgl on a réglé ce problème là, au détriment de la performance par manque de moyens, reste à savoir si ça va s'améliorer ou finir laissé en plan pour coupe de budget.
Avatar de imikado imikado - Rédacteur http://www.developpez.com
le 05/09/2014 à 21:22
Avec des bibliothèque comme Bablylon.js, webgl a un brillant avenir
https://github.com/BabylonJS/Babylon.js/wiki/Tutorials
Avatar de jean_kevin_musclor jean_kevin_musclor - Inactif http://www.developpez.com
le 05/09/2014 à 21:46
Beuark que ça rame leurs démos... webgl c'est pas fait pour faire des grosses librairies compliquées comme ça... c'est pas ce genre de démos kill-cpu qui vont faire une bonne publicité au webgl.

Le problème du webgl c'est pas de pondre du code, javascript est peut-être bien le langage le plus facile du monde, et webgl la librairie bas niveau la plus obvious, ça n'a strictement rien à voir avec l'opengl. C'est suffisemment facile pour que tu puisses tout programmer toi-même sans marcher avec des béquilles.

Le problème du webgl c'est d'optimiser ta pipeline et de faire un programme le plus simple possible, parce que c'est très lent, c'est pour ça qu'il vaut mieux tout coder soi-même.
Avatar de p3ga5e p3ga5e - Membre confirmé http://www.developpez.com
le 05/09/2014 à 22:05
Pourquoi vouloir remettre en cause l’avenir d’une norme d’API graphique tel que le GL !

Tout le monde sait, de nos jours, que programmer en respectant cette norme augmente considérablement la facilité de portage de son code,
WebGL apporte une nouvel plateforme a la longue liste des plateformes compatible GL : smartphones, tablettes, consoles, ordinateur personnel (mac et PC ).

Pour ceux qui se posent la question de l’intérêt de GL dans un navigateur, il faut tout d’abord arrêter de penser que GL se limite à la 3D projeté !
Ou dans la norme GL il est indiqué qu’un sommet doit obligatoirement contenir une position 3D dans un espace cartésien orthonormé ? et pourquoi la projection devrait-elle être systématiquement de type perspective ?
Pourtant rien n’empêche d’écrire un shader pour le pipeline géométrique effectuant une projection cartographique de type Mercator sur des coordonnées sphérique (position GPS).
Sachant que les donnée vectorielle sont nettement moins lourdes que les données raster et qu’en prime elle offre un meilleur rendu ( pas de pixellisation). La rastérisation de carte vectorielle en temps réel dans un navigateur est-elle vraiment inutile ? Même pour Google ?

En "bypassant" le pipeline géométrique, on peut utiliser le pixel shader pour paralléliser le traitement de signal en générale !
Pour ma part je vais utiliser WebGL pour traiter et afficher des signaux RADAR maritime par-dessus une cartographie vectorielle rendu grâce à WebGL !
Sur ShaderToy , les génies traitent, au minimum, de deux autres types de signaux :
  • Les images de synthèse par des raytraceur /raymarcheur temps réel comme celui-ci
  • Des sons/musiques avec des effets (cf ce sound shader de bargot)


Disposer d’univers et de musique de synthèse de manière procédurale sans aucune ressource a téléchargé (a part le code des shaders) est-elle inutile ?
Même si le débit et la bande passante, pour internet, augmentent continuellement …

La direction, de la boite pour laquelle je bosse, m’a finalement autorisé à utiliser WebGL pour remplacer notre vielle techno Flash. Ayant misé sur cette techno je vous invite tous à l’utiliser, sans modération, pour qu’elle ne disparaisse pas ! il n’y a pas que le jeu video comme domaine d’application, par exemples calculer moi la fin du monde grâce aux vertex shader, mais surtout sortez-vous les doigts du cul,gardé l'esprit ouvert et utiliser cette magnifique techno !
Avatar de jean_kevin_musclor jean_kevin_musclor - Inactif http://www.developpez.com
le 05/09/2014 à 22:16
t'es sûr que ça va pas donner un truc super lent comme sur tes démos qui rament abominablement ? le webgl c'est juste bon pour la 3d des années 90 ça supporte pas vos trucs de jeunes high-tech
parce que si on continue à pourrir le web de démos kill-cpu, les gens font finir par désactiver le javascript
je rappelle qu'il y'a beaucoup de processeurs qui ne supportent pas les surchauffes, et que l'autonomie des batteries est courte, et que saturer cpu et ram ça fait planter les navigateurs et freezer les machines et c'est particulièrement désagréable... le multimédia sur le web sert à rendre un site attractif, pas à faire fuir le public.

si tu veux faire du shader gpu performant tu ferais bien mieux de rester sur flash, et si t'es allergique à leur compileur de shader en assembleur, essaye unity plugin...

exceptionnellement je vais dire du bien de unity pour son export plugin, si vous voulez de la 3d moderne performante dans les navigateurs, pour l'instant y'a rien d'autre.
Offres d'emploi IT
Ingénieur sécurité des systèmes d'information drone (2 postes à pourvoir) H/F
Safran - Ile de France - Éragny (95610)
Analyste SI-métier (H/F)
Société Générale - Ile de France - Val-de-Marne
Développeur - software craftsman (H/F)
Société Générale - Ile de France - Hauts-de-Seine

Voir plus d'offres Voir la carte des offres IT
Responsable bénévole de la rubrique 2D - 3D - Jeux : LittleWhite -