EXT_sRGB 扩展

Baseline 已广泛支持

此功能已广泛建立,并可在多种设备和浏览器版本中使用。自 ⁨2020 年 2 月⁩ 起,浏览器均已支持该功能。

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

浏览器兼容性

另见