Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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_ETC2 kodiert, 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_ETC2 kodiert, 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

js
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_es3 und 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.

Siehe auch