WebGL, la 3D dans le navigateur

WebGL est un standard pour la programmation en 3D avec le navigateur comme plateforme. La spécification finale du standard a vu le jour en 2010 et est définie par le Khronos Group, un consortium qui est aussi en charge de Open GL et Open CL.

Il permet de réaliser des animations, des interfaces ou des jeux en 3D fonctionnant à la fois en ligne et hors connection.

WebGL est soutenue par Google, cela entre entièrement dans sa stratégie qui est de porter les applications sur le Web, et cela se rapproche des projets Native Client, Google Chrome OS de Google.
Le projet a également le soutien de NVidia, fabricant de chipsets et cartes graphiques, AMD, fabricant de microprocesseurs, Ericsson, fabricant de mobiles, Mozilla, Opera Software.

Comment cela marche?

WebGL est une interface entre JavaScript et Open GL ES 2.0, une librairie en code natif qui accède directement au hardware des cartes graphiques. Il existe une version de Open GL pour chaque modèle de carte graphique, qui est généralement installée par le système d'exploitation, quel qu'il soit.

Le rendu se fait dans Canvas, surface d'affichage graphique qui fait partie de HTML 5 et qui est implémenté par les navigateurs modernes. On peut utiliser WebGL sur d'autres plateformes, si elles utilisent WebKit notamment.
WebGL fonctionne donc sur tous navigateur supportant Canvas et avec un framework JavaScript (voir liste en ressources).

Démonstrations et applications

Une démonstration de Quake II tournant dans un navigateur supportant HTML 5 a été faite par Google. Elle utilise la version Java de Quake II, le Google Web Toolkit et WebGL.

La librairie O3D

Google qui suivait une approche différente avec 03D, a décidé de le rendre complémentaire et d'en faire une librairie JavaScript plutôt qu'un autre plugin. O3D fonctionne donc en complément de WebGL.
Les choses ont donc évolué depuis que les auteurs de 03D ont exprimé leurs vues sur WebGL.

Compatibilité

WebGL fonctionne avec OpenGL sur la plupart des ordinateurs.

Avec ANGLE (Almost Native Graphics Layer Engine), moteur presque natif de couche graphique, une interface produite par Google, il fonctionne également avec Direct3D qui fait partie de DirectX.
Cela pour les configurations Windows qui ne disposeraient pas d'un module OpenGL.
ANGLE devrait aussi permettre aux développeurs d'applications mobiles de réaliser la phase de développement sous Windows.

Microsoft ne veut pas supporter WebGL sous le motif qu'un accès direct à une librairie système créerait une faille de sécurité, ce que fait pourtant Silverlight 5 (A travers XNA qu'il incorpore partiellement), son système propriétaire concurrent, et ce que fait tout code JavaScript compilé.

Alternatives et outils

Il y a d'autres plateformes pour la 3D dans le navigateur.

Frameworks JavaScript

Outils

Documents et sites

Voir aussi

Technologies de la programmation Ajax - API - Cassandra - CLI - Code HTTP - Cookie - Cover Flow - Dalvik - DFA - .NET - EDI (ou IDE) - Flash - GUI - JavaFX - JNA - JSON - MySQL - NaCl - NoSQL - Protocol Buffers - Qt - REST - Servlet - Web 2.0 - WebGL - Webkit - WinRT - Wysiwyg