WEBGL_compressed_texture_s3tc-Erweiterung

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Die WEBGL_compressed_texture_s3tc-Erweiterung ist Teil der WebGL API und bietet vier S3TC-komprimierte Texturformate an.

Komprimierte Texturen reduzieren die Menge an Speicher, die benötigt wird, um eine Textur auf der GPU zu speichern, was die Verwendung von höher aufgelösten Texturen oder mehr Texturen derselben Auflösung ermöglicht.

WebGL-Erweiterungen sind über die Methode WebGLRenderingContext.getExtension() verfügbar. Weitere Informationen finden Sie auch unter Using Extensions im WebGL-Leitfaden.

Hinweis: Diese Erweiterung ist sowohl für WebGL1- als auch für WebGL2-Kontexte verfügbar.

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-Bildformat.

ext.COMPRESSED_RGBA_S3TC_DXT1_EXT

Ein DXT1-komprimiertes Bild im RGB-Bildformat mit einem Ein-/Aus-Alpha-Wert.

ext.COMPRESSED_RGBA_S3TC_DXT3_EXT

Ein DXT3-komprimiertes Bild im RGBA-Bildformat. Im Vergleich zu einer 32-Bit-RGBA-Textur bietet es eine 4:1-Komprimierung.

ext.COMPRESSED_RGBA_S3TC_DXT5_EXT

Ein DXT5-komprimiertes Bild im RGBA-Bildformat. Es bietet ebenfalls eine 4:1-Komprimierung, unterscheidet sich jedoch in der Art der Alpha-Komprimierung von der DXT3-Komprimierung.

Beispiele

js
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

Siehe auch