什么是颜色
颜色是有不同波长的光发出的能量对人眼产生刺激后,人产生的一种感觉。
- 不同波长的电磁波对应不同的颜色
- 人眼对在380nm(紫光)到760nm(红光)波长的光很敏感
光的光谱分布
光是一种多种波长,每种波长的强度不同的电磁波的混合。对于白光,就意味光中包含的所有波长的电磁波具有一样的强度。
光谱分布就是一个光的强度和波长的函数。
由于颜色就是光对人眼产生的刺激,因此颜色也就可以用光谱分布表示。但是使用光谱分布来表示颜色太复杂,并且现实中也存在异谱同色的现象。
颜色表示方法
RGB颜色空间
RGB是被用得最广泛的颜色空间,颜色用三个通道(r, g, b)表示,r表示red,g表示green,b表示blue。通常每个通道中值都是0~1的浮点数,或者用8比特表示的0~255之间的数。
人类的视觉系统也是基于RBG三原色的。
但是有些颜色并不能由RBG三原色的组合表示,因为有些颜色的R通道是负的。
CMY颜色空间
颜色用三个通道(c, m, y)表示,c表示cyan(青),m表示magenta(品红),y表示yellow,它和RBG颜色空间的对应方式为:
CMY颜色空间也被叫做减色系统,因为RBG颜色空间随着每个通道值的增加颜色逐渐从黑变为白,而CMY颜色空间的颜色随着每个通道值的增加颜色逐渐从白色变为黑色。
HSV颜色空间
HSV颜色空间用色调(Hue),饱和度(Saturation),明度(Value of Brightness)来分别颜色。
- 色调意味着基础颜色,它是表明不同颜色的主要因素,用角度度量,取值范围为0°~360°,从红色开始按逆时针方向计算,红色为0°,绿色为120°,蓝色为240°。它们的补色是:黄色为60°,青色为180°,紫色为300°。
- 饱和度表示颜色的纯度,取值为0~1的浮点数,饱和度越低,颜色越接近白色。
- 明度表示颜色的明亮程度,亮度越低,颜色越接近黑色。
RGB和CMY颜色模型都是面向硬件的,而HSV颜色模型是面向用户的。
YUV,YCbCr颜色空间
Y分量表示明亮度(Lumiance或着Luma),U(Cr)和V(Br)表示色度,人眼一般对亮度信息比较敏感,对颜色信息比较不敏感。
YUV 用在 模拟 PAL or 模拟 NTSC视频格式,不用在数字视频格式
YCbCr 是用于数字视频表示的则是色度(Chrominance或Chroma).
YUV(YCbCr)的颜色空间存储有几种方式:plane、bi-plane、packed,
plane的存储方式为先存储所有的像素中的Y通道的值,然后存储所有像素中的U通道的值,然后是U通道的值(不一定所有像素都有U和V值,这和采样有关,后续再说明)。bi-plane存储方式为先存储所有像素中的Y通道值作为一个plane,然后交替存储像素中的U和V的值作为第二个plane。packed存储方式为交替存储每个像素中的YUV值。
采样率(数字信号才谈采样),YCbCr颜色空间一般有4:4:4,4:2:2和4:2:0这几种采样方式。4:4:4——每采样一个Y通道,同时采样一个Cb、Cr通道。4:2:2——每采样两个Y,采样一个Cb和Cr,要显示4:2:2的YCbCr数据,首先将其转换为4:4:4的YCbCr数据,使用内插生成缺少的Cb和Cr样本。4:2:0并不意味着只有Cb分量,没有Cr分量。它指的是对于每行扫描线来说,4:2:0——只有一种色度分量以2:1的抽样率存储。相邻的扫描线存储不同的色度分量,也就是说一行是4:2:0的话,下一行就是4:0:2,下一行又是4:2:0,以此类推。要显示4:2:0的YCbCr数据,首先将其转换为4:4:4的YCbCr数据,使用内插生成新的Cb和Cr样本。
CIE XYZ颜色空间
由CIE(International Commission on Illumination)提出,它可以用来表示所有的可见光
图像和像素
//TODO:虽然知道相关概念,但还是写一下吧。
网格绘制
在计算机图形中,表示一个3D图形一般使用三角网格或者参数曲线(曲面)。一个三角网格数据结构一般包括一个三角形数组,
光照模型
当光照射到物体表面时,物体对光会发生反射、透射、吸收、衍射、折射、和干涉,其中被物体吸收的部分转化为热,反射、透射的光进入人的视觉系统,使我们能看见物体。为模拟这一现象,我们建立一些数学模型来替代复杂的物理模型,这些模型就称为明暗效应模型或者光照明模型。
局部光照
在真实感图形学中,仅处理光源直接照射物体表面的光照明模型被称为局部光照明模型。
全局光照
全局光照模型是基于光学物理原理的,光照强度的计算依赖于光能在现实世界中的传播情况,考虑光线与整个场景中各物体表面及物体表面间的相互影响,包括多次反射 、透射 、散射等。因此,与局部光照模型相比,全局光照模型需要相当大的计算量 ,但同时也能取得非常逼真的真实效果 。