伽马校正
伽马校正
了解伽马校正之前需要先了解颜色空间标准图
SRGB和Rec-709表达的颜色空间类似,但是他们的传递函数不同。
把一个三元数转换为实际颜色需要一个传递函数,传递函数有双向的两种:
OETF:光转电传递函数,负责把场景线性光转到非线性视频信号值。
EOTH:电转光传递函数,负责把非线性视频信号值转换为显示光亮度。
传递函数就是伽马校正所使用的的函数,伽马校正实际上是对线性三色值和非线性视频信号进行编码和解码的操作。
Vout = pow(Vin,gamma);
在传入计算机存储空间时,先进行1/2.2的伽马校正,等从存储空间再传回计算机显示器时再进行2.2的校正。
真实世界的光照是线性的,但人眼对于偏暗时的颜色辨别更加敏感,对于更加亮的敏感度更低。基于这个物理现象,需要在低亮度存储更多的信息,而在高亮度并不需要那么多信息。
韦伯定理
人眼在感受亮度时,对于暗部变化明显逼亮部变化更明显。
小结:
1.人眼对暗部变化比亮部更加敏感
2.我们目前所使用的真彩格式RGBA32,每个颜色通道只有八位用于记录信息,为了提高带宽和存储空间利用率,需要进行非线性转换
3.目前我们所普遍使用的sRGB颜色空间标准,他的传递函数gamma值为2.2(2.4)
CRT(阴极射线显像管)
早期的图像显示器CRT,输入的电压与亮度并不是线性处理,刚好是大概伽马校正的这个值。
线性工作流
在将颜色数据传入着色器之前,要先将图片的颜色值进行伽马校正。否则会产生过曝的效果。
作业:
自己手动尝试几种伽马矫正的几种方法