Spec-Zone.ru › Web APIs

Расширение WEBGL_compressed_texture_s3tc

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

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

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

Расширение WEBGL_compressed_texture_s3tc является частью API WebGL и предоставляет четыре формата сжатия текстур S3TC.

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

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

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

Константы

Форматы сжатых текстур представлены четырьмя константами и могут использоваться в двух функциях: 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);

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

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

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

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

См. также

  • S3 Сжатие текстур — Википедия OpenGL
  • 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_s3tc

Spec-Zone.ru

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