WEBGL_compressed_texture_s3tc-Erweiterung
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more browser support for this feature? Tell us why.
Hinweis: Diese Funktion ist in Web Workers verfügbar.
Die Erweiterung WEBGL_compressed_texture_s3tc ist Teil der WebGL-API und stellt vier S3TC-Formate für komprimierte Texturen bereit.
Komprimierte Texturen verringern den Speicherbedarf einer Textur 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 in WebGL1- als auch in WebGL2-Kontexten verfügbar.
Konstanten
Die Formate für komprimierte Texturen werden durch vier Konstanten bereitgestellt und können mit 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 binären Alphawert.
ext.COMPRESSED_RGBA_S3TC_DXT3_EXT-
Ein DXT3-komprimiertes Bild im RGBA-Format. Gegenüber einer 32-Bit-RGBA-Textur bietet es eine Komprimierung im Verhältnis 4:1.
ext.COMPRESSED_RGBA_S3TC_DXT5_EXT-
Ein DXT5-komprimiertes Bild im RGBA-Format. Es bietet ebenfalls eine Komprimierung im Verhältnis 4:1, unterscheidet sich von der DXT3-Komprimierung jedoch darin, wie der Alphakanal komprimiert wird.
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
| Spezifikation |
|---|
| WebGL WEBGL_compressed_texture_s3tc Khronos Ratified Extension Specification> |