Gregory Igehy

Dancing at hemisphere coordinate

Notes of Tone Mapping

Notes of auto exposure in games

Others

Notes of colorimetry in Japanese

  • 人間が見える光の波長の範囲 : 380nm-830nm
  • V(λ) : CIE Photometric curve

CIE rgb 等色関数

  • λr = 645.2 nm, λg = 525.3 nm, λb = 444.4 nm
  • Qλ = r(λ) R + g(λ) G + b(λ) B
  • × : 波長によっては負の値を取ってしまう

CIE XYZ 等色関数

// XYZ to xyz

x = X / ( X + Y + Z );
y = Y / ( X + Y + Z );
z = Z / ( X + Y + Z ) =  1 - x - y;
// xyY to XYZ

X = ( x / y ) * Y;
Y = L;
Z = ( z / y ) * Y = ( ( 1 - x - y ) / y ) * Y;
// sRGB(D65) to XYZ

X = 0.4124 * r + 0.3576 * g + 0.1805 * b;
Y = 0.2126 * r + 0.7152 * g + 0.0722 * b;
Z = 0.0193 * r + 0.1192 * g + 0.9505 * b;
// XYZ to sRGB(D65)

r =     3.2405   * X + ( - 1.5371 ) * Y + ( - 0.4985 ) * Z;
g = ( - 0.9693 ) * X +     1.8760   * Y +     0.0416   * Z;
b =     0.0556   * X + ( - 0.2040 ) * Y +     1.0572   * Z;
// sRGB(D65) to xyY

X = 0.4124 * r + 0.3576 * g + 0.1805 * b;
Y = 0.2126 * r + 0.7152 * g + 0.0722 * b;
Z = 0.0193 * r + 0.1192 * g + 0.9505 * b;

x = X / ( X + Y + Z );
y = Y / ( X + Y + Z );
// xyY to sRGB(D65)

X = ( x / y ) * Y;
Z = ( ( 1 - x - y ) / y ) * Y;

r =     3.2405   * X + ( - 1.5371 ) * Y + ( - 0.4985 ) * Z;
g = ( - 0.9693 ) * X +     1.8760   * Y +     0.0416   * Z;
b =     0.0556   * X + ( - 0.2040 ) * Y +     1.0572   * Z;

Y Cb Cr

// RGB to Y Cb Cr

Y  =   0.299 * r +     0.587   * g +     0.114   * b;
cb = - 0.168 * r + ( - 0.333 ) * g +     0.498   * b;
cr =   0.498 * r + ( - 0.417 ) * g + ( - 0.081 ) * b;
// Y Cb Cr to RGB

r = 1.000 * Y +     0.000   * cb +     1.397   * cr;
g = 1.000 * Y + ( - 0.343 ) * cb + ( - 0.711 ) * cr;
b = 1.000 * Y +     1.765   * cb +     0.0000  * cr;

Lab

  • a 色かぶり : a > 0 で赤, a < 0 で緑
  • b ホワイトバランス : b < 0 で 青, b > 0 で黄
  • a, b 値の範囲は -128-127 とかが一般的

Lights

  • CIE D65 (6504 K ), D55 (5503 K), D75 (7504 K)
  • K <-> choromaticity coordinates (xy)a