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 擴充套件規範

瀏覽器相容性

另見