Gamma校正与线性工作流
本帖最后由 橙兜酱 于 2022-11-2 00:43 编辑这个是我自己学3D的时候做的一些笔记,虽然说这种科普已经烂大街百度一大堆了。
所以这个笔记单纯的就是发出来留个备份,顺便记录一下我自己思考写出来的深度知识,如果未来我忘记了可以看这个笔记找回我现在的思考方式。
大家看个乐呵就行,如果有什么错误大家也可以在评论区交流一下哈~
什么是Gamma
Gamma值就是对动态范围内亮度的非线性存储/还原算法。
为什么需要Gamma校正
在黑暗中点亮一个蜡烛,你会感觉到亮度会明显的增加,但是如果在明亮的房间内点亮蜡烛,你不会感受到亮度增加。这是人眼对于自然亮度的 非线性感知 。人眼对于黑暗环境下的亮度更加敏感。
https://s1.ax1x.com/2022/11/02/x7zMXq.png
A:人眼感受到舒服的光强变化 B:真实世界的光强变化
https://s1.ax1x.com/2022/11/02/x7z37T.png
在现实最暗和最亮的动态范围是巨大的,如果要将其存储出来要耗费大量的存储而且不方便传输,所以想要把这么高宽容度的图片存储下来,方便传输,压缩是必不可少的。
我们把物理光强50%的灰度叫做物理中灰,人眼中的50%的灰度叫美术中灰。
可以看到,美术中灰对应的物理光强差不多是21.8%。
8位通道能存储的值是0-255,而21.8%的美术中灰对应的值是256 x 0.218 = 55.808,也就是说整个美术暗部,只有55级灰阶用来存储,那么自然就会出现灰阶断层。
https://s1.ax1x.com/2022/11/02/x7zJNF.png
而相机拍下来的图片是真实物理的线性光照明,如果压缩成8bit的话,线性光灰色部分因为暗部太少而会出现灰阶断层。基于人眼对暗部变化比亮部更为敏感的特性,人们就用了一套算法来提升暗部的层次,抛弃亮部的细节。
这个算法就是Gamma,保存人眼感兴趣的暗部,压缩不感兴趣的亮部。
Gamma值的存在,归根到底,是一个解决方案,用于化解“无限的自然存在,与有限的存储容量/传输带宽”之间的矛盾。
了解Gamma校正
在了解校正前先简单的回顾一下什么是 线性色彩空间 和 非线性色彩空间 。
简单来说 线性色彩空间 是真实世界的灰度变化,经过Gamma矫正就是 非线性色彩空间 的了。
Gamma=0.45是给电脑看的,这样会省存储空间,但是人眼看起来不舒服(太亮了)。
Gamma=1代表着图片是线性色彩空间。
Gamma=2.2是给人眼看的,这样会增加存储空间,但是人眼看起来舒服。
(Gamma2.2的颜色空间叫做sRGB颜色空间)
Gamma矫正如果互为倒数就可以无损还原回来,此时Gamma为1 。
了解Gamma转换
渲染器/相机拍摄的图片是 线性色彩空间 的,在转为8bit图片时候,为了保证低亮度的分辨精度,降低高亮度的量化存储开销,会先经过Gamma0.45校正,变成 非线性色彩空间 。
https://s1.ax1x.com/2022/11/02/x7zdj1.png
经过传输后图片来到其他人的电脑,如果按照Gamma=0.45来显示的话图片会太亮,所以显示器会使用Gamma=2.2把图片还原出原本图片的正常灰度。
https://s1.ax1x.com/2022/11/02/x7z0nx.png
非线性是怎么对渲染结果产生影响的
非线性工作流的缺点:灯光衰减快,高光容易过曝,室内易昏暗。
https://s1.ax1x.com/2022/11/02/x7zBB6.png
渲染器渲染的是线性色彩空间,如果你的材质是非线性的(Gamma=0.45),加上线性的灯光合成后会导致过曝的材质加上正常的灯光,然后你的屏幕在通过Gamma=2.2把过曝的材质拉回Gamma=1,此时原本Gamma=1的灯光就会被变的更暗。
使用线性工作流
在贴图输入给渲染器前需要使用Gamma=2.2,把美术数据还原成物理数据,这个过程叫De-Gamma。
https://s1.ax1x.com/2022/11/02/x7zsAO.png
使用线性的材质,用线性的灯光渲染线性的结果,此时显示器会使用Gamma=2.2压暗,手动抵消回来就是正确的结果了。
---
笔记参考:
(https://www.bilibili.com/video/BV15t411Y7cf/)
[【罗sir的课】色彩校正中的 gamma 值大揭秘](https://www.bilibili.com/video/BV1Sb4y1i7i6/)
(https://www.winotmk.com/2020/06/1976)
[色彩校正中的 gamma 值是什么?](https://www.zhihu.com/question/27467127/answer/37555901)
[从0开始的技术美术之路(十)伽马校正_古守音的博客](https://blog.csdn.net/qq_43210334/article/details/117229466)
[百人计划2.6伽马矫正](https://zhuanlan.zhihu.com/p/484571648)
[【TA的自我修养 | 图形篇03】色彩空间与gamma校正](https://zhuanlan.zhihu.com/p/559048003)
[色彩校正中的 gamma 值是什么?](https://www.zhihu.com/question/2 ... 8109535232%EF%BB%BF)
(https://zhuanlan.zhihu.com/p/361093652)
另外还有一些其他问题:
只要纹理不是用于基础色的话,用在其他比如高光、糙度、金属度之类的黑白接口上色彩空间都要要用非彩色吗?
现在的情况是不清楚纹理方面的格式....不知道怎么看纹理是线性还是非线性的,也不知道为啥基础色可以直接用sRGB,而不需要用非彩色
https://s1.ax1x.com/2022/11/02/x7zOvn.png 果然这种偏向于专业的都没人回帖(哭 和这个讨论屏幕响应时间的视频一样,特有 学术感。
这个视频里也有涉及到gamma转换的问题。
https://space.bilibili.com/457709751 amiemie666 发表于 2022-11-2 20:15
和这个讨论屏幕响应时间的视频一样,特有 学术感。
这个视频里也有涉及到gamma转换的问题。
https://space. ...
这个也没怎么难的,了解出现原理和解决方法就够了。
78-PBR纹理-线性工作流_哔哩哔哩_bilibili
就是因为这个视频我查了半天资料终于把看懂了
Lambholl 发表于 2022-11-2 18:24
果然这种偏向于专业的都没人回帖(哭
问题不大,只是记录出来,有没有人看无所谓,而且这东西网上一大堆,
https://www.bilibili.com/video/BV15t411Y7cf/
这个视频讲的很好,只要看这个视频在看几篇文章就能理解
https://www.bilibili.com/video/BV19e4y1y7Mo/
这个视频也讲的很详细
页:
[1]