WEBGL_compressed_texture_pvrtc

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

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

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

Примечание: Обычно PVRTC доступен только на мобильных устройствах с чипсетом PowerVR. Используется во всех поколениях iPhone, iPod Touch и iPad и поддерживается на определённых Android устройствах, использующих PowerVR GPU.

Версии контекста, поддерживающие расширение: WebGL1 , и WebGL2 (en-US).

Константы

Форматы сжатых текстур представлены четырьмя константами и могут быть использованы в двух функциях: compressedTexImage2D() (en-US) — параметры высота и ширина должны соответствовать степени 2 compressedTexSubImage2D() (en-US) — параметры высоты и ширины должны быть равны размеру текстуры, а значения параметров xoffset и yoffset должны быть 0.

ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMG

RGB сжатие в 4-битном режиме. Один блок на каждые 4×4 пикселей.

ext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG

RGBA сжатие в 4-битном режиме. Один блок на каждые 4×4 пикселей.

ext.COMPRESSED_RGB_PVRTC_2BPPV1_IMG

RGB сжатие в 2-битном режиме. Один блок на каждые 8×4 пикселей.

ext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG

RGBA сжатие в 2-битном режиме. Один блок на каждые 8×4 пикселей.

Примеры

js
var ext = gl.getExtension("WEBGL_compressed_texture_pvrtc");

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

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

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

Specification
WebGL WEBGL_compressed_texture_pvrtc Extension Specification

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

BCD tables only load in the browser

Смотрите также