EXT_texture_compression_bptc 擴充套件

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

EXT_texture_compression_bptc 擴充套件是 WebGL API 的一部分,它暴露了 4 種 BPTC 壓縮紋理格式。這些壓縮格式在 Microsoft 的 DirectX API 中被稱為 BC7BC6H

可以使用 WebGLRenderingContext.getExtension() 方法來訪問 WebGL 擴充套件。有關更多資訊,請參閱 WebGL 教程中的 使用擴充套件

注意: 支援情況取決於系統的圖形驅動程式。Windows 上不支援。

此擴充套件同時適用於 WebGL1WebGL2 上下文。

常量

這些壓縮紋理格式透過 4 個常量暴露,並可用於兩個函式:compressedTexImage2D()compressedTexSubImage2D()

ext.COMPRESSED_RGBA_BPTC_UNORM_EXT

壓縮 8 位定點資料。每個 4x4 紋素塊包含 128 位 RGBA 或影像資料。另請參閱 BC7 格式

ext.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT

壓縮 8 位定點資料。每個 4x4 紋素塊包含 128 位 SRGB_ALPHA 或影像資料。另請參閱 BC7 格式

ext.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT

壓縮高動態範圍的有符號浮點值。每個 4x4 紋素塊包含 128 位 RGB 資料。它只包含 RGB 資料,因此返回的 alpha 值為 1.0。另請參閱 BC6H 格式

ext.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT

壓縮高動態範圍的無符號浮點值。每個 4x4 紋素塊包含 128 位 RGB 資料。它只包含 RGB 資料,因此返回的 alpha 值為 1.0。另請參閱 BC6H 格式

示例

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

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

gl.compressedTexImage2D(
  gl.TEXTURE_2D,
  0,
  ext.COMPRESSED_RGBA_BPTC_UNORM_EXT,
  128,
  128,
  0,
  textureData,
);

規範

規範
WebGL EXT_texture_compression_bptc 擴充套件規範

瀏覽器相容性

另見