为什么「红绿蓝」能够组成世间万色

颜色的本质

Posted by Abel on December 15, 2019

这是一篇即兴写作。

横跨物理和生物两个学科,以尽可能简单的方式讲述颜色的本质。

从「#FFFF00」说起

如果你所处设计或计算机行业,一定对这样的字符不会陌生:「#FFFFFF」即白色,「#000000」即黑色。

再举个例子,「#FFFF00」表示黄色:

黄色

#FFFF00 表示黄色

以上述黄色为例:需要达到此颜色效果,需要将红色和绿色调至最亮,且不需要蓝色。即「Red 255」,「Green 255」,「Blue 0」。在计算机中通常以十六进制表示「Red FF」,「Greed FF」,「Blue 00」,组合即「#FFFF00」。

通常认为,世间万色是通过红,绿,蓝三色组成的。通过改变三色的强度,即可混合出任意颜色。每个颜色的强度从 0 到 255 级不等,强度越高,说明此通道颜色的强度越大。

这种组合方式,称为三原色光模式。

三原色光模式(RGB color model)

更具体的例子,是三个颜色的手电筒照射在墙壁上:

电筒

如上图所示,只要红绿蓝三色光线汇聚在一起,就能能成为白色。此处对三原色光模式作出一个定理:

  • 三原色的色光以不同的比例相加,以产生多种多样的色光。

  • 三原色的红绿蓝不可能用其他单色光合成。

好了,那么紧接着问题来了:

为什么是这三原色组成世间万色?为什么不是其他颜色?

光是什么?

我们先把三原色放一放。

首先我们知道,太阳光是电磁波。那既然是波,就会有不同的波长。记住这点,这很重要。

波

如上图所示,当不同的波长的电磁波打到人眼上,我们就看到了不同的颜色。例如:

  • 当波长为 650nm 的电磁波射入你的眼睛,那么你就看到了红色。

  • 当波长为 570nm 的电磁波射入你的眼睛,那么你就看到了黄色。

等一下。刚不是说,世间万色是由红,绿,蓝三色合成的吗?跟这有什么关系?

这就要说说,我们为什么能看到颜色。

眼睛是如何感受颜色的?

从生物角度上讲,人的眼睛布满了锥形感光细胞。感光细胞能够感受光波的波长,然后把相应的波长解读成对应的颜色,最后传递给大脑

具体的说,人眼共有三种锥形感光细胞。我们暂时称为红色感光细胞,绿色感光细胞和蓝色感光细胞。三种细胞对光波的敏感度如下:

感光细胞

如上图所示,虽三种细胞仅对红,绿,蓝三色的广波最敏感,但它也能对邻近光波作出反应。注意观察横轴,三种细胞刚好涵盖了 380nm 到 740nm 之间的波长。这部分波长所对应的光谱,就是我们能见到的颜色:红橙黄绿蓝靛紫。

那么……红,绿,蓝到底是怎么合成世间万色的?

如果不同波长的光波同时叠加,大脑就会脑补中间波长的颜色。例如,纯绿+纯红=纯黄。(这真的就叫脑补了。。。)

这个脑补的过程和大脑的计算方法非常复杂,我们不做过多探讨。但我们借此得出一个事实:

「颜色」,是生物体对光波的解读。宇宙本身是没有「颜色」这种概念的。

宇宙只有不同波长的光波,仅此而已。

因此,使用三原色合成其他颜色,实质上是通过欺骗大脑(也不叫欺骗,应当叫利用规则)来达到效果的。我们要注意,这种三原色组成的颜色只对「人」有效。由于其他的动物锥形感光细胞与人类不一致,因此表达效果会有偏差。

太阳为什么是白色的?

我们来看一个极端情况。当你遮上眼睛,没有任何的光波,此时是黑色,对吧。

黑色的对立是白色。

黑白

那问题来了。好像大自然没有「白色」这种颜色对不对。

那白色是怎么回事?

复习一下这张图:

波

首先要知道一个背景知识:太阳光几乎集合了所有波长的光波,并且功率几乎开到了最大。

当红,绿,蓝三色对应的光波都开到最大,我们的大脑便不知道应当翻译成什么颜色。换句话说,无论脑补成什么颜色都不合理。但大脑总得给个解释啊。为了解释这种混合色,于是创造出了一个「没有对应光波」的颜色:

白色。

我们的大脑很神奇对不对。但原理真的是这样子的,这是生物进化的选择。

美术生的困惑

如果美术专业出身的同学可能会说,不对啊,我念书的时候学的是这样子的:

color

是的,没有错。这个模型叫「消减型原色」,而我们上文大幅篇章讲述的叫「叠加型原色」。那「消减型原色」是个什么东西?这个模型的含义是:

某个颜色,能够被反射的波长。

举个例子:红色的纸为什么是红色的?因为它把其他颜色的波长吸收了,只反射了红色的波长。

同理:

  • 白色纸是因为没有吸收任何波长,全部反射,最终所有光波进入你的眼睛,看到了白色;

  • 黑色纸吸收了所有波长,没有反射,因此没有任何光波进入你的眼睛,看到的是黑色。

美术同学就用这个原理来调颜料的。