WebGLRenderingContext: unpackColorSpace 屬性

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

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

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

瀏覽器相容性

另見