WEBGL_compressed_texture_etc расширение
Ограниченная доступность
Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.
Расширение WEBGL_compressed_texture_etc является частью WebGL API и предоставляет 10 сжатых форматов текстур ETC/EAC.
Сжатые текстуры уменьшают объем памяти, необходимый для хранения текстуры на графическом процессоре, что позволяет использовать текстуры более высокого разрешения или большее количество текстур того же разрешения.
Доступ к WebGL-расширениям осуществляется с помощью метода WebGLRenderingContext.getExtension(). Дополнительную информацию можно найти также в разделе Использование расширений в учебнике по WebGL.
Постоянные
Сжатые форматы текстур представлены 10 константами и могут использоваться в двух функциях: compressedTexImage2D() и compressedTexSubImage2D().
ext.COMPRESSED_R11_EAC-
Сжатие одноканального (красного) беззнакового формата.
ext.COMPRESSED_SIGNED_R11_EAC-
Сжатие одноканального (красного) знакового формата.
ext.COMPRESSED_RG11_EAC-
Сжатие двухканального (красного и зеленого) беззнакового формата.
ext.COMPRESSED_SIGNED_RG11_EAC-
Сжатие двухканального (красного и зеленого) знакового формата.
ext.COMPRESSED_RGB8_ETC2-
Сжатие данных RGB8 без альфа-канала.
ext.COMPRESSED_RGBA8_ETC2_EAC-
Сжатие данных RGBA8. Часть RGB кодируется так же, как
RGB_ETC2, но альфа-часть кодируется отдельно. ext.COMPRESSED_SRGB8_ETC2-
Сжатие данных sRGB8 без альфа-канала.
ext.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC-
Сжатие данных sRGBA8. Часть sRGB кодируется так же, как
SRGB_ETC2, но альфа-часть кодируется отдельно. ext.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2-
Аналогично
RGB8_ETC, но с возможностью пробивания альфа-канала, что означает, что он может быть полностью непрозрачным или прозрачным. ext.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2-
Аналогично
SRGB8_ETC, но с возможностью пробивания альфа-канала, что означает, что он может быть полностью непрозрачным или прозрачным.
Примеры
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,
);
Спецификации
Совместимость с браузерами
| Рабочие столы | Мобильные устройства | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Chrome | Edge | Firefox | Opera | Safari | Chrome Android | Firefox для Android | Opera Android | Safari на iOS | Samsung Internet | WebView Android | |
WEBGL_compressed_texture_etc |
63 | 79 | Нет | 50 | 13.1 | 63 | 51 | 46 | 13.4 | 8.0 | 63 |
Примечания к совместимости
- Это расширение именовалось
WEBGL_compressed_texture_es3в Firefox 46–51 и ранее было доступно в контексте WebGL 2 по умолчанию — сейчас это не так. Чтобы использовать его, нужно включить его как в контексте WebGL 1, так и в контексте WebGL 2.
См. также
© 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_etc