Расширение WEBGL_compressed_texture_s3tc
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых наиболее широко используемых браузерах.
Расширение WEBGL_compressed_texture_s3tc является частью API WebGL и предоставляет четыре формата сжатия текстур S3TC.
Сжатые текстуры уменьшают объем памяти, необходимый для хранения текстуры на GPU, что позволяет использовать текстуры более высокого разрешения или большее количество текстур того же разрешения.
Доступ к расширениям WebGL осуществляется с помощью метода WebGLRenderingContext.getExtension(). Дополнительную информацию см. также в разделе Использование расширений в учебнике WebGL.
Константы
Форматы сжатых текстур представлены четырьмя константами и могут использоваться в двух функциях: compressedTexImage2D() и compressedTexSubImage2D().
ext.COMPRESSED_RGB_S3TC_DXT1_EXT-
Изображение, сжатое алгоритмом DXT1, в формате RGB.
ext.COMPRESSED_RGBA_S3TC_DXT1_EXT-
Изображение, сжатое алгоритмом DXT1, в формате RGB с альфа-каналом (вкл./выкл.).
ext.COMPRESSED_RGBA_S3TC_DXT3_EXT-
Изображение, сжатое алгоритмом DXT3, в формате RGBA. По сравнению с 32-битной текстурой RGBA, оно обеспечивает сжатие 4:1.
ext.COMPRESSED_RGBA_S3TC_DXT5_EXT-
Изображение, сжатое алгоритмом DXT5, в формате RGBA. Также обеспечивает сжатие 4:1, но отличается от сжатия DXT3 способом сжатия альфа-канала.
Примеры
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);
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox for Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
WEBGL_compressed_texture_s3tc |
2626–56 | 12 | 2215–58 | 1515–43 | 8 | Нет | Нет | Нет | Нет | Нет | Нет |
См. также
© 2005–2024 MDN contributors.
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_compressed_texture_s3tc