WEBGL_compressed_texture_etc Erweiterung
Die WEBGL_compressed_texture_etc
Erweiterung ist Teil der WebGL API und stellt 10 ETC/EAC komprimierte Texturformate bereit.
Komprimierte Texturen reduzieren den Speicherbedarf für die Speicherung einer Textur auf der GPU, was es ermöglicht, Texturen in höherer Auflösung oder mehr Texturen bei gleicher Auflösung zu verwenden.
WebGL-Erweiterungen sind über die Methode WebGLRenderingContext.getExtension()
verfügbar. Weitere Informationen finden Sie auch unter Verwendung von Erweiterungen im WebGL-Tutorial.
Konstanten
Die komprimierten Texturformate werden durch 10 Konstanten bereitgestellt und können in zwei Funktionen verwendet werden: compressedTexImage2D()
und compressedTexSubImage2D()
.
ext.COMPRESSED_R11_EAC
-
Ein-Kanal (rot) Komprimierung im unsignierten Format.
ext.COMPRESSED_SIGNED_R11_EAC
-
Ein-Kanal (rot) Komprimierung im signierten Format.
ext.COMPRESSED_RG11_EAC
-
Zwei-Kanal (rot und grün) Komprimierung im unsignierten Format.
ext.COMPRESSED_SIGNED_RG11_EAC
-
Zwei-Kanal (rot und grün) Komprimierung im signierten Format.
ext.COMPRESSED_RGB8_ETC2
-
Komprimiert RGB8-Daten ohne Alpha-Kanal.
ext.COMPRESSED_RGBA8_ETC2_EAC
-
Komprimiert RGBA8-Daten. Der RGB-Teil wird wie
RGB_ETC2
kodiert, aber der Alpha-Teil wird separat kodiert. ext.COMPRESSED_SRGB8_ETC2
-
Komprimiert sRGB8-Daten ohne Alpha-Kanal.
ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC
-
Komprimiert sRGBA8-Daten. Der sRGB-Teil wird wie
SRGB_ETC2
kodiert, aber der Alpha-Teil wird separat kodiert. ext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2
-
Ähnlich wie
RGB8_ETC
, jedoch mit der Fähigkeit, den Alpha-Kanal zu durchstoßen, was bedeutet, dass er komplett opak oder transparent gemacht werden kann. ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2
-
Ähnlich wie
SRGB8_ETC
, jedoch mit der Fähigkeit, den Alpha-Kanal zu durchstoßen, was bedeutet, dass er komplett opak oder transparent gemacht werden kann.
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
Specification |
---|
WebGL WEBGL_compressed_texture_etc Extension Specification |
Browser-Kompatibilität
BCD tables only load in the browser
Kompatibilitätsnotizen
- Diese Erweiterung wurde von Firefox 46 bis Firefox 51
WEBGL_compressed_texture_es3
genannt und war standardmäßig im WebGL 2 Kontext verfügbar – dies ist nicht mehr der Fall. Sie müssen sie sowohl im WebGL 1 als auch im WebGL 2 Kontext aktivieren, um sie verwenden zu können.