WebGLRenderingContext:unpackColorSpace 属性

有限可用性

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

实验性: 这是一个 实验性技术
在生产环境中使用此功能之前,请仔细查看 浏览器兼容性表格

WebGLRenderingContext.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

浏览器兼容性

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

另请参阅