引子
3d渲染中Gamma矫正初看很简单,但是理解起来却费了很大劲,起码对我来说是这样,相关资料看了很多,基本是理解流程了,记录下来方便以后翻看。
响应曲线
Gamma矫正的原因是显示器(crt或者现在的液晶显示器都一样)的相应曲线是非线性的:指数为2.2的指数函数,输入->显示对应如下:
0 -> 0
0.5 ->0.218
1 -> 1
而人 的眼睛对光子(photon)的响应也是非线性的,光子->人眼响应对应如下:
0 -> 0
0.218 ->0.5
1 ->1
理解Gamma矫正,主要就是这两个响应关系,剩下的就是怎么用了。
上面2个响应结合起来,则输入->显示->人眼响应刚好是线性关系。
颜色空间
根据上面2个响应关系,有2个经常听到的颜色空间:
线性空间:物理上的线性空间,表示有多少个光子
sRGB空间:基于屏幕显示的空间,或者说基于人眼响应的空间
线性空间存储的图片,如果显示在显示器上,由于显示器的响应曲线,会偏暗。比如图片中某一点的值是0.5,物理上0.5的亮度应该是比较亮(感官上应该是0.73),但是由于显示器的响应特性,显示的实际亮度为0.218,再加上人眼的响应,为0.5,而不是应该的0.73,如果屏幕取色,会发现是0.73。
sRGB空间则是基于显示器的,sRG