WEBGL_compressed_texture_etc-Erweiterung
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit März 2020 browserübergreifend verfügbar.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die Erweiterung WEBGL_compressed_texture_etc ist Teil der WebGL-API und stellt 10 komprimierte ETC/EAC-Texturformate bereit.
Komprimierte Texturen benötigen weniger Speicherplatz auf der GPU. Dadurch können Texturen mit höherer Auflösung oder mehr Texturen mit derselben Auflösung verwendet werden.
WebGL-Erweiterungen sind über die Methode WebGLRenderingContext.getExtension() verfügbar.
Weitere Informationen finden Sie unter WebGL-Erweiterungen verwenden.
Hinweis: Diese Erweiterung ist sowohl für WebGL1- als auch für WebGL2-Kontexte verfügbar.
Konstanten
Die komprimierten Texturformate werden durch 10 Konstanten bereitgestellt und können in zwei Funktionen verwendet werden: compressedTexImage2D() und compressedTexSubImage2D().
ext.COMPRESSED_R11_EAC-
Komprimierung eines vorzeichenlosen Formats mit einem Kanal (Rot).
ext.COMPRESSED_SIGNED_R11_EAC-
Komprimierung eines vorzeichenbehafteten Formats mit einem Kanal (Rot).
ext.COMPRESSED_RG11_EAC-
Komprimierung eines vorzeichenlosen Formats mit zwei Kanälen (Rot und Grün).
ext.COMPRESSED_SIGNED_RG11_EAC-
Komprimierung eines vorzeichenbehafteten Formats mit zwei Kanälen (Rot und Grün).
ext.COMPRESSED_RGB8_ETC2-
Komprimiert RGB8-Daten ohne Alphakanal.
ext.COMPRESSED_RGBA8_ETC2_EAC-
Komprimiert RGBA8-Daten. Der RGB-Teil wird wie bei
RGB_ETC2kodiert, der Alphateil jedoch separat. ext.COMPRESSED_SRGB8_ETC2-
Komprimiert sRGB8-Daten ohne Alphakanal.
ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC-
Komprimiert sRGBA8-Daten. Der sRGB-Teil wird wie bei
SRGB_ETC2kodiert, der Alphateil jedoch separat. ext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2-
Ähnlich wie
RGB8_ETC, ermöglicht aber einen Punchthrough-Alphakanal, durch den ein Pixel entweder vollständig deckend oder vollständig transparent ist. ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2-
Ähnlich wie
SRGB8_ETC, ermöglicht aber einen Punchthrough-Alphakanal, durch den ein Pixel entweder vollständig deckend oder vollständig transparent ist.
Beispiele
const ext = gl.getExtension("WEBGL_compressed_texture_etc");
const texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.compressedTexImage2D(
gl.TEXTURE_2D,
0,
ext.COMPRESSED_RGBA8_ETC2_EAC,
512,
512,
0,
textureData,
);
Spezifikationen
| Spezifikation |
|---|
| WebGL WEBGL_compressed_texture_etc Extension Specification> |
Browser-Kompatibilität
Hinweise zur Kompatibilität
- Von Firefox 46 bis Firefox 51 hieß diese Erweiterung
WEBGL_compressed_texture_es3und war im WebGL-2-Kontext standardmäßig verfügbar. Das ist nicht mehr der Fall. Sie müssen die Erweiterung sowohl in WebGL-1- als auch in WebGL-2-Kontexten aktivieren, um sie verwenden zu können.