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 扩展规范

浏览器兼容性

BCD 表只在浏览器中加载

另请参阅