WebGL2RenderingContext: unpackColorSpace 属性

可用性有限

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

注意:此功能在 Web Workers 中可用。

WebGL2RenderingContext.unpackColorSpace 属性指定了在导入纹理时要转换为的颜色空间。除了默认的 (srgb) 之外,还可以使用 display-p3 颜色空间。

纹理图像源可以是以下内容

纹理使用 WebGLRenderingContext.texImage2D()WebGLRenderingContext.texSubImage2D() 方法导入,并且在导入过程中会进行到指定的 unpackColorSpace 颜色空间的转换。

请注意,当 UNPACK_COLORSPACE_CONVERSION_WEBGL 像素存储参数设置为 NONE 时,这不适用于 HTMLImageElement

此属性可以具有以下值

如果指定了无效值,则 unpackColorSpace 的值将保持不变。

示例

将 sRGB ImageData 转换为 display-p3 纹理

js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");

gl.drawingBufferColorSpace = "display-p3";
gl.unpackColorSpace = "display-p3";

// Some sRGB ImageData
// Will be converted from sRGB to Display P3
const imageData = new ImageData(data, 32, 32);

const tex = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, tex);
gl.texImage2D(
  gl.TEXTURE_2D,
  0,
  gl.RGBA,
  width,
  height,
  0,
  gl.RGBA,
  gl.UNSIGNED_BYTE,
  imageData,
);

规范

规范
WebGL 规范
# DOM-WebGLRenderingContext-unpackColorSpace

浏览器兼容性

另见