GAMES101课程学习笔记—Lec 20:Color and Perception 颜色与感知
1 颜色的物理基础 Physical Basis of Color
- 通过牛顿的实验,我们发现颜色是混合起来的
- 光=不同波长的电磁辐射(可见光光谱范围内400~700nm)
不同波长的光具有不同的折射率
Spectrum 光谱:不同波长(频率)的光对应的类型
- 谱功率密度:描述光线在不同的波长强度是多少
SPD具有线性性质
- 颜色其实是人的感知,不是光线的一种根本属性
2 颜色的生物基础 Biological Basis of Color
- 人眼类似一个摄像机,晶状体类似一个透镜,感知的地方在视网膜上
- 视网膜上有感光细胞
Rods:视杆细胞,棒状,很多,感知光的强度而非颜色(得到灰度图)
Cones:视锥细胞,锥形,较少,产生“颜色”的感觉
视锥细胞又被分成三类S,M,L,这三种细胞对光的波长感知不同
不同的人的视锥细胞分布大不一样
3 三色激励理论 Tristimulus Theory of Color
- 不同视锥细胞的信号强度 = 其 对所有波长的光的响应与光强相乘 的积分
三种不同细胞自然就会感应出三种结果,对应SML
- 于是人眼看到东西的过程
任何一束光进入 → 转化成(S,M,L) → 与Color 对应,人眼只知道(S,M,L),不知道原来的光线分布(SPD)
4 同色异谱 Metamerism
既然我们看到的是SML,是SPD与相应函数积分的结果,而不是光线的光谱
那么可不可能具有不同光谱的光被我们看成相同的颜色呢?
答案是肯定的,这就是同色异谱现象
- 同⾊异谱:不同的SPD → 同样的(S,M,L) = 同样的Color
正因为有这种现象,我们才能给人们呈现各种各样的颜色,这个过程叫做颜色匹配(Color Matching)
我们通过调和不同的光谱,得到某种颜色和另外一种颜色一样,而不用光谱一样
以下是一些例子,它们的光谱各不相同但是被人感知的颜色相同
5 颜色匹配、重建 Color Reproduction / Matching
我们提到同色异谱,也就是给定一个颜色,我们可以去混合匹配得到它
那么颜色应该如何混合?
我们把计算机的成像系统成为加色系统
也就是我们有几种原色(以RGB为例),我们把它们乘以某个强度,加起来就得到一种颜色
RGB是三个系数
我们在计算机中颜色混合得到白色,这是加色;我们在现实中混合颜料,越来与黑,这是减色
- 任意颜色都可以通过混合解决
- 但是有些情况很奇怪
左边的颜色右边怎么混合都混不出(比如P2到0了)
我们发现可以让需要混合出的颜色,加上一个颜色
这样就好像右边减去了一个颜色(因为加色系统没法减,最少是0,所以用这种间接的方法)
这也就是告诉我们,如果我们通过混合得到颜色,系数可能是负的
5.1 CIE RGB
- CIE是一个组织,它们定义了RGB的系统
RGB要做颜色的匹配
给出 RGB 都是单一波长的光,我们做混合测试的光也都是单一波长的光
做测试,测量多少强度的三种主光加起来会获得和测试光一样的颜色
- 颜色匹配函数 color matching functions
它描述了对于任何波长上的颜色,三种主光各自多少强度加起来会获得和测试光一样的波长的颜色。
- 我们得到的匹配函数的曲线是对应单个波长的光
现实的光线的SPD是很多波长在一起的,所以我们要考虑每一个波长的的Color Matching值
我们把每一个波长都考虑进去,自然就是积分
三个积分得到三个数 (R,G,B)
6 颜色空间 Color Spaces
- sRGB是一种广泛应用的标准系统
被应用于很多图像设备,比如电脑的显示器
但是sRGB这个颜色空间形成的色域是有限的
- 在说明sRGB色域受限之前,我们先来说说另一个颜色空间:CIE XYZ
同样它也要定义颜色匹配函数,它不是实验得到的,是一种人造的
我们用XYZ也可以表示颜色,它这个Y一定程度上可以表示亮度
它和RGB系统的差别就是颜色匹配函数上
- 能不能把XYZ系统显示的颜色都表示出来看看
但是三个数本身是三维的,可视化三维的东西不好表示
我们就显示其中的两维
我们先做三个数的归一化
归一化之后,我们只需要显示两个维度就可以了,第三个维度自然可以得到
但是这样还是要用到XYZ三个数
我们既然知道Y表示亮度,那就把Y固定,用固定的某一个亮度,然后让XZ发生变化
接着我们显示xy的图
- 这块东西就是色域
色域有一个中心,中心是白色,是最不纯的颜色(因为加色系统把颜色都加起来)
扇形的边界是单色,最纯的颜色
- 不同的颜色空间表示的色域范围不一样
7 Perceptually Organized Color Spaces
我们还有其他的颜色空间
- 比如HSV
色调表示不同颜色,饱和度表示纯不纯(白色最不纯),亮度
- CIE还有Lab空间
L为亮度 a表示红绿 b表示蓝黄
这个空间认为轴的两端都是互补色
黑白互补可以理解,但是其他的互补色怎么理解?
其他的互补色是实验得到的,人的大脑就是这么认为的
- 通过视觉暂留可以进行验证
人眼看久了会看出互补色,看下图的蓝旗子,看十秒钟再看白色会得红旗
- 关于更多视错觉可以看原视频或者课件,这里就不展示了
这些视错觉告诉我们的是,颜色只是人的感知,有相对性,有些时候只是我们自己觉得
- 打印用的是减色系统,比如CMYK
墨水越混越黑
CMYK用的是靛蓝、品红、黄色、黑色
有个问题混合CMY就能得到K,为什么还要K
答案是 因为成本
黑色用的广,但是不可能所有黑色都用混合来做,并且黑色墨水好造
8 Some Notes
未提到的问题:
HDR
Gamma Correction矫正:从Radiance到颜色,不是简单线性变换就能得到的,因为显示器上颜色显示是非线性的,必须要矫正过