WEBGL_compressed_texture_pvrtc 扩展

WEBGL_compressed_texture_pvrtc 扩展是 WebGL API 的一部分,它公开了四种 PVRTC 压缩纹理格式

压缩纹理减少了在 GPU 上存储纹理所需的内存量,从而允许使用更高分辨率的纹理或更多相同分辨率的纹理。

可以使用 WebGLRenderingContext.getExtension() 方法获得 WebGL 扩展。有关更多信息,请参阅 使用扩展(位于 WebGL 教程 中)。

注意: PVRTC 通常仅在具有 PowerVR 芯片组的移动设备上可用。它用于所有版本的 iPhone、iPod Touch 和 iPad,并在使用 PowerVR GPU 的某些 Android 设备上受支持。

此扩展可用于 WebGL1WebGL2 上下文。

注意:在 iOS 设备上,此扩展名为 WEBKIT_WEBGL_compressed_texture_pvrtc

常量

压缩纹理格式由四个常量公开,可用于两个函数:compressedTexImage2D()(其中 heightwidth 参数必须为 2 的幂)和 compressedTexSubImage2D()(其中 height 和 width 参数必须等于现有纹理的当前值,并且 xoffsetyoffset 参数必须为 0)。

ext.COMPRESSED_RGB_PVRTC_4BPPV1_IMG

4 位模式下的 RGB 压缩。每个 4×4 像素一个块。

ext.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG

4 位模式下的 RGBA 压缩。每个 4×4 像素一个块。

ext.COMPRESSED_RGB_PVRTC_2BPPV1_IMG

2 位模式下的 RGB 压缩。每个 8×4 像素一个块。

ext.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG

2 位模式下的 RGBA 压缩。每个 8×4 像素一个块。

示例

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

const 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,
);

规范

规范
WebGL WEBGL_compressed_texture_pvrtc 扩展规范

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅