Spec-Zone.ru › Web APIs

WEBGL_compressed_texture_etc расширение

Ограниченная доступность

Эта функция не относится к Baseline, так как она не работает в некоторых из наиболее широко используемых браузеров.

  • Подробнее
  • Показать полную совместимость
  • Отправить отзыв

Расширение WEBGL_compressed_texture_etc является частью WebGL API и предоставляет 10 сжатых форматов текстур ETC/EAC.

Сжатые текстуры уменьшают объем памяти, необходимый для хранения текстуры на графическом процессоре, что позволяет использовать текстуры более высокого разрешения или большее количество текстур того же разрешения.

Доступ к WebGL-расширениям осуществляется с помощью метода WebGLRenderingContext.getExtension(). Дополнительную информацию можно найти также в разделе Использование расширений в учебнике по WebGL.

Примечание: Это расширение доступно как для контекстов WebGL1, так и WebGL2.

Постоянные

Сжатые форматы текстур представлены 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,
);

Спецификации

Спецификация
Спецификация расширения WebGL WEBGL_compressed_texture_etc

Совместимость с браузерами

Рабочие столы Мобильные устройства
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.

См. также

  • Сжатие текстур Ericsson — Wikipedia
  • WEBGL_compressed_texture_etc1 (ETC1)
  • WebGLRenderingContext.getExtension()
  • WebGLRenderingContext.compressedTexImage2D()
  • WebGLRenderingContext.compressedTexSubImage2D()
  • WebGLRenderingContext.getParameter()

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API