WebGL (Bibliothèque de Graphismes Web) est une API JavaScript pour l'affichage de graphismes 2D et 3D dans n'importe quel navigateur web compatible sans utilisation de modules complémentaires. WebGl réalise cela en introduisant une API qui se conforme de façon très proche à OpenGL ES 2.0 et qui peut être utilisée dans les éléments canvas d'HTML5.

Le support pour WebGL est présent dans Firefox 4+, Google Chrome 9+, Opera 12+, Safari 5.1+ and Internet Explorer 11+ ; toutefois, l'appareil de l'utilisateur doit aussi avoir le matériel qui supporte ces fonctionnalités.

L'élément <canvas> est aussi utilisé par Canvas 2D pour faire des graphismes 2D sur les pages web.

Référence

Interfaces standard

Extensions

Evènements

Constantes et types

WebGL 2

WebGL 2 est une mise à jour majeure de WebGL, qui est fournie à travers l'interface WebGL2RenderingContext. Elle est basée sur OpenGL ES 3.0, et ses nouvelles fonctionnalités comprennent :

Voir aussi le post de blog "WebGL 2 lands in Firefox" et webglsamples.org/WebGL2Samples pour quelques démos.

Guides et tutoriels

Ci-dessous, vous pourrez trouver divers guides pour vous aider à apprendre les concepts WebGL, et des tutoriels qui proposent des leçons et des exemples pas-à-pas.

Guides

Données en WebGL
Un guide pour les variables, les tampons et autres types de données utilisés lors de l'écriture de code WebGL.
Meilleures pratiques WebGL
Des indications et des suggestions pour vous aider à améliore la qualité, les performances et la fiabilité de votre contenu WebGL.
Utilisation des extensions
Un guide pour l'utilisation des extensions WebGL.

Tutoriels

Tutoriel WebGL
Un guide pour les débutants sur les concepts essentiels de WebGL. Un bon endroit pour démarrer si vous n'avez pas d'expérience antérieure de WebGL.

Exemples

Un exemple de base d'animation WebGL 2D
Cet exemple montre l'animation simple d'une forme monochrome. Les sujets abordés sont l'adaptation aux différences de ratio d'aspect, une fonction pour construire des programmes de shader à partir d'ensembles de plusieurs shaders, et les bases du dessin dans WebGL.

Tutoriels avancés

Projection de vue de modèle WebGL
Une explication détaillée des trois matrices de base qui sont typiquement utilisées pour représenter une vue d'un objet 3D : les matrices de modèle, de vue et de projection.
Mathématiques matricielles pour le web
Un guide utile sur le fonctionnement des matrices de transformation 3D, qui peut être utilisé sur le web - à la fois pour les calculs WebGL et dans les transformations CSS3.

Ressources

  • Raw WebGL: An introduction to WebGL Une conférence de Nick Desaulniers qui présente les bases de WebGL. C'est un bon endroit pour commencer si vous n'avez jamais fait de programmation graphique de bas niveau.
  • Khronos WebGL site Le site principal pour WebGL chez le groupe Khronos.
  • Learning WebGL Un site proposant des tutoriels sur la façon d'utiliser WebGL.
  • WebGL Fundamentals Un tutoriel de base sur les fondamentaux de WebGL.
  • WebGL playground Un outil en ligne pour créer et partager des projets WebGL. Bon pour le prototypage rapide et l'expérimentation.
  • WebGL Academy Un éditeur HTML / JavaScript proposant des tutoriels pour apprendre les bases de la programmation webgl.
  • WebGL Stats Un site proposant des statistiques sur les possibilités WebGL des navigateurs sur différentes plates-formes.

Bibliothèques

  • glMatrix Bibliothèque matricielle et vectorielle JavaScript pour les applications WebGL hautes performances
  • Sylvester Une bibliothèque open source pour manipuler des vecteurs et des matrices. Non optimisée pour WebGL mais extrêmement robuste.

Spécifications

Spécification Statut Commentaire
WebGL 1.0 Recommendation Définition. Basée sur OpenGL ES 2.0
WebGL 2.0 Brouillon de l'éditeur Construite au-dessus de WebGL 1. Basée sur OpenGL ES 3.0.
OpenGL ES 2.0 Standard  
OpenGL ES 3.0 Standard  

Compatibilité des navigateurs

Nous convertissons les données de compatibilité dans un format JSON. Ce tableau de compatibilité utilise encore l'ancien format car nous n'avons pas encore converti les données qu'il contient. Vous pouvez nous aider en contribuant !

Fonctionnalité Chrome Edge Firefox (Gecko) Internet Explorer Opera Safari
Support de base 9 (Oui) 4.0 (2.0) 11 12 5.1
WebGL 2 56 Pas de support 51 (51) Pas de support 43 Pas de support
Fonctionnalité Chrome pour Android Edge Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Support de base 25 (Oui) 4 Pas de support 12 8.1
WebGL 2 ? ? ? ? ? ?

Notes de compatibilité

En plus du navigateur, la GPU elle-même doit également prendre en charge la fonctionnalité. Ainsi, par exemple, S3 Texture Compression (S3TC) n'est disponible que sur les tablettes à base de Tegra. La plupart des navigateurs rendent le contexte WebGL disponible via le nom de contexte webgl, mais les plus anciens ont aussi besoin d'experimental-webgl. De plus, le prochain WebGL 2 sera entièrement rétrocompatible et comprendra le nom de contexte webgl2.

Notes Gecko

Débogage et test WebGL

À partir de Gecko 10.0 (Firefox 10.0 / Thunderbird 10.0 / SeaMonkey 2.7), deux préférences sont disponibles pour vous permettre de contrôler les fonctionnalités de WebGL à des fins de test :

webgl.min_capability_mode
Propriété booléenne qui, lorsqu'elle est true, active un mode de possibilités minimales. Dans ce mode, WebGL est configuré pour prendre en charge uniquement le jeu de fonctionnalités minimal et les fonctionnalités requises par la spécification WebGL. Cela vous permet de vous assurer que votre code WebGL fonctionnera sur n'importe quel appareil ou navigateur, indépendamment de leurs possibilités. Elle est false par défaut.
webgl.disable_extensions
Propriété booléenne qui, lorsqu'elle est true, désactive toutes les extensions WebGL. Elle est false par défaut.

Voir aussi

Étiquettes et contributeurs liés au document

Contributeurs à cette page : NemoNobobyPersonne, Chbok, teoli, fscholz, Bat, TimN
Dernière mise à jour par : NemoNobobyPersonne,