WEBGL_compressed_texture_s3tc_srgb 扩展

可用性有限

此特性不是基线特性,因为它在一些最广泛使用的浏览器中不起作用。

WEBGL_compressed_texture_s3tc_srgb 扩展是 WebGL API 的一部分,它公开了用于 sRGB 颜色空间的四种 S3TC 压缩纹理格式

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

可以使用 WebGLRenderingContext.getExtension() 方法来访问 WebGL 扩展。有关更多信息,请参阅 WebGL 教程中的 使用扩展

注意: 此扩展支持 WebGL1WebGL2 上下文。

常量

压缩纹理格式由四个常量公开,并可用于两个函数:compressedTexImage2D()compressedTexSubImage2D()

ext.COMPRESSED_SRGB_S3TC_DXT1_EXT

sRGB 图像格式的 DXT1 压缩图像。

ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT

具有开关式 alpha 值的 sRGB 图像格式的 DXT1 压缩图像。

ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT

sRGBA 格式的 DXT3 压缩图像。

ext.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT

sRGBA 格式的 DXT5 压缩图像。

示例

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

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

gl.compressedTexImage2D(
  gl.TEXTURE_2D,
  0,
  ext.COMPRESSED_SRGB_S3TC_DXT1_EXT,
  512,
  512,
  0,
  textureData,
);

gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);
gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);

规范

规范
WebGL WEBGL_compressed_texture_s3tc_srgb 扩展规范

浏览器兼容性

另见