第四章真实感图形学 真实感图形学是计算机图形学中的一个重要组成部分,它的基本要求就是在计算机中生成三维场景的真实 感图形图象。随着计算机图形学和计算机本身的发展,真实感图形学在我们日常的工作、学习和生活中已经 有了非常广泛的应用,象在计算机辅助设计、多媒体教育、虚拟现实系统、科学计算可视化、动画制作、电 影特技模拟、计算机游戏等许多方面,我们都可以看到真实感图形学在其中发挥了重要的作用,而且人们对 于计算机在视觉感受方面的要求越来越严格,这就需要我们研究更多更逼真的真实感图象生成算法 对于场景中的物体,要得到它的真实感图象,就要对它进行透视投影,并作隐藏面的消隐,然后计算可见 面的光照明暗效果,得到场景的真实感图象显示。隐藏面消除是得到场景真实感的一个方面,可以消除图形 的二义性,我们已经在前面的章节中介绍了相关的一些方法。但是,仅仅对场景进行隐藏面消除所得到的图 象真实感是远远不够的,在本章中,我们主要介绍如何处理物体表面的光照明暗效果,通过使用不同的色彩 灰度,来增加图形图象的真实感,这也是场景图象真实感的主要来源。给定一个三维场景及其光照明条件, 如何确定它在屏幕上生成的真实感图象,即确定图象每一个象素的明暗、颜色,是真实感图形学需要解决的 在真实感图形学中,为了模拟现实世界中的场景,我们一般需要知道这个场景的光照明效果的物理模型, 然后我们用一个数学模型来表示它,通过计算这种数学模型可以得到计算机模拟出来的真实感效果。在现实 计算机图形学第四章第101页共36页
计算机图形学 第四章 第 101 页 共 36 页 第四章 真实感图形学 真实感图形学是计算机图形学中的一个重要组成部分,它的基本要求就是在计算机中生成三维场景的真实 感图形图象。随着计算机图形学和计算机本身的发展,真实感图形学在我们日常的工作、学习和生活中已经 有了非常广泛的应用,象在计算机辅助设计、多媒体教育、虚拟现实系统、科学计算可视化、动画制作、电 影特技模拟、计算机游戏等许多方面,我们都可以看到真实感图形学在其中发挥了重要的作用,而且人们对 于计算机在视觉感受方面的要求越来越严格,这就需要我们研究更多更逼真的真实感图象生成算法。 对于场景中的物体,要得到它的真实感图象,就要对它进行透视投影,并作隐藏面的消隐,然后计算可见 面的光照明暗效果,得到场景的真实感图象显示。隐藏面消除是得到场景真实感的一个方面,可以消除图形 的二义性,我们已经在前面的章节中介绍了相关的一些方法。但是,仅仅对场景进行隐藏面消除所得到的图 象真实感是远远不够的,在本章中,我们主要介绍如何处理物体表面的光照明暗效果,通过使用不同的色彩 灰度,来增加图形图象的真实感,这也是场景图象真实感的主要来源。给定一个三维场景及其光照明条件, 如何确定它在屏幕上生成的真实感图象,即确定图象每一个象素的明暗、颜色,是真实感图形学需要解决的 问题。 在真实感图形学中,为了模拟现实世界中的场景,我们一般需要知道这个场景的光照明效果的物理模型, 然后我们用一个数学模型来表示它,通过计算这种数学模型可以得到计算机模拟出来的真实感效果。在现实
世界中,光照明效果一般包括光的反射、光的透射、表面纹理和阴影等。我们把在已知物体物理形态和光源 性质的条件下,能够计算出场景的光照明效果的数学模型称为光照明模型。这种模型可以用描述物体表面光 强度的物理公式推导出来。早期的光照明模型都是基于经验的模型,只能反映光源直接照射的情况,而一些 比较精确的模型,通过模拟物体之间光的相互作用,可以得到令人满意的结果。 在本章中,我们首先介绍颜色视觉,这是真实感图形学的生理基础:然后我们按照光照明模型的发展过程 我们针对当今真实感图形学研究的热点,简单讨论了一些实时真实感图形学的技术,目的是想起一个抛砖引 玉的作用,使我们的图形学研究能够跟上国际的潮流,提高我们的计算机图形学发展水平。 4.1颜色视觉 4.2简单光照明模型 43局部光照明模型 4.4光透射模型 4.5纹理及纹理映射 4.6整体光照明模型 47 时真实感图形学技术 4.1颜色视觉 对于真实感图形学,要产生具有高度真实感的图象,颜色是其中的最重要的部分。在我们的光照明模型中, 我们通常只要分别计算R、G、B三个分量的光强值,就可以得到某个象素点上颜色值,给人以某种颜色的感 觉,这个过程看起来很简单,可是为什么简单的通过三个分量的计算就可以产生颜色感觉,却包含着许多很 复杂的概念,其中涉及到了物理学、心理学、生理学、美学等不同的学科。为了使读者更好的理解我们后面 所讲的光照明模型以及有关真实感图形学的内容,我们首先从人体视觉的角度出发,介绍计算机图形学中颜 色视觉的一些相关知识 4.1.1基本概念 颜色是外来的光刺激作用于人的视觉器官而产生的主观感觉,因而物体的颜色不仅取决于物体本身,而且 还与光源、周围环境的颜色,以及观察者的视觉系统都有关系 从心理学和视觉的角度出发,颜色有如下三个特性:色调(Hue),饱和度( Saturation)和亮度( Lightness) 所谓色调,是一种颜色区别于其他颜色的因素,也就是我们平常所说的红、绿、蓝、紫等:饱和度是指颜色 的纯度,鲜红色的饱和度高,而粉红色的饱和度低:而亮度就是光的强度,是光给人的刺激的强度。与之相 对应,从光学物理学的角度出发,颜色的三个特性分别为:主波长( Dominant Wavelength),纯度( Purity) 和明度( Luminance)。主波长是产生颜色光的波长,对应于视觉感知的色调:光的纯度对应于饱和度,而明 度就是光的亮度。这是从两个不同方面来描述颜色的特性 在三维空间中,我们可以用一个纺锤体把颜色的三种基本特性来表示出来(图4.1.1)。在颜色纺锤体的 垂直轴线上表示白黑系列的亮度变化,顶部是白色,沿着灰度过渡,到底部是黑色。在垂直轴线的上下方向 上,越往上,亮度越大。色调由水平的圆周表示,圆周上的不同角度的点代表了不同色调的颜色,如红、橙、 黄、绿、青、蓝、紫等,圆周中心的色调是中灰色,它的亮度和该水平圆周上各色调的亮度相同。从圆心向 圆周过渡表示同一色调下饱和度的提高。在颜色纺锤体的一个平面圆形上,它们的色调和饱和度不同,而亮 度是相同的。 计算机图形学第四章第102页共36页
计算机图形学 第四章 第 102 页 共 36 页 世界中,光照明效果一般包括光的反射、光的透射、表面纹理和阴影等。我们把在已知物体物理形态和光源 性质的条件下,能够计算出场景的光照明效果的数学模型称为光照明模型。这种模型可以用描述物体表面光 强度的物理公式推导出来。早期的光照明模型都是基于经验的模型,只能反映光源直接照射的情况,而一些 比较精确的模型,通过模拟物体之间光的相互作用,可以得到令人满意的结果。 在本章中,我们首先介绍颜色视觉,这是真实感图形学的生理基础;然后我们按照光照明模型的发展过程, 依次介绍不同的光照明模型,其间,结合不同的光照明效果,还介绍了光透射模型和纹理的基本方法。最后 我们针对当今真实感图形学研究的热点,简单讨论了一些实时真实感图形学的技术,目的是想起一个抛砖引 玉的作用,使我们的图形学研究能够跟上国际的潮流,提高我们的计算机图形学发展水平。 4.1 颜色视觉 4.2 简单光照明模型 4.3 局部光照明模型 4.4 光透射模型 4.5 纹理及纹理映射 4.6 整体光照明模型 4.7 实时真实感图形学技术 4.1 颜色视觉 对于真实感图形学,要产生具有高度真实感的图象,颜色是其中的最重要的部分。在我们的光照明模型中, 我们通常只要分别计算 R、G、B 三个分量的光强值,就可以得到某个象素点上颜色值,给人以某种颜色的感 觉,这个过程看起来很简单,可是为什么简单的通过三个分量的计算就可以产生颜色感觉,却包含着许多很 复杂的概念,其中涉及到了物理学、心理学、生理学、美学等不同的学科。为了使读者更好的理解我们后面 所讲的光照明模型以及有关真实感图形学的内容,我们首先从人体视觉的角度出发,介绍计算机图形学中颜 色视觉的一些相关知识。 4.1.1 基本概念 颜色是外来的光刺激作用于人的视觉器官而产生的主观感觉,因而物体的颜色不仅取决于物体本身,而且 还与光源、周围环境的颜色,以及观察者的视觉系统都有关系。 从心理学和视觉的角度出发,颜色有如下三个特性:色调(Hue),饱和度(Saturation)和亮度(Lightness)。 所谓色调,是一种颜色区别于其他颜色的因素,也就是我们平常所说的红、绿、蓝、紫等;饱和度是指颜色 的纯度,鲜红色的饱和度高,而粉红色的饱和度低;而亮度就是光的强度,是光给人的刺激的强度。与之相 对应,从光学物理学的角度出发,颜色的三个特性分别为:主波长(Dominant Wavelength),纯度(Purity) 和明度(Luminance)。主波长是产生颜色光的波长,对应于视觉感知的色调;光的纯度对应于饱和度,而明 度就是光的亮度。这是从两个不同方面来描述颜色的特性。 在三维空间中,我们可以用一个纺锤体把颜色的三种基本特性来表示出来(图 4.1.1)。在颜色纺锤体的 垂直轴线上表示白黑系列的亮度变化,顶部是白色,沿着灰度过渡,到底部是黑色。在垂直轴线的上下方向 上,越往上,亮度越大。色调由水平的圆周表示,圆周上的不同角度的点代表了不同色调的颜色,如红、橙、 黄、绿、青、蓝、紫等,圆周中心的色调是中灰色,它的亮度和该水平圆周上各色调的亮度相同。从圆心向 圆周过渡表示同一色调下饱和度的提高。在颜色纺锤体的一个平面圆形上,它们的色调和饱和度不同,而亮 度是相同的
白 绿/蓝 紫 蓝 蓝 绿 饱科度红 色趣 绿 黑 图41.1颜色纺锤体 由于颜色是因外来光刺激而使人产生的某种感觉,我们有必要了解一些光的知识。从根本上讲,光是人的 视觉系统能够感知到的电磁波,它的波长在400mm到700mm之间,正是这些电磁波使人产生了红、橙、黄、 绿、蓝、紫等的颜色感觉。某种光可以由它的光谱能量分布P()来表示,其中孔是波长,当一束光的各种 波长的能量大致相等时,我们称其为白光:若其中各波长的能量分布不均匀,则它为彩色光:一束光只包含 种波长的能量,而其他波长都为零时,它是单色光。它们的光谱能量分布分别如图4.1.2、图4.1.3、图 4.1.4所示 计算机图形学第四章第103页共36页
计算机图形学 第四章 第 103 页 共 36 页 由于颜色是因外来光刺激而使人产生的某种感觉,我们有必要了解一些光的知识。从根本上讲,光是人的 视觉系统能够感知到的电磁波,它的波长在 400nm 到 700nm 之间,正是这些电磁波使人产生了红、橙、黄、 绿、蓝、紫等的颜色感觉。某种光可以由它的光谱能量分布 来表示,其中 是波长,当一束光的各种 波长的能量大致相等时,我们称其为白光;若其中各波长的能量分布不均匀,则它为彩色光;一束光只包含 一种波长的能量,而其他波长都为零时,它是单色光。它们的光谱能量分布分别如图 4.1.2、图 4.1.3、图 4.1.4 所示
R 图412白光的光谱能量分布 被长 700 图41.3彩色光的光谱能量分布 量 被长 图414单色光的光谱能量分布 由光线的光谱能量分布来定义我们的颜色是十分麻烦的,事实上,我们可以用主波长、纯度和明度来简洁 的描述任何光谱分布的视觉效果。而且由实验结果知道,光谱与颜色的对应关系是多对一的,也就是说,具 有不同光谱分布的光产生的颜色感觉是有可能一样的。我们称两种光的光谱分布不同而颜色相同的现象为“异 谱同色”。也是由于这种现象的存在,我们必须采用其他的定义颜色的方法,使光本身与颜色一一对应。 4.1.2三色学说 通过以往的在物理学上对光与颜色的研究,我们发现,颜色具有具有恒常性,人们可以根据物体的固有颜 色来感知它们,而不会受外界条件变化的影响,颜色之间的对比效应能够使人区分不同的颜色。同时,颜色 还具有混合性,牛顿在十七世纪后期用棱镜把太阳光分散成光谱上的颜色光带,用实验证明了白光是由很多 颜色的光混合而成;十九世纪初, Yaung提出某一种波长的光可以通过三种不同波长的光混合而复现出来的 假设,红(R)、绿(G)、蓝(B)三种单色光可以作为基本的颜色一原色,把这三种光按照不同的比例混合 就能准确的复现其他任何波长的光,而它们等量混合就可以产生白光。后来 Maxwell用旋转圆盘所作的颜色 混合实验也验证了 Yaung的假设。在此基础上,1862年, Helmhotz进一步提出颜色视觉机制学说,即三色学 说,也称为三刺激理论。到现在,用三种原色能够产生各种颜色的三色原理已经成为当今颜色科学中最重要 的原理和学说 近代的三色学说研究认为,人眼的视网膜中存在着三种椎体细胞,它们包含不同的色素,对光的吸收和反 射特性不同,对于不同的光就有不同的颜色感觉,研究发现,第一种椎体细胞是专门感受红光的红胞,相似 的,第二和第三种椎体细胞则分别感受绿光和蓝光。它们三者共同作用,使人产生了不同的颜色感觉。例如, 当黄光刺激眼睛时,将会引起红、绿两种椎体细胞几乎相同的反应,而只引起蓝细胞很小的反应,这三种不 同椎体细胞的不同程度的兴奋程度的结果产生了黄色的感觉,这正如颜色混合时,等量的红和绿加上极小量 的蓝可以复现黄色是相同。 三色学说是我们真实感图形学的生理视觉基础,我们所采用的RGB颜色模型来以及其他的计算机图形学中 的颜色模型都是根据这个学说提出来的,我们也根据三色学说用RGB来定义我们的颜色。三色学说是我们颜 色视觉中最基础、最根本的理论。 4.1.3CIE色度图 计算机图形学第四章第104页共36页
计算机图形学 第四章 第 104 页 共 36 页 由光线的光谱能量分布来定义我们的颜色是十分麻烦的,事实上,我们可以用主波长、纯度和明度来简洁 的描述任何光谱分布的视觉效果。而且由实验结果知道,光谱与颜色的对应关系是多对一的,也就是说,具 有不同光谱分布的光产生的颜色感觉是有可能一样的。我们称两种光的光谱分布不同而颜色相同的现象为“异 谱同色”。也是由于这种现象的存在,我们必须采用其他的定义颜色的方法,使光本身与颜色一一对应。 4.1.2 三色学说 通过以往的在物理学上对光与颜色的研究,我们发现,颜色具有具有恒常性,人们可以根据物体的固有颜 色来感知它们,而不会受外界条件变化的影响,颜色之间的对比效应能够使人区分不同的颜色。同时,颜色 还具有混合性,牛顿在十七世纪后期用棱镜把太阳光分散成光谱上的颜色光带,用实验证明了白光是由很多 颜色的光混合而成;十九世纪初,Yaung 提出某一种波长的光可以通过三种不同波长的光混合而复现出来的 假设,红(R)、绿(G)、蓝(B)三种单色光可以作为基本的颜色-原色,把这三种光按照不同的比例混合 就能准确的复现其他任何波长的光,而它们等量混合就可以产生白光。后来 Maxwell 用旋转圆盘所作的颜色 混合实验也验证了 Yaung 的假设。在此基础上,1862 年,Helmhotz 进一步提出颜色视觉机制学说,即三色学 说,也称为三刺激理论。到现在,用三种原色能够产生各种颜色的三色原理已经成为当今颜色科学中最重要 的原理和学说。 近代的三色学说研究认为,人眼的视网膜中存在着三种椎体细胞,它们包含不同的色素,对光的吸收和反 射特性不同,对于不同的光就有不同的颜色感觉,研究发现,第一种椎体细胞是专门感受红光的红胞,相似 的,第二和第三种椎体细胞则分别感受绿光和蓝光。它们三者共同作用,使人产生了不同的颜色感觉。例如, 当黄光刺激眼睛时,将会引起红、绿两种椎体细胞几乎相同的反应,而只引起蓝细胞很小的反应,这三种不 同椎体细胞的不同程度的兴奋程度的结果产生了黄色的感觉,这正如颜色混合时,等量的红和绿加上极小量 的蓝可以复现黄色是相同。 三色学说是我们真实感图形学的生理视觉基础,我们所采用的 RGB 颜色模型来以及其他的计算机图形学中 的颜色模型都是根据这个学说提出来的,我们也根据三色学说用 RGB 来定义我们的颜色。三色学说是我们颜 色视觉中最基础、最根本的理论。 4.1.3 CIE 色度图
由三色学说的原理我们知道,任何一种颜色可以用红、绿、蓝三原色按照不同比例混合来得到,可是,给 定一种颜色,采用如何的三原色比例才可以复现出该色,以及这种比例是否唯一,是我们需要立刻解决的问 题,只有解决了这些问题,我们才能给出一个完整的用RGB来定义颜色的方案,而且不同光与颜色的对应关 系也是一一对应的,奠定真实感图形学的颜色视觉基础。 实际上,上述的问题是一个颜色匹配的过程,最终的结果是使通过三原色混合后的光的颜色与对应给定光 的颜色相同。CIE(国际照明委员会)选取的标准红、绿、蓝三种光的波长分别为:红光,R,A=700m 绿光,6,42=546m;蓝光,B,不3=43587。而光颜色的匹配可以用式子表示为 C=rR+gG+bB (4.1.1) 其中权值r、g、b为颜色匹配中所需要的R、G、B三色光的相对量,也就是三刺激的值。1931年,CIE给出 了用等能标准三原色来匹配任意颜色的光谱三刺激值曲线(图4.1.5),这样的一个系统被称为CIE-RGB系 0.4 0.2 被长 图41.5标准三原色匹配任意颜色的光谱三刺激值曲线 在上面的曲线中我们发现,曲线的一部分三刺激值是负数,这表明我们不可能靠混合红、绿、蓝三种光来 匹配对应的光,而只能在给定的光上叠加曲线中负值对应的原色,来匹配另两种原色的混合。对应于在式 (4.1.1)中的权值会有负值,由于实际上不存在负的光强,而且这种计算极不方便,不易理解,人们希望找 出另外一组原色,用于代替CIE-RGB系统,因此,1931年的CIE-XYZ系统利用三种假想的标准原色X(红)、 Y(绿)、Z(蓝),以便使我们能够得到的颜色匹配函数的三刺激值都是正值。类似的,该系统的光颜色匹 配函数定义为如下的一个式子: C=xX +yr +zZ (4.4.2) 在这个系统中,任何颜色都能由三个标准原色的混合(三刺激值是正的)来匹配。这样我们就解决了用怎样 的三原色比例混合来复现给定的颜色光的问题,下面我们来介绍一下得到的上述比例是否唯一的问题。 (图4.1.6),一个颜色刺激(C)就可以表示为这个三维空间中一个以原点为起点的向量,我们把该三维向 量空间称为(R、G、B)三刺激空间,该空间落在第一象限,该空间中的向量的方向由三刺激的值确定,因而 向量的方向代表颜色。为了在二维空间中表示颜色,我们在三个坐标轴上对称的取一个截面,该截面通过(R)、 (G)、(B)三个坐标轴上的单位向量,因而可知截面的方程为(R)+(G)+(B)=1。该截面与三个坐 标平面的交线构成一个等边三角形,它被称为色度图。每一个颜色刺激向量与该平面都有一个交点,因而色 度图可以表示三刺激空间中的所有颜色值,同时交点的个数是唯一的,说明色度图上的每一个点代表不同的 颜色,它的空间坐标表示为该颜色在标准原色下的三刺激值,该值是唯一的。对于三刺激空间中坐标为X、Y Z的颜色刺激向量Q,它与色度图交点的坐标(x,y,z)即三刺激值也被称为色度值,有如下的表示: 2 +y+z X+y+z X (4.1.3) 计算机图形学第四章第105页共36页
计算机图形学 第四章 第 105 页 共 36 页 由三色学说的原理我们知道,任何一种颜色可以用红、绿、蓝三原色按照不同比例混合来得到,可是,给 定一种颜色,采用如何的三原色比例才可以复现出该色,以及这种比例是否唯一,是我们需要立刻解决的问 题,只有解决了这些问题,我们才能给出一个完整的用 RGB 来定义颜色的方案,而且不同光与颜色的对应关 系也是一一对应的,奠定真实感图形学的颜色视觉基础。 实际上,上述的问题是一个颜色匹配的过程,最终的结果是使通过三原色混合后的光的颜色与对应给定光 的颜色相同。CIE(国际照明委员会)选取的标准红、绿、蓝三种光的波长分别为:红光,R, ; 绿光,G, ;蓝光,B, 。而光颜色的匹配可以用式子表示为: (4.1.1) 其中权值 r、g、b 为颜色匹配中所需要的 R、G、B 三色光的相对量,也就是三刺激的值。1931 年,CIE 给出 了用等能标准三原色来匹配任意颜色的光谱三刺激值曲线(图 4.1.5),这样的一个系统被称为 CIE-RGB 系 统。 在上面的曲线中我们发现,曲线的一部分三刺激值是负数,这表明我们不可能靠混合红、绿、蓝三种光来 匹配对应的光,而只能在给定的光上叠加曲线中负值对应的原色,来匹配另两种原色的混合。对应于在式 (4.1.1)中的权值会有负值,由于实际上不存在负的光强,而且这种计算极不方便,不易理解,人们希望找 出另外一组原色,用于代替 CIE-RGB 系统,因此,1931 年的 CIE-XYZ 系统利用三种假想的标准原色 X(红)、 Y(绿)、Z(蓝),以便使我们能够得到的颜色匹配函数的三刺激值都是正值。类似的,该系统的光颜色匹 配函数定义为如下的一个式子: (4.4.2) 在这个系统中,任何颜色都能由三个标准原色的混合(三刺激值是正的)来匹配。这样我们就解决了用怎样 的三原色比例混合来复现给定的颜色光的问题,下面我们来介绍一下得到的上述比例是否唯一的问题。 我们可以知道,用 R、G、B 三原色(实际上是 CIE-XYZ 标准原色)的单位向量可以定义一个三维颜色空间 (图 4.1.6),一个颜色刺激(C)就可以表示为这个三维空间中一个以原点为起点的向量,我们把该三维向 量空间称为(R、G、B)三刺激空间,该空间落在第一象限,该空间中的向量的方向由三刺激的值确定,因而 向量的方向代表颜色。为了在二维空间中表示颜色,我们在三个坐标轴上对称的取一个截面,该截面通过(R)、 (G)、(B)三个坐标轴上的单位向量,因而可知截面的方程为(R)+(G)+(B)=1。该截面与三个坐 标平面的交线构成一个等边三角形,它被称为色度图。每一个颜色刺激向量与该平面都有一个交点,因而色 度图可以表示三刺激空间中的所有颜色值,同时交点的个数是唯一的,说明色度图上的每一个点代表不同的 颜色,它的空间坐标表示为该颜色在标准原色下的三刺激值,该值是唯一的。对于三刺激空间中坐标为 X、Y、 Z 的颜色刺激向量 Q,它与色度图交点的坐标(x,y,z)即三刺激值也被称为色度值,有如下的表示: (4.1.3)