Gamma校正

Gamma值

  • 每种显示设备都有自己的Gamma值,且各不相同,但都遵循:设备输出亮度=输入电压的Gamma次方
  • 阴极射线管显示器(CRT):显示出来的亮度是输入电压的2.2次方,因此CRT的Gamma值就是2.2
  • 我们可以通俗的来理解Gamma值:显示器显示出来的颜色是原来颜色的Gamma次方
  • 2.2通常是大多数显示器的大概平均值,也是家用显示设备的一个标准
  • 对于渲染来说,我们在程序中设置颜色,这些颜色的变化范围是0到255,或者0.0到1.0,并且他们是线性变化的
  • 但是当颜色在电脑显示器上显示后,由于Gamma值不会等于1,这就造成了我们看到的颜色并不是在程序中设置的颜色,而是我们设置的颜色的指数倍,他们是非线性变化的

为什么需要Gamma校正?

  • 由于我们在程序中设置的颜色值是线性的,但实际表现出来的却是非线性的,或者说是不理想的,如果我们想表达出理想中的颜色,就要对即将显示的颜色进行校正
  • Gamma校正就是将一个颜色值变换成他的Gamma分之一次方
  • 根据显示设备的特性,显示器在显示颜色时自动执行了颜色的Gamma次方,所以显示器对于进行过Gamma校正的颜色,最后恰好显示出了他本身的颜色,完美

什么时候需要Gamma校正?

  • 先看看颜色的来源
  • 线性空间中的颜色 如果程序中获取到的颜色值是基于线性的,比如说手动输入了一些颜色值,那么想把这些颜色理想的显示出来,就要对他们进行Gamma校正,这样才能保证显示器在显示出来后是原来的颜色
  • 非线性空间中的颜色 非线性的颜色指的是执行