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