Gamma矫正与Unity 线性工作流

Gamma是什么东西?

Gamma 中文伽马,其实由来已久。本质上是一个色彩的变换曲线,比如输入颜色值是横坐标X变换完的颜色就是纵坐标Y

 

 

 

咦 这样很奇怪,为什么颜色要经过这样的Gamma 变换呢? 正常RGB(0.5,0.5,0.5) 显示在显示上就RGB(0.5,0.5,0.5)就好了。

干嘛还要做Gamma变换,或者统一说gamma矫正?

 

gamma矫正的由来,有好几个传送。龚敏敏 一篇《Gamma传说》文章里面说的,大概意思我也用别人的文章说明。

在很久很久以前(其实没多久),全世界都在使用一种叫CRT的显示设备。这类设备的显示机制是,使用一个电压轰击它屏幕上的一种图层,这个图层就可以发亮,我们就可以看到图像了。但是,人们发现,咦,如果把电压调高两倍,屏幕亮度并没有提高两倍啊!典型的CRT显示器的伽马曲线大致是一个伽马值为2.5的幂律曲线。显示器的这类伽马也称为display gamma。
---------------------
更通俗的说,就是显示器没办法完全的按照我们给定的颜色完全还原出来。如果不做任何处理,我的照片在显示器上面显示会显得更暗。类似上面给的CRT曲线图。 这是一个传说啦。后面我们的显示器虽然没有CRT那种电压跟亮度变换不一样的问题,但是为了兼容以前的东西。就是兼容人为设置gamma值在2.2~2.5之间。现在通常用2.2这个值。

如果显示器一直有这个特性,那为什么摄影,或者做图的时候。都没发现我们的图片变暗啊。其实我们摄像或者有个作图的时候,会有个gamma的选项。

 比如 我们设置0.5灰色,不做任何处理经过显示器的gamma2.2矫正 0.5^2.2 = 0.217 这样。为了防止色彩出现偏差。我们应该在保存图片或者在制作图片的使用在进行一个gamma矫正

0.5 ^0.45 = 0.729。 先人为经过一次2.2倒数gamma 的矫正。保存成图片得到0.729的值。 到显示器的时候0.729^2.2 = 0.5 这样又回到0.5.我们设计时候想要的颜色。 

 

第二种网络上的传说,就是人眼传说。

说 我们人眼对于亮度的感觉的非线性!怎么理解呢?就是黑色0.0 变换0.1 有点黑我们肉眼可以很敏感的感受到。但是0.8接近白色到0.9这样的颜色变换,我们肉眼就很难区分出来。

知乎里面有人也写了一篇长篇文章说明这个问

《色彩校正中的 gamma 值是什么?》

https://www.zhihu.com/question/27467127#answer-10413243

 

大概意思是因为图片是8位,只能存255 色阶的灰度。但是人眼对于暗部更加敏感。我们应该用更多的数据存储黑色部分,亮度不敏感我们应该少存点。这样先经过0.45gamma矫正,放大的暗部的量,再经过显示器2.2gamma矫正。

回到正常想要的颜色。这样用8位的图片可以保留更多的暗部色彩。

 

上面两种说法,不管那种说法,大家都姑且听下。大概要了解我们的色彩的变换过程。就是图片正常制作的其实经过Gamma矫正,在显示器上面才会得到正常的颜色值。

Gamma工作流是什么

Gamma工作流,就是我们日常生活中,或者摄像,摄影中。你拍到什么颜色,或者做什么颜色。反正器材都帮你做过一次Gamma矫正,你正常显示到屏幕上面就好。

类似这样的流程,美术给什么图片,程序不对图片做任何处理。该什么颜色就输出什么颜色给显示器。这样就万事大吉!真好。传统游戏基本也这样做法。做2D,老式3D这样也都这样。

 

为什么使用线性工作流

但是为什么现在我们就不能这样处理呢?

Alpha混合在gamma中无可避免的错误

 

最终怎么选择

 

Reference

作者:妈妈说女孩子要自立自强 
来源:CSDN 
原文:https://blog.csdn.net/candycat1992/article/details/46228771 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

posted @ 2019-03-12 23:26  BaoqingWu  阅读(1686)  评论(0编辑  收藏  举报