WEBGL_compressed_texture_s3tc-Erweiterung
Die WEBGL_compressed_texture_s3tc
-Erweiterung ist Teil der WebGL API und bietet vier S3TC-komprimierte Texturformate.
Komprimierte Texturen reduzieren den Speicherbedarf für eine Textur auf der GPU und ermöglichen so höhere Auflösungen oder mehr Texturen mit gleicher Auflösung.
WebGL-Erweiterungen sind über die Methode WebGLRenderingContext.getExtension()
verfügbar. Für weitere Informationen siehe auch Verwendung von Erweiterungen im WebGL-Leitfaden.
Konstanten
Die komprimierten Texturformate werden durch vier Konstanten bereitgestellt und können in zwei Funktionen verwendet werden: compressedTexImage2D()
und compressedTexSubImage2D()
.
ext.COMPRESSED_RGB_S3TC_DXT1_EXT
-
Ein DXT1-komprimiertes Bild im RGB-Format.
ext.COMPRESSED_RGBA_S3TC_DXT1_EXT
-
Ein DXT1-komprimiertes Bild im RGB-Format mit einem einfachen An/Aus-Alpha-Wert.
ext.COMPRESSED_RGBA_S3TC_DXT3_EXT
-
Ein DXT3-komprimiertes Bild im RGBA-Format. Im Vergleich zu einer 32-Bit-RGBA-Textur bietet es eine 4:1-Kompression.
ext.COMPRESSED_RGBA_S3TC_DXT5_EXT
-
Ein DXT5-komprimiertes Bild im RGBA-Format. Es bietet ebenfalls eine 4:1-Kompression, unterscheidet sich jedoch von der DXT3-Kompression in der Art der Alphas-Kompression.
Beispiele
const ext =
gl.getExtension("WEBGL_compressed_texture_s3tc") ||
gl.getExtension("MOZ_WEBGL_compressed_texture_s3tc") ||
gl.getExtension("WEBKIT_WEBGL_compressed_texture_s3tc");
const texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.compressedTexImage2D(
gl.TEXTURE_2D,
0,
ext.COMPRESSED_RGBA_S3TC_DXT5_EXT,
512,
512,
0,
textureData,
);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);
Spezifikationen
Specification |
---|
WebGL WEBGL_compressed_texture_s3tc Khronos Ratified Extension Specification |
Browser-Kompatibilität
BCD tables only load in the browser