--- title: WebGL slug: Web/API/WebGL_API tags: - WebGL - WebGL2 translation_of: Web/API/WebGL_API ---
WebGL (Web Graphics Library) ist eine Javascript-API zum Rendern interaktiver 3D und 2D Grafiken mittels eines kompatiblen Web-Browsers ohne Einsatz zusätzlicher Plugins. Mit WebGL steht eine API zur Verfügung, die an OpenGL ES 2.0 angelehnt ist und deren Inhalte mittels eines {{HTMLElement("canvas")}} Elements dargestellt werden.
WebGL steht ab Firefox 4+, Google Chrome 9+, Opera 12+, Safari 5.1+ und Internet Explorer 11+ zur Verfügung. Allerdings muss auch die Hardware des Zielgerätes dieses Feature unterstützen.
WebGL2 steht ab Firefox 51+, Google Chrome 56+ und Opera 42+ standardmäßig zur Verfügung. WebGL2 wird derzeit nicht von Internet Explorer oder Edge unterstützt.
Das {{HTMLElement("canvas")}} Element kann auch von Canvas 2D genutzt werden, um 2D Grafiken rendern zu können.
Die folgenden acht Artikel bauen aufeinander auf.
Spezifikation | Status | Hinweis |
---|---|---|
{{SpecName('WebGL')}} | {{Spec2('WebGL')}} | Grundlegende Definition. Basierend auf OpenGL ES 2.0 |
{{SpecName('WebGL2')}} | {{Spec2('WebGL2')}} | Erweiterung von WebGL1. Basierend auf OpenGL ES 3.0. |
{{SpecName('OpenGL ES 2.0')}} | {{Spec2('OpenGL ES 2.0')}} | |
{{SpecName('OpenGL ES 3.0')}} | {{Spec2('OpenGL ES 3.0')}} |
Feature | Edge | Firefox (Gecko) | Chrome | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("2.0")}} | 9 | 11 | 12[1] | 5.1[1] |
Feature | Edge | Firefox Mobile (Gecko) | Chrome for Android | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | {{CompatVersionUnknown}} | 4 | 25[1] | {{CompatNo}} | 12[1] | 8.1 |
[1] Die Implementierung dieses Features ist experimentell.
Neben dem Browser muss auch die GPU selbst dieses Feature unterstützen. So ist zum Beispiel S3 Texture Compression (S3TC) derzeit nur auf Desktop-Rechnern und Tegra-basierenden Tablets verfügbar. Die meisten Browser stellen den {{domxref("HTMLCanvasElement.getContext", "WebGL-Context")}} durch den webgl
Contextnamen zur Verfügung - ältere Browser benötigen hingegen manchmal stattdessen den Contextnamen experimental-webgl
.
Das kommende WebGL 2 ist vollständig abwärtskompatibel und wird über den Contextnamen experimental-webgl2
aufgerufen. Ab Firefox 42.0 ist der Aufruf auch über den Contextnamen webgl2
möglich - WebGL2 ist bis einschließlich Firefox 50 ein experimentelles Feature und kann zu Testzwecken über Flag-Settings des Konfigurationseditors aktiviert werden. WebGL2 ist ab Firefox 51+, Chrome 56+ und Opera 42+ standardmäßig aktiviert - Internet Explorer und Edge bieten derzeit noch keinen Support für WebGL2.
Ab Gecko 10.0 {{geckoRelease("10.0")}} werden zwei Möglichkeiten geboten, die WebGL-Fähigkeit des Browsers zu Testzwecken zu beeinflussen:
webgl.min_capability_mode
true
einen minimalen Kompatibiätsmodus zur Verfügung stellt. Ist dieser Modus aktiviert, wird WebGL ausschließlich mit dem geringsten Features betrieben, die von der WebGL-Spezifikation definiert wurden. Damit lässt sich sicherstellen, dass dein WebGL-Code auf jedem Gerät unabhängig besonderer Fähigkeiten lauffähig ist. Der Standarardwert ist false
.webgl.disable_extensions
true
alle WebGL Extensions deaktiviert. Der Standarardwert ist false
.webgl.enable-prototype-webgl2
(ab Firefox 38)webgl.enable-webgl2
(ab Firefox 50)true
den bisher experimentellen WebGL2-Context im Browser aktiviert. Der Standarardwert ist false
- ab Firefox 51 ist der Standardwert true
.