# 显示技术
本书的第一个专题将围绕简单图形绘制展开,我们将介绍如何在屏幕上画出我们想要的二维图形或图像。本专题所介绍的技术和方法,将成为渲染三维场景的基础。如同绘画需要先准备颜料和纸、笔,为了在屏幕上绘制图形,也必须先从显示技术讲起。
## 颜色
我们之所以能区分世间万物,依赖于不同的物体在不同的光照和远近下所产生的颜色上的不同,这也是为什么我们能在彩色相片中看出比黑白相片更多的细节。在进行图形绘制之前,我们必须调好我们的“色盘”——然而,颜色的种类是否是无限的?面对如此多种多样的颜色,我们又该如何表示、储存和显示它们呢?
### 颜色的本质
和照相机、摄像机等现代机械设备一样,我们的眼睛也是一个精密的光学仪器,如下图所示。物体发出的多条光线透过晶状体 (可看成凸透镜) 射入眼睛、在视网膜上成像,最终通过视神经的处理成为我们所看到的画面。
```{figure-md}
人眼的结构
```
由此可知,从物理上来说,人眼并不能接收“颜色”,只能接收光,颜色是大脑对光信号感知的产物。由于广义的光线和电磁波是同义语,具体地,我们把人眼能接收并感知的电磁波称为**可见光 (visible light)**。作为一种波动,可见光应当具有频率、波长、振幅等属性,其中前两者是标量、后者是矢量,它们均与人眼识别颜色的过程相关。
```{figure-md}
三棱镜分光实验
```
为了探究人眼“着色”的机理,我们不妨回顾一下经典的棱镜分光实验:太阳光在透过棱镜时会发生折射,由于不同波长的光线偏折角度不同,最终出射了赤橙黄绿青蓝紫的连续色谱。这一个简单的常识向我们透露了下列两条信息:
- 不同波长的可见光具有不同的颜色;
- 一种颜色的光线 (例如“白色”的日光) 可能是由多种不同的可见光组合而成的。
此外,光波中电场振幅的大小决定了光的强度,颜色与光强的定性关系可以从以下思维实验中得出:有两部显示相同画面的显示器,初始时二者对应位置的颜色完全一致,现在我们将一个显示器的亮度调到最高、另一个显示器的亮度调到最低,两台显示器的发光强度有了明显差别,与此同时,其对应位置的颜色也不再相同。一般而言:
- 光强越低时颜色越暗,光强越高时颜色越明。
```{note}
这里我们只提到了光波的波长和振幅。由于光速是频率与波长的乘积,且在固定介质 (如人眼的玻璃体) 中光速是确定的,因此波长将唯一决定其频率。我们无法准确判断究竟是频率还是波长决定了我们的颜色感知。通常人们选取波长来考察,可见光的波长大约在 $400\,\text{nm}$ 到 $780\,\text{nm}$ 范围内。
只含一种波长的光称作**单色光 (monochromatic light)**,由各种波长的单色光混合而成的光称作**复色光 (polychromatic light)**;给定光线,其所含各波长单色光的分布称为**光谱 (spectrum)**。
```
除以上已经得到的三条性质外,实验还给出了下列结论,读者可根据生活体验自行验证:
- 同一种颜色既可能由单色光产生,也可能由复色光产生;
- 不同组成成分的复色光可能产生相同的颜色;
- 两种相同颜色的光线在分别融合另两种相同颜色的光线后仍然维持相同的颜色,无论其各自的光谱如何。
上述讨论已经涉及**色度学 (colorimetry)** {cite}`feynman-lectures-1` 的范畴。色度学通过综合光学、视觉生理学、视觉心理学、心理物理学等多学科的知识,对人的色彩感知进行定性和定量的研究。1854 年,普鲁士物理学家格拉斯曼 (Grassmann) 将前述的生活经验和实验结果加以总结,形成了格拉斯曼定律,该定律是现代色度学的基础。
```{prf:property} 格拉斯曼颜色混合定律
:label: prop-grassman
1. **补色律:**任何一种颜色都有另一种同它混合产生白和灰的颜色;
2. **间色律:**任何两种非补色产生一种新的混合色或介于两者之间的中间颜色;
3. **代替律:**任何不同颜色混合产生的颜色可相互替代;
4. **亮度相加律:**混合色的总亮度为组成混合色的各颜色光亮度的总和;
5. 人的视觉只能分辨颜色的明度、色调和饱和度三种变化。
```
### 颜色空间
倘若我们将色度学给出的规律作为公理,则不难借助代数学的知识构建颜色空间,这将极大地方便我们进一步的探索。首先,我们用数学的语言作如下定义:
```{prf:definition} 颜色空间
满足下列性质的集合 $C$ 被称为颜色空间:
1. 向量加法:对于 $\forall\alpha,\beta\in C$,记颜色 $\alpha+\beta$ 为 $\alpha$ 与 $\beta$ 的混合,满足 $\alpha+\beta\in C$;
2. 纯量乘法:对于 $\forall\alpha\in C$、$\forall k\in[0,+\infty)$,记颜色 $k\alpha$ 为将产生 $\alpha$ 的光强整体放缩到 $k$ 倍的结果,满足 $k\alpha\in C$;
3. 任何单色光的颜色属于 $C$;
4. 黑色 (光强为零时的颜色) 属于 $C$。
```
借助 {prf:ref}`prop-grassman` 可以验证,颜色空间满足向量加法的结合律和交换律、纯量乘法的结合律和分配律,存在向量加法单位元 (黑色)、纯量乘法单位元 (实数 $1$)。因此,只要补上存在向量加法逆元这一条性质,颜色空间就符合形成线性空间的全部要求。从格拉斯曼定律中我们已知颜色空间的维度是 $3$,如果能证明它是线性空间,则任意三个线性无关的颜色将可以通过线性组合产生所有可被人类感知的颜色。这意味着**我们只需要制造三种不同颜色、可调节强度的发光元器件,就能生成并显示所有可能见到的颜色**。
那么,能否为颜色空间补充加法逆元?换言之,能否定义颜色的“消去”呢?