谈校色以及其的启示
前言:最近关于颜色的学习记录,为了强化记忆,梳理,已经备忘,里面涉及很多插图,参考没有太多时间配,说明也只是梳理思路,没有细化,之后如果有时间再说
细节
- 充分利用色域,细节!细节!
关于色彩空间
-
色彩空间(坐标系建立的原理)
- LMS空间是以L、M、S、细胞的刺激值作为坐标系,缺点是没办法通过坐标判断颜色
- CIE RGB 是以人类对三色单波长光(分别取435.8 nm、546.1 nm、700nm)的色刺激值作为坐标系,缺点是有负数(这里涉及颜色减法,也就是格拉斯曼定律)
- CIE XYZ 是CIE RGB的线性变化,去除负值
- CIE Lab 是CIE RGB的非线性变化,问题是解决CIE XYZ的在不同颜色区域,同样的数值误差,导致不同的视觉颜色误差
-
关于gamma和sRGB
- CRT的亮度与电压不成线性变化,为了兼容,现在的显示器都带有gamma
- 但不表示gamma都等于2.2,不同的显示器不一样,也可以调
- 比如在shadertoy里输出0-1的灰度渐变,显示器会默认做sRGB,或者说是OpenGL缓冲区做了sRGB(不确定这么说准不准确)
- Log曲线能在数据存储的时候存储人类更多的视觉信息(现在还在用,比如ARRI的logC曲线)
- gamma!=sRGB,sRGB相对gamma曲线在亮度很低的时候有更丰富的细节
- 只是一种压缩,sRGB+sRGB~=zip +zip一样,所以为什么光照不能在sRGB下做运算
- 我们常说的线性空间、Gamma空间其实并不是一种色彩空间,sRGB色域内也可以是线性的
- CRT的亮度与电压不成线性变化,为了兼容,现在的显示器都带有gamma
-
关于ACES
- 不同的厂商摄像头在记录光照到底片或者数码数据的时候,自定义了很多空间,比如ARRI的logC空间,sony的S-Log空间,还有常规显示器作图的sRGB或者AdobeRGB,还有很多很多花里胡哨的颜色空间
- ACES其实就是为了大一统,尽量大的色域,这样让所有的数字资产以后都可以拿来用,永不过时
- IDT
- RRT
- ODT
- aces color space
- aces Ap0 最大色域,超过CIE 1931色域
- aces Ap1 常规线性运算
- acescc log 方便log调色
- aces流程中也有一些甜味剂,包括glow module, red modifier, global desaturation(我也没弄明白)
关于调色
-
为什么要调色
- 为了细节
- 为了还原
- 为了情绪
-
关于细节
- 直方图
- S型曲线
- 规律就是人眼在低亮度和高亮度,视觉亮度并不跟物理亮度成线性关系
- 参考 John Hable Filmic Tonemapping with Piecewise Power Curves
- Reinhard
- Cry Engine
- Filmic Curve Uncharted2拟合
- ACESFilm Fitting拟合
- saturate((x*(ax+b))/(x(c*x+d)+e))
- 参考 Krzysztof NarkowiczACES Filmic Tone Mapping Curve
- 参考 龚敏敏知乎Tone mapping进化论
- 参考 John Hable Filmic Tonemapping Operators
- 规律就是人眼在低亮度和高亮度,视觉亮度并不跟物理亮度成线性关系
-
保证计算在大色域中,这样能最大限度保真
- 比如sRGB中线性计算也会出现颜色小于0的情况,但是如果变换到acescg中计算就不会,色域外被直接裁剪会造成色偏
- 保亮度(色域被裁减)、CIE xYz
-
关于还原
- 比如白平衡和色温等等,在现实拍摄过程中现实光照不允许
- 比如白天拍晚上,都有现成的lut文件
-
关于情绪
- 补色使用
- 色彩给人传递的情感
- 色温!=色彩情绪
-
调色也没有想象中那么难
- 直方图看,尽量保留细节,这就是为什么需要要求用HDR,以及尽量拉开光照的原因
- 颜色拉开,通过Tonemapping保留细节,在调色过程中对不同的波段进行调整
- 色温、Tint对应CIE 图上的普朗克轨迹和垂直普朗克轨迹的线条,基调和情绪
- 全屏的曝光、Color Filter、对比度修正
- Color Filter可以参考顽皮狗神秘海域的GDC演讲,做了很好的对比
- Hue和亮度尽量不调,亮度最好在光照里面(aces 中定义为scene referr space)补充,因为如果场景光照不足,在display referr space中调,容易丢失细节
- Shadow,Middle Gray,HightLight
- Lift, Gamma, Gain
- 这两者都是,分别对暗部,中间色,和高光做微调,或者颜色偏移,一般来说都能达到自己的目的,看哪个顺手就用哪个,从我的感觉来看,Lift,Gamma,Gain对色相的保留度比Shadow,Middle Gray,HightLight的保留度更高一点
- 如果需要更精细的话,就是调曲线
- 色阶曲线
- Hue vs Hue其实等于Hue全局偏移
- Hue vs Sat
- Sat vs Sat
- Lum vs Sat
- 直方图看,尽量保留细节,这就是为什么需要要求用HDR,以及尽量拉开光照的原因
-
关于lut文件
- 慎用lut,因为lut都是在Tonemapping之后做的,也就是LDR lut,容易丢失细节
- 其实把这些常用调色的工具掌握好,也没有那么难,去还原别人的LDR lut也很容易,放两张我针对别人的lut结果用调色工具靠近的,比较可以看出,还原色相,饱和度,暗部中灰高光问题都不大,而且带来额外的效果,就是可以保留更多细节,图中我故意把光打的亮一点,对比校色对细节的保留程度
-
题外话
- ue的效果为什么大家觉得好,或者美术觉得好,很大一个原因,是ue的hdr grading,也就是tonemap会比unity保留更多的细节
- 而unity是抄的aces的校色,但是aces校色主要用于电影院,是一个低亮度的环境,这样,aces的暗部的细节会被压的更细一点,这样导致在常规屏幕上,暗部的保留没有ue那么丰富
- 还有很多参考未一一列举
示例图