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_astc-Erweiterung

Baseline
Weitgehend verfügbar

Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Januar 2020 browserübergreifend verfügbar.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die Erweiterung WEBGL_compressed_texture_astc ist Teil der WebGL-API und stellt WebGL komprimierte Texturformate der Adaptive Scalable Texture Compression (ASTC) zur Verfügung.

Weitere Informationen finden Sie im Artikel ASTC-Texturkomprimierung für Spiel-Assets verwenden von NVIDIA.

WebGL-Erweiterungen sind über die Methode WebGLRenderingContext.getExtension() verfügbar. Weitere Informationen finden Sie unter WebGL-Erweiterungen verwenden.

Hinweis: ASTC-Komprimierung ist üblicherweise auf Mali-ARM-GPUs, Intel-GPUs und NVIDIA-Tegra-Chips verfügbar.

Diese Erweiterung ist sowohl in WebGL1- als auch in WebGL2-Kontexten verfügbar.

Instanzmethoden

Diese Erweiterung stellt eine neue Methode bereit.

ext.getSupportedProfiles()

Gibt ein Array von Strings mit den Namen der ASTC-Profile zurück, die von der Implementierung unterstützt werden.

Konstanten

Die komprimierten Texturformate werden durch 28 Konstanten bereitgestellt und können in zwei Funktionen verwendet werden: compressedTexImage2D() und compressedTexSubImage2D().

Konstanten Blöcke Bits pro Pixel ArrayBuffer byteLength Bytes bei einer Höhe und Breite von jeweils 512
ext.COMPRESSED_RGBA_ASTC_4x4_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR
4x4 8.00 floor((width + 3) / 4) * floor((height + 3) / 4) * 16 262144
ext.COMPRESSED_RGBA_ASTC_5x4_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR
5x4 6.40 floor((width + 4) / 5) * floor((height + 3) / 4) * 16 210944
ext.COMPRESSED_RGBA_ASTC_5x5_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR
5x5 5.12 floor((width + 4) / 5) * floor((height + 4) / 5) * 16 169744
ext.COMPRESSED_RGBA_ASTC_6x5_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR
6x5 4.27 floor((width + 5) / 6) * floor((height + 4) / 5) * 16 141728
ext.COMPRESSED_RGBA_ASTC_6x6_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR
6x6 3.56 floor((width + 5) / 6) * floor((height + 5) / 6) * 16 118336
ext.COMPRESSED_RGBA_ASTC_8x5_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR
8x5 3.20 floor((width + 7) / 8) * floor((height + 4) / 5) * 16 105472
ext.COMPRESSED_RGBA_ASTC_8x6_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR
8x6 2.67 floor((width + 7) / 8) * floor((height + 5) / 6) * 16 88064
ext.COMPRESSED_RGBA_ASTC_8x8_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR
8x8 2.00 floor((width + 7) / 8) * floor((height + 7) / 8) * 16 65536
ext.COMPRESSED_RGBA_ASTC_10x5_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR
10x5 2.56 floor((width + 9) / 10) * floor((height + 4) / 5) * 16 85696
ext.COMPRESSED_RGBA_ASTC_10x6_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR
10x6 2.13 floor((width + 9) / 10) * floor((height + 5) / 6) * 16 71552
ext.COMPRESSED_RGBA_ASTC_10x8_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR
10x8 1.60 floor((width + 9) / 10) * floor((height + 7) / 8) * 16 53248
ext.COMPRESSED_RGBA_ASTC_10x10_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR
10x10 1.28 floor((width + 9) / 10) * floor((height + 9) / 10) * 16 43264
ext.COMPRESSED_RGBA_ASTC_12x10_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR
12x10 1.07 floor((width + 11) / 12) * floor((height + 9) / 10) * 16 35776
ext.COMPRESSED_RGBA_ASTC_12x12_KHR
ext.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR
12x12 0.89 floor((width + 11) / 12) * floor((height + 11) / 12) * 16 29584

Beispiele

js
const ext = gl.getExtension("WEBGL_compressed_texture_astc");

const texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);

gl.compressedTexImage2D(
  gl.TEXTURE_2D,
  0,
  ext.COMPRESSED_RGBA_ASTC_12x12_KHR,
  512,
  512,
  0,
  textureData,
);

Spezifikationen

Spezifikation
WebGL WEBGL_compressed_texture_astc Extension Specification

Browser-Kompatibilität

Siehe auch