霜狼May 百人计划 图形2.6 Gamma校正

在了解Gamma校正之前,对颜色、空间以及色度图还有各个颜色空间的标准有一个基本的概念。

色度图

通用:sRGB

  • sRGB:微软和惠普在1996年发布的一个通用的颜色空间标准

电影:DCI-P3

  • DCI-P3:电影行业数字电影播放的颜色空间标准

电视:Rec-709、PAL等

  • Rec-709:电视行业的颜色空间标准。和sRGB表达的颜色范围其实是差不多的,他们的三原色位置是相同的,他们的传递函数1不同。

印刷:CMYK、Adobe RGB
其他

Gamma矫正

简单来说,是对线性三色值和一个非线性的视频信号之间进行了一个编码和解码的操作。
在 sRGB 格式下,Gamma 值为 2.2

https://zhuanlan.zhihu.com/p/36581276
https://blog.csdn.net/kuweicai/article/details/78953017

在常用的 RGBA32 格式,每个颜色通道都只有 8 位,只能存储 256 种亮度,所以基于人眼感知2的原因,用更多的空间存储更多暗部的颜色是更合理的。

所以可以理解为,如果记录的图像在RGBA的256种强度中用Gamma空间(sRGB空间)存储并非均匀分布,我们在线性运算光线RGBA强度之前,要先把贴图先转化回线性空间,一定要先把他转化为显示器色彩空间的不均匀色彩模型的物理量。

韦伯定律

简单来说就是,当所受刺激越大时,需要增加的刺激也要足够大才会让人感觉到明显变化,但是只适用于中等强度的刺激。
在这里插入图片描述

  • 上面的渐变条是人眼感知均匀
    下面的渐变条是物理上均匀
  • 如果中间叫中灰色,
    上面的叫美术中灰
    下面的叫物理中灰

把这两条曲线放到同一张图里,就得到了映射关系。这就是Gamma编码的曲线。

图形工业须知 - 线性工作流

在生产的各个环节,正确使用gamma编码及gamma解码,使得最终得到的颜色数据与最初输入的物理数据一致。

  • 如果是使用Gamma空间的贴图,在传给着色器前就需要从Gamma空间转到线性空间。
    在这里插入图片描述

  • 不对Gamma空间的贴图进行gamma解码的话,会产生过曝的结果。因为经过Gamma编码之后,它的值比实际的要大。
    比如在叠加的情况下,线性空间的0.098 + 0.098 = 0.196
    在Gamma空间下0.0980.45+0.0980.45= 0.35 + 0.35 = 0.7
    叠加完即使再用Gamma解码回 0.72.2=0.45 也远远超出了0.196

Unity中颜色空间

在这里插入图片描述

Substance Painter

Substance Painter的贴图在导出时,颜色值经过了Gamma编码,颜色被提亮了。需要在Unity中勾选sRGB选项,让它在采样时能还原回线性值。

PhotoShop

  • PhotoShop把灰度系数设为1导出图片,也不需要勾选sRGB选项了。不做设置的话,需要勾选sRGB。
  • 因为PhotoShop对颜色的管理很精准,我们在unity里看到的颜色要经过显示器的Gamma变换,而PhotoShop会主动读取我们显示器的Gamma值反向补偿回去,也就是真实的颜色值
  • PhotoShop自身有一个系统通过灰度值去控制我们颜色的显示,通常情况下,这个值会和显示器的Gamma值一致,所以我们最终看到的颜色好像和在unity中看到的一样,但其实它是可以通过主动设置灰度值改变看到的这个颜色的结果。

颜色混合

  • Unity在进行半透明的混合时会先将它们转换到线性空间下,然后再进行混合。
  • PhotoShop的图层和图层之间做混合,每个上层图层都会读取它们的Color Profile里的Gamma值经过Gamma变换再做混合,得到的结果偏暗一些。可以在工作空间设置中更改,选择用灰度系数混合RGB颜色,参数设置为1,这样就能得到一个线性空间混合的结果。

个人额外的扩展

PNG文件格式规范中对于Gamma校正的要求


  1. 我们已经知道在这个颜色空间下三原色的值,但是要把它显示到电子设备上,就要把它(光信号)转换成视频信号。这就需要用到一个转换函数也就是传递函数。
    包含两部分,
    把光信号转为电信号,
    把电信号转为光信号,
    这个传递函数就是我们所说的Gamma校正所使用的函数。 ↩︎

  2. 人眼对暗部的变化要更加敏感一点。应当存储更多暗部的信息。 ↩︎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值