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


Voir aussi
Retrouvez une série complète de tutoriels sur WebGL sur Developpez.com
Vous avez lu gratuitement 0 articles depuis plus d'un an.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.
Soutenez le club developpez.com en souscrivant un abonnement pour que nous puissions continuer à vous proposer des publications.