定义:光照模型又称明暗模型,是生成真实感图形的基础,主要用于物体表面某点处的光亮度的计算,可用描述物体表面光强度的物理公式推导出来。早期光照明模型都是基于经验的模型,只能反映光源直接照射的情况,而一些比较精确的模型,通过模拟物体之间光的相互作用,可产生更好的真实感效果。
在介绍光照模型前,先介绍一下光反射的几种类型:
(1)漫反射光。当光源来自一个方向时,漫反射光均匀向各方向传播,与视点无关,它是由表面的粗糙不平引起的,因而漫反射光的空间分布是均匀的。
(2)镜面反射光。对于理想镜面,反射光集中在一个方向,并遵守反射定律。对一般光滑表面,反射光集中在一个范围内,且由反射定律决定的反射方向光强最大。因此,对于同一点来说,从不同位置所观察到的镜面反射光强是不同的。
(3)环境光。环境光是指光源间接对物体的影响,是在物体和环境之间多次反射,最终达到平衡时的一种光。可近似地认为同一环境下的环境光,其光强分布是均匀的,它在任何一个方向上的分布都相同。
1.局部光照明模型
在真实感图形学中,将仅处理光源直接照射物体表面的光照明模型称为局部光照明模型。其典型代表是 Phong光照明模型,该模型生成图像的真实度已经达到可接受的程度。
Phong光照明模型中用一个常数来模拟环境光,镜面反射光产生的高光区域只反映光源的颜色,镜面反射系数是一个与物体颜色无关的参数,该模型通过改变物体的漫反射系数来控制物体颜色。在 Phong光照明模型中,由于光源和视点都被假定为无穷远,最后光强计算公式就变为物体表面法向量的函数,这样对于当今流行的显示系统中用多边形表示的物体来说,它们中的每个多边形由于法向一致,因而多边形内部像素的颜色都是相同的,而且在不同法向的多边形邻接处,不仅有光强突变,还会产生马赫带效应,即人类视觉系统夸大具有不同常量光强的两个相邻区域之间的光强不连续性为保证多边形之间的光滑过渡,使连续的多边形呈现匀称的光强,出现了增量式光照明模型。其基本思想是在每一个多边形顶点处计算合适的光照明强度或参数,然后在各个多边形内部进行均匀插值,得到多边形的光滑颜色分布。它包含两个主要算法:双线性光强插值和双线性法向插值,它们又被分别称为 Gouraud明暗处理和 Phong明暗处理。
2.整体光照明模型
将可以处理物体之间光照的相互作用的模型称为整体光照明模型。在现有整体光照明模型中,主要有光线跟踪和辐射度两种方法,们是当今真实感图形学中最重要的两个图形绘制技术,得到了广泛应用。
(1)光线跟踪算法
光线跟踪算法是真实感图形学中的主要算法之一,该算法具有原理简单、实现方便和能够生成各种逼真的视觉效果等突出优点。1980年 Whitted提出了第一个整体光照明 whitted模型,并给出一般性光线跟踪算法的范例,综合考虑了光的反射、折射、透射、阴影等。由光源发出的光到达物体表面后,产生反射和折射,光源发出的光称为直接光,物体对直接光的反射或折射称为直接反射和直接折射。相对地,物体表面间对光的反射和折射称为间接反射和间接折射。这些是光线在物体之间的传播方式是光线跟踪算法的基础。最基本的光线跟踪算法是跟踪镜面反射和折射。从光源发出的光遇到物体表面,发生反射和折射,光就改变方向,沿着反射方向和折射方向继续前进,直到遇到新物体。但是光源发出光线,经反射与折射,只有很少部分可以进入人的眼睛。因此,实际光线跟踪算法的跟踪方向与光传播的方向是相反的,而是视线跟踪。光线跟踪算法实际上是光照明物理过程的近似逆过程,这一过程可跟踪物体间的镜面反射光线和规则透射,模拟理想表面的光的传播。
光线跟踪算法的发展可以归纳为两大方面:一是对光线跟踪求交算法的改进,包括光线跟踪不同的景物几何以及利用辅助手段改善光线与景物的求交测试过程等;二是进一步改善光线跟踪技术对整体光照明效果的模拟,如利用分布式光线跟踪模拟镜面反射和规则透射、运动模糊、景物深度、半影等效果,以及利用蒙特卡洛方法将整体漫反射效果结合到光线跟踪算法之中。最近利用正向光线跟踪技术产生环境镜面光照效果的双向光线跟踪技术,以及和辐射度方法相结合的二步法技术,也逐渐受到人们的重视,它们能够较全面地模拟自然界中的光照明效果。显然,光线跟踪对整体照明效果模拟得越精确,其求交计算量也就越大,因此,提出和发展一个高效率的求交算法是光线跟踪技术发展的重要环节和任务。
(2)辐射度方法
尽管光线跟踪算法成功地模拟了景物表面间的镜面反射、规则透射及阴影等整体光照效果,但由于光线跟踪算法的采样特性和局部光照明模型的不完善性,该方法难以模拟景物表面之间的多重漫反射效果,因而不能反映色彩渗透现象。1984年,美国 Cornell大学和日本广岛大学学者分别将热辐射工程中的辐射度方法引入计算机图形学中,用辐射度方法成功模拟了理想漫反射表面间的多重漫反射效果。辐射度方法是继光线跟踪算法后真实感图形绘制技术的一个重要进展,它利用热辐射工程中的能量传递理论,从整体上将环境中各表面上的光能分布较精确地计算出来,从而表现包括面光源在内的复杂环境的整体光照明效果,能模拟诸如色彩渗透、软影、间接光照明(如镜面反射、规则透射产生的间接光照明)等用以前传统技术所不能模拟的特殊效果。经过十多年发展,辐射度方法模拟的场景越来越复杂,图形效果越来越真实。
辐射度方法基于物理学能量平衡原理,采用数值求解技术来近似每一个景物表面的辐射度分布。由于场景中景物表面的辐射度分布与视点选取无关,辐射度方法是一个视点独立(View independent)的算法,这表明当观察者位置改变时,只要重新计算环境的镜面分量即可。辐射度方法基于热辐射工程的能量传递和守恒理论,即在一封闭环境中能量经多重反射后,最终会达到一种平衡状态。由于这种能量平衡状态可用一系统方程来定量表达,因而与以往光照明模型和绘制算法不同,辐射度方法是一种整体求解技术。辐射度方法中计算量约占 90%的形状因子是一纯几何量,所以改变环境中景物表面的色彩、纹理以及环境的照明光源时,将不必更新计算形状因子。事实上一旦得到辐射度系统方程的解,就知道了每个景物表面的辐射度分布,进而可选取任一视点和视线方向对整个场景进行绘制。
3.光透射模型
对于透明或半透明的物体,透射光是在光线与物体表面相交时产生折射,经折射后的光线将穿过物体而在物体另一面射出的现象。视点在折射光线的方向上时,就可以看到透射光。1980年 Whined提出了一个光透射模型并第一次给出光线跟踪算法的范例,实现了 Whitted模型。在简单光照明模型基础上,加上透射光一项,就得到 Whitted光透射模。
1983年Hall进一步给出Hall光透射模型,考虑了漫透射和规则透射光。Hall光透射模型是在 Whitted光透射模型基础上推广而来的,它能够模拟透射高光的效果,实际上就是在 Whitted模型光强计算中加入光源引起的规则透射分量,同时还可处理理想的漫透射。
4.阴影
阴影是现实生活中一个很常见的光照明现象,它是由于光源被物体遮挡而在该物体后面产生的较暗的区域。在真实感图形学中,通过阴影可反映出物体之间的相互关系,增加图形立体效果和真实感。
阴影的区域和形态与光源及物体形状有很大关系。一般只需考虑由点光源产生的阴影,即阴影本影部分,从原理上讲实现非常简单,从阴影产生原因上看,有阴影区域的物体表面都无法看见光源,只要把光源作为观察点,那么任何一种面消隐算法都可用来生成阴影区域。实际上,现有整体光照明模型,如光线跟踪算法和辐射度方法都可很好地处理阴影的生成问题。
5.材质
材质是指某个表面最基础的材料,木质、塑料、金属或玻璃等。在表示三维图形时,用物体对光的反射属性来表达一个物体的材质,这样可将材质看做是物体表面对光的反射特性。一种材质由环境色、扩散色、镜面高亮色等组成,分别说明它对环境光、漫反射光和镜面反射光反射的多少及反射率。材质影响物体颜色反光度和透明度等。例如,一个只反射蓝光的物体,在一束白光照射下就呈蓝色。材质不仅包括表面纹理,还包括物体对光的属性及颜色等,比如金属和木质的物体对光的反射是截然不同的。