WebGLRenderingContext: unpackColorSpace プロパティ
利用可能性は限定的
この機能はベースラインではありません。最も広く使用されているブラウザーの一部で動作しません。
メモ: この機能はウェブワーカー内で利用可能です。
WebGLRenderingContext.unpackColorSpace プロパティは、テクスチャをインポートする際に変換する色空間を指定します。デフォルト値 (srgb) の他に、 display-p3 色空間も使用することができます。
テクスチャ画像のソースとしては、以下のものが利用できます。
ImageBitmapImageDataHTMLImageElementHTMLCanvasElementHTMLVideoElementOffscreenCanvasVideoFrame
テクスチャは WebGLRenderingContext.texImage2D() と WebGLRenderingContext.texSubImage2D() メソッドを使用してインポートされ、インポート中に指定した unpackColorSpace 色空間に変換されます。
これは、 HTMLImageElement において UNPACK_COLORSPACE_CONVERSION_WEBGL 引数が NONE に設定されている場合には適用されないことに注意してください。
値
このプロパティは次の値を取ることができます。
"srgb"は sRGB 色空間を選択します。これはデフォルト値です。"display-p3"は display-p3 色空間を選択します。
無効な値が指定された場合、unpackColorSpace の値は変更されません。
例
>テクスチャ内の sRGB ImageData を display-p3 に変換
js
const canvas = document.getElementById("canvas");
const gl = canvas.getContext("webgl");
gl.drawingBufferColorSpace = "display-p3";
gl.unpackColorSpace = "display-p3";
// 一部の sRGB ImageData は、
// sRGB から 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 Specification> # DOM-WebGLRenderingContext-unpackColorSpace> |