EXT_sRGB 扩展

EXT_sRGB 扩展是 WebGL API 的一部分,它为纹理和帧缓冲区对象添加了 sRGB 支持。

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

注意:此扩展仅适用于 WebGL1 上下文。在 WebGL2 中,此扩展的功能在默认情况下适用于 WebGL2 上下文。WebGL2 中的常量为:gl.SRGBgl.SRGB8gl.SRGB8_ALPHA8gl.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING

常量

此扩展公开以下常量,这些常量可以在 texImage2D()texSubImage2D()renderbufferStorage()getFramebufferAttachmentParameter() 方法中使用。

ext.SRGB_EXT

无尺寸的 sRGB 格式,将精度留给驱动程序决定。

ext.SRGB_ALPHA_EXT

无尺寸的 sRGB 格式,带无尺寸的 alpha 分量。

ext.SRGB8_ALPHA8_EXT

带尺寸的 (8 位) sRGB 和 alpha 格式。

ext.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT

返回帧缓冲区颜色编码 (gl.LINEARext.SRGB_EXT)。

示例

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

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

gl.texImage2D(
  gl.TEXTURE_2D,
  0,
  ext.SRGB_EXT,
  512,
  512,
  0,
  ext.SRGB_EXT,
  gl.UNSIGNED_BYTE,
  image,
);

规范

规范
WebGL EXT_sRGB 扩展规范

浏览器兼容性

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

另请参阅