Web Graphics Library. : librairie graphique pour le web.
Fournir une bibliothèque de fonctions graphiques 2D et 3D pour le Web déléguant des calculs à la carte graphique .
WebGL propose des services de gestion de :
| 1.0 (OpenGL ES 2.0) | 2.0 (OpenGL ES 3.0) | |
|---|---|---|
| Caméra | Oui | Oui |
| Rotation 3D d'objets | Oui | Oui |
| Remplissage de facettes | Oui | Oui |
| Textures | Oui | Oui |
| Lumière | Oui | Oui |
| Textures 3D | Non | Oui |
| Objets Sampler | Non | Oui |
| Objets de tampon Uniform | Non | Oui |
| Objets Sync | Non | Oui |
| Objets Query | Non | Oui |
| Objets Transform Feedback | Non | Oui |
| objets Vertex Array | Non | Oui |
| Instanciation | Non | Oui |
| Cibles de rendu multiples | Non | Oui |
| Profondeur de fragment | Non | Oui |
WebGL est basé sur OpenGL ES
, qui est un sous-ensemble de OpenGL.Comme OpenGL, il permet de faire de rendus à l'aide d'une pipeline de shaders plus limités, ne pouvant inclure que des :
pBuffers
pipeline model.
Mécanisme d'extension
Un contexte de rendu WebGL doit être obtenu à partir d'un canvas.
| 1.0 | 2.0 | |
|---|---|---|
| Date | 2009 | 2016 |
| OpenGL ES | 2.0 | 3.0 |
| Langage | GLSL ES 1.00.17 (GLSL 1.2) | GLSL ES 3.00.6 (GLSL 3.30) |
<canvas></canvas>
<script id="vs" type="x-shader/vertex">
attribute vec3 position;
void main() {
gl_Position = vec4( position, 1.0 );
}
</script>
<script id="fs" type="x-shader/fragment">
uniform vec2 resolution;
void main( void ) {
gl_FragColor = vec4( 1.0, 0.0, 1.0, 0.6 );
}
</script>
const vertexShader = document.getElementById("vs").textContent
const fragmentShader = document.getElementById("fs").textContent
const canvas = document.querySelector("canvas")
const gl = canvas.getContext("webgl")
const program = gl.createProgram()
const vs = createShader(vertexShader, gl.VERTEX_SHADER)
const fs = createShader("#ifdef GL_ES\nprecision highp float;\n#endif\n\n" + fragmentShader, gl.FRAGMENT_SHADER)
gl.attachShader(program, vs)
gl.attachShader(program, fs)
gl.linkProgram(program)
const resolutionLocation = gl.getUniformLocation(program, "resolution")
En supposant que l'appareil exécutant le programme dispose d'une carte graphique adaptée, l'API WebGL est disponible dans les navigateurs suivants :
| 1.0 | 2.0 | |
|---|---|---|
| Chrome | 9+ | 56+ |
| Chrome Android | 88+ | 88+ |
| Android browser | 81+ | 81+ |
| Safari | 5.1+ | TP |
| iOS Safari | 8+ | flag |
| Firefox | 4+ | 51+ |
| Firefox Android | 86+ | 86+ |
| Edge | 12+ | 79+ |
| IE | 11+ | Non |
| Samsung Internet | 4+ | 7.2+ |
| Baidu Browser | 7.12+ | Non |