《光照模型优秀课件.ppt》由会员分享,可在线阅读,更多相关《光照模型优秀课件.ppt(53页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、光照模型光照模型第1页,本讲稿共53页3.确定场景中的所有确定场景中的所有可见面可见面,这需要使用隐藏面消除算法,这需要使用隐藏面消除算法将被其它物体遮挡的不可见面消去。将被其它物体遮挡的不可见面消去。4.计算场景中可见面的计算场景中可见面的颜色颜色,严格地说,就是根据基于,严格地说,就是根据基于光学物理的光照明模型计算可见面投射到观察者眼中光学物理的光照明模型计算可见面投射到观察者眼中的光亮度大小和颜色组成,并将它转换成适合图形设的光亮度大小和颜色组成,并将它转换成适合图形设备的颜色值,从而确定投影画面上每一象素的颜色,备的颜色值,从而确定投影画面上每一象素的颜色,最终生成图形。最终生成图形
2、。第2页,本讲稿共53页2第3页,本讲稿共53页3 当光照射到物体表面时,光线可能被吸收、当光照射到物体表面时,光线可能被吸收、反射和透射。被物体吸收的部分转化为热,反射、反射和透射。被物体吸收的部分转化为热,反射、透射的光进入人的视觉系统,使我们能看见物体。透射的光进入人的视觉系统,使我们能看见物体。为模拟这一现象,需要建立一些数学模型来替代复为模拟这一现象,需要建立一些数学模型来替代复杂的物理模型,这些模型就称为杂的物理模型,这些模型就称为明暗效应模型明暗效应模型或或者者光照光照(明明)模型模型。应用光照模型可计算物体表面向空间给定方向应用光照模型可计算物体表面向空间给定方向辐射的光亮度。
3、辐射的光亮度。第4页,本讲稿共53页4 在光栅图形系统上显示的三维图形的真实在光栅图形系统上显示的三维图形的真实感取决于能否成功地模拟明暗效应,这要求设感取决于能否成功地模拟明暗效应,这要求设计较好的明暗模型,用以计算可见表面应该显计较好的明暗模型,用以计算可见表面应该显示的亮度和彩色。示的亮度和彩色。明暗模型并不需要精确地考虑真实世界中明暗模型并不需要精确地考虑真实世界中光线和表面的性质,而只需要在兼顾精确程度光线和表面的性质,而只需要在兼顾精确程度和计算成本的要求下,追求更好的显示效果。和计算成本的要求下,追求更好的显示效果。通常设计一个明暗模型需要考虑的主要问题是通常设计一个明暗模型需要
4、考虑的主要问题是照明特性照明特性、表面特性表面特性和和观察角度观察角度。第5页,本讲稿共53页5 照明特性照明特性是指可见表面被照明的情况,主要有光源的是指可见表面被照明的情况,主要有光源的数目和性质,环境光及阴影效应等。数目和性质,环境光及阴影效应等。表面特性表面特性主要是指表面对入射光线的反射、折射或透明的主要是指表面对入射光线的反射、折射或透明的不同情形,还有表面的纹理及颜色等。不同情形,还有表面的纹理及颜色等。观察角度观察角度是指观察景物时观察者相对可见表面所在的位置。是指观察景物时观察者相对可见表面所在的位置。已经有许多不同的明暗模型都较好地处理了上述各已经有许多不同的明暗模型都较好
5、地处理了上述各问题。不同明暗模型的区别主要在于模拟的方法,实现问题。不同明暗模型的区别主要在于模拟的方法,实现的复杂程度,及取得的显示效果等方面。的复杂程度,及取得的显示效果等方面。第6页,本讲稿共53页6 一般来说,明暗模型可以分解为三个部分,即一般来说,明暗模型可以分解为三个部分,即漫射漫射照明照明、具体光源的照射具体光源的照射及及透射效应透射效应。具体光源的照明产生。具体光源的照明产生的效果又分为的效果又分为漫反射漫反射和和镜面反射镜面反射两部分。两部分。漫射照明漫射照明 漫反射漫反射明暗模型明暗模型 具体光源的照射具体光源的照射 镜面反射镜面反射 透射效应。透射效应。第7页,本讲稿共5
6、3页7 简单的光照模型仅考虑光源照射在物体表面产生的反射简单的光照模型仅考虑光源照射在物体表面产生的反射光。这种光照模型通常假定物体是光滑的且由理想材料构成,光。这种光照模型通常假定物体是光滑的且由理想材料构成,所生成的图形可以模拟出不透明物体表面的明暗过渡,具有所生成的图形可以模拟出不透明物体表面的明暗过渡,具有一定的真实感效果。这类光照明模型称为一定的真实感效果。这类光照明模型称为局部光照明模型局部光照明模型。复杂的光照明模型除了考虑上述因素之外,还要考虑复杂的光照明模型除了考虑上述因素之外,还要考虑周围环境的光对物体表面的影响。如光亮平滑的物体表面周围环境的光对物体表面的影响。如光亮平滑
7、的物体表面会将环境中其它物体映像在表面上,而通过透明物体也可会将环境中其它物体映像在表面上,而通过透明物体也可看到其后的环境景象。这类光照模型称为看到其后的环境景象。这类光照模型称为整体光照模型整体光照模型,它,它能模拟出境面映像、透明等精细的光照明效果。能模拟出境面映像、透明等精细的光照明效果。第8页,本讲稿共53页8 为了表现自然界中的为了表现自然界中的阴影阴影,在应用光照模型,在应用光照模型时还需要物体表面是否位于阴影区内,以取舍相应时还需要物体表面是否位于阴影区内,以取舍相应光源的照明影响。光源的照明影响。更精致的真实感图形绘制还要考虑物体表面的更精致的真实感图形绘制还要考虑物体表面的
8、细节细节纹理纹理,这可以通过一种称为,这可以通过一种称为“纹理映射纹理映射”的的技术把已有的平面花纹图案映射到物体表面上,技术把已有的平面花纹图案映射到物体表面上,并在应用光照明模型时将这些花纹的颜色考虑并在应用光照明模型时将这些花纹的颜色考虑进去。物体表面细节的模拟使绘制的图形更接进去。物体表面细节的模拟使绘制的图形更接近自然景物。近自然景物。第9页,本讲稿共53页9 第10页,本讲稿共53页10第11页,本讲稿共53页11第一节第一节 漫反射及具体光源的照明漫反射及具体光源的照明1环境光环境光 在多数实际环境中,存在由于许多物体表面多次反在多数实际环境中,存在由于许多物体表面多次反射而产生
9、的均匀的照明光线,这就是射而产生的均匀的照明光线,这就是环境光线环境光线。环境光。环境光线的存在使物体得到线的存在使物体得到漫射照明漫射照明。这时亮度可以如下简单地计算:这时亮度可以如下简单地计算:其中其中I是可见表面的亮度,是可见表面的亮度,Ia是环境光线的总亮度,是环境光线的总亮度,Ka是是物体表面对环境光线的反射系数,它在物体表面对环境光线的反射系数,它在0到到1之间,与表面之间,与表面的性质有关,表明了有多少环境光线从物体的表面反射出的性质有关,表明了有多少环境光线从物体的表面反射出去。去。第12页,本讲稿共53页12 2漫反射漫反射 具体光源具体光源在物体表面可以引起在物体表面可以引
10、起漫反射漫反射和和镜面反射镜面反射。漫反。漫反射是指来自具体光源的能量到达表面上的某一点后,就均匀射是指来自具体光源的能量到达表面上的某一点后,就均匀地向各个方向散射出去,使得观察者从不同角度观察时,这地向各个方向散射出去,使得观察者从不同角度观察时,这一点呈现的亮度是相同的。这样漫反射与观察者的位置是无一点呈现的亮度是相同的。这样漫反射与观察者的位置是无关的。通常不光滑的粗糙表面总是呈现出漫反射的效果。关的。通常不光滑的粗糙表面总是呈现出漫反射的效果。Lambert定律指出,定律指出,漫反射漫反射的效果与表面相对于光源的的效果与表面相对于光源的取向有关,即:取向有关,即:其中其中Id是漫反射
11、引起的可见表面上一点的亮度。是漫反射引起的可见表面上一点的亮度。Ip是点光源是点光源发出的入射光线引起的亮度。发出的入射光线引起的亮度。Kd是漫反射系数,取值在是漫反射系数,取值在0到到1之间,随物体材料不同而不同。之间,随物体材料不同而不同。是可见表面法向是可见表面法向N和点光源和点光源方向方向L之间的夹角,即入射角,它应该在之间的夹角,即入射角,它应该在0到到90之间。之间。第13页,本讲稿共53页13漫反射系数漫反射系数k kd d介于介于0 0,1 1之间的球面,在一点光源照射下产生的漫之间的球面,在一点光源照射下产生的漫反射。反射。k ka a=0.0=0.0k kd d=0.00.
12、00.20.20.40.40.60.60.80.81.01.0NL平面平面第14页,本讲稿共53页14 假定向量假定向量N和和L都已经正规化,即已经是长度都已经正规化,即已经是长度为为1的单位向量,这样就可以使用向量的数量积或内的单位向量,这样就可以使用向量的数量积或内积。因为这时积。因为这时于是得:于是得:Id=IpKd(LN)(3)第15页,本讲稿共53页15 考虑将环境光线和漫反射的效果结合起来,计算考虑将环境光线和漫反射的效果结合起来,计算亮度的公式应该写成:亮度的公式应该写成:I=IaKa+IpKd(LN)(4)考虑到光线随距离增加而减弱这一情况。设考虑到光线随距离增加而减弱这一情况
13、。设R是光线从光源发出到达表面再返回到视点的距离,是光线从光源发出到达表面再返回到视点的距离,于是可以把(于是可以把(4)改为:)改为:I=Ia Ka+Ip Kd(LN)/R2 (5)第16页,本讲稿共53页16 但事但事实实上公式(上公式(5)实际应实际应用的效果不好。因用的效果不好。因为对为对于平行于平行投影,光源在无投影,光源在无穷远处穷远处,故距离,故距离R成成为为无无穷穷大。大。对对于透于透视视投投影,影,1/R2也常常有很大的数也常常有很大的数值值范范围围而使效果不好。一种比而使效果不好。一种比较较逼真的效果,可通逼真的效果,可通过过用用r+k代替代替R2来获得:来获得:I=IaK
14、a+IpKd(LN)/(r+k)(6)其中其中r是光源到表面的距离,是光源到表面的距离,k是是根据经验选取的一个常数。根据经验选取的一个常数。在许多情形中,与景物的内部距离相比,光源与景物之在许多情形中,与景物的内部距离相比,光源与景物之间的距离大得多。例如太阳光照射一个城市的情形。在这种间的距离大得多。例如太阳光照射一个城市的情形。在这种情形中,可以假定从光源发出的照明作用在整个景物上是恒情形中,可以假定从光源发出的照明作用在整个景物上是恒定的,而可以完全不考虑由于距离所引起的变化。定的,而可以完全不考虑由于距离所引起的变化。第17页,本讲稿共53页173.镜面反射与镜面反射与Phong模型
15、模型 镜面反射是指来自具体光源的光能到达可见表面上的镜面反射是指来自具体光源的光能到达可见表面上的某一点后,主要沿着由入射角等于反射角所决定的方向传某一点后,主要沿着由入射角等于反射角所决定的方向传播,从而播,从而使得观察者从不同角度观察时,这一点呈现的亮度并使得观察者从不同角度观察时,这一点呈现的亮度并不相同。在任何有光泽的表面上都可以观察到镜面反射的效果。不相同。在任何有光泽的表面上都可以观察到镜面反射的效果。在理想的光泽表面上,例如在非常好的镜面上,反在理想的光泽表面上,例如在非常好的镜面上,反射光线只是在由入射角等于反射角所确定的方向上才有。射光线只是在由入射角等于反射角所确定的方向上
16、才有。这意味着只有当观察者相对表面的方向这意味着只有当观察者相对表面的方向V与反射光线的方与反射光线的方向向R之间的夹角之间的夹角 为零时,才能看到镜面反射引起的反射为零时,才能看到镜面反射引起的反射光线。对于不是非常理想的光泽表面,例如一个苹果,光线。对于不是非常理想的光泽表面,例如一个苹果,反射光线引起的亮度随着反射光线引起的亮度随着 的增大而迅速下降。的增大而迅速下降。第18页,本讲稿共53页18 由由Phong Bui-Tuong提出的光照明模型,用提出的光照明模型,用 来近似来近似反射光线引起的亮度随着反射光线引起的亮度随着 增大而下降的速率。增大而下降的速率。n取值一般在取值一般在
17、1到到2000之间,决定于反射表面的有关性质。对于理想的反之间,决定于反射表面的有关性质。对于理想的反射表面,射表面,n就是无穷大。这里选用就是无穷大。这里选用 ,是以经验观察为基,是以经验观察为基础的。础的。LNRV指向点光源反射方向指向观察点第19页,本讲稿共53页19 对实际物质来说,被镜面反射的入射光的数量是与对实际物质来说,被镜面反射的入射光的数量是与入射角入射角有关的。如果将镜面反射光的百分数记为有关的。如果将镜面反射光的百分数记为W(),那么就可以将计算表面亮度的公式(,那么就可以将计算表面亮度的公式(6)修改而得到:修改而得到:假定反射光线的方向向量假定反射光线的方向向量R和指
18、向观察点的向量和指向观察点的向量V都已经都已经正规化,即已经是长度为正规化,即已经是长度为1的单位向量,于是可以简单地的单位向量,于是可以简单地利用向量内积计算余弦值:利用向量内积计算余弦值:。第20页,本讲稿共53页20 对对W(),通常根据经验选取一个常数,通常根据经验选取一个常数Ks来代替,这样公式来代替,这样公式(7)可写成下面更容易计算的形式:)可写成下面更容易计算的形式:实验表明,应用计算公式实验表明,应用计算公式(8)已经)已经可以得到很好的具有明可以得到很好的具有明暗表现的画面,这个公式是形成具有明暗表现画面的良好基础。暗表现的画面,这个公式是形成具有明暗表现画面的良好基础。第
19、21页,本讲稿共53页21 对于彩色表面,上述各公式也可以应用,只对于彩色表面,上述各公式也可以应用,只需分别应用于对各颜色分量的计算。例如,选择需分别应用于对各颜色分量的计算。例如,选择通常的红、绿、蓝颜色系统,这时上述公式中有通常的红、绿、蓝颜色系统,这时上述公式中有关亮度及反射系数等,就要看做是三元向量。通关亮度及反射系数等,就要看做是三元向量。通过分别对各颜色分量进行计算,就可以完成对彩过分别对各颜色分量进行计算,就可以完成对彩色表面的亮度计算。色表面的亮度计算。第22页,本讲稿共53页224光光的衰减的衰减 光在传播的过程中,其能量会衰减。光的传光在传播的过程中,其能量会衰减。光的传
20、播过程分为两个阶段:从光源到物体表面的传播播过程分为两个阶段:从光源到物体表面的传播及从物体表面到人眼的传播。光的第一个传播阶及从物体表面到人眼的传播。光的第一个传播阶段的衰减使物体表面的入射光强度变弱,第二个段的衰减使物体表面的入射光强度变弱,第二个阶段的衰减使人眼接受到的物体表面的反射光的阶段的衰减使人眼接受到的物体表面的反射光的强度变弱,总的效果是使物体表面的亮度下降。强度变弱,总的效果是使物体表面的亮度下降。第23页,本讲稿共53页231)光在光源到物体表面的过程中的衰减)光在光源到物体表面的过程中的衰减 在同一光源的照射下,距光源近的物体看在同一光源的照射下,距光源近的物体看起来亮,
21、而距光源较远的物体看起来暗,这是因起来亮,而距光源较远的物体看起来暗,这是因为光在从光源到物体表面的传播过程中发生了衰为光在从光源到物体表面的传播过程中发生了衰减。衰减比例为光的传输距离平方的倒数,若以减。衰减比例为光的传输距离平方的倒数,若以衰减函数衰减函数f(d)来表示衰减的比例,则来表示衰减的比例,则 其中,其中,d为光的传播距离。为光的传播距离。第24页,本讲稿共53页24 以上的衰减函数很简单,但应用于本节的光照以上的衰减函数很简单,但应用于本节的光照模型常常不能产生好的效果。虽然这种变化规律对模型常常不能产生好的效果。虽然这种变化规律对点光源来说是正确的,但真实的世界中物体并不是点
22、光源来说是正确的,但真实的世界中物体并不是以点光源照射的。为了弥补点光源的不足,产生真以点光源照射的。为了弥补点光源的不足,产生真实感更强的图形,一个有效的衰减函数的取法如下:实感更强的图形,一个有效的衰减函数的取法如下:f(d)=min(1/(C0+C1d+C2d2),1)用户可以调节用户可以调节C0,C1,C2的值以控制的值以控制 f(d)变化的快慢,变化的快慢,常数常数C0 用来防止用来防止f(d)变得过大。变得过大。f(d)的最大值为的最大值为1。考虑考虑f(d),得到光照明计算式,得到光照明计算式 I=KaIa+f(d)IpKd(LN)+Ks(RV)n 第25页,本讲稿共53页25
23、为模拟光在这段传播过程中的衰减,许多系为模拟光在这段传播过程中的衰减,许多系统采用统采用深度暗示技术深度暗示技术(Depth Cueing)。深度暗示技。深度暗示技术最初用于线框图形的显示,使距视点远的比近术最初用于线框图形的显示,使距视点远的比近的点暗一些。经过改进,这种技术现在同样适用的点暗一些。经过改进,这种技术现在同样适用于真实感图形的显示。于真实感图形的显示。首先,在投影坐标系(记为首先,在投影坐标系(记为xyz)中定义两)中定义两个平面个平面Z=Zf,Z=Zb,分别为前参考面与后参考面,分别为前参考面与后参考面,并赋予比例因子并赋予比例因子Sf和和Sb(Sf,Sb0,1)。2)光在
24、物体表面到人眼过程中的衰减)光在物体表面到人眼过程中的衰减第26页,本讲稿共53页26 给定物体上一点的深度值给定物体上一点的深度值Z0,该点对应,该点对应的比例因子的比例因子S0这样来确定:这样来确定:当当Z0Zf时(时(Z0较较Zf更近),取更近),取S0=Sf 当当Z0Zf)时,)时,I=I,即亮度没有被,即亮度没有被衰减。当物体位于后裁剪面之后(衰减。当物体位于后裁剪面之后(Z0Zb时,时,I=Idc=0,即亮度被衰减为,即亮度被衰减为0。而当。而当Z0Zb,Zf时,时,I=S0I,亮度被部分衰减。由此可以产生真实效,亮度被部分衰减。由此可以产生真实效果较好的图形。果较好的图形。第29
25、页,本讲稿共53页29第二节第二节 多边形网的明暗处理多边形网的明暗处理 多边形网方法是指用若干多边形表面去拟多边形网方法是指用若干多边形表面去拟合任意形状复杂形体的方法。对用多边形网方合任意形状复杂形体的方法。对用多边形网方法表现的任意形体,形成明暗有三种基本的方法表现的任意形体,形成明暗有三种基本的方法:法:常数明暗法(均匀着色法)常数明暗法(均匀着色法)亮度插值明暗法亮度插值明暗法(Gouraud着色方法)着色方法)法向量插值明暗法(法向量插值明暗法(Phong着色着色方法)方法)这三种方法每个比前一个复杂。在应用这三种这三种方法每个比前一个复杂。在应用这三种方法时,各种实际计算亮度的明
26、暗模型都可以使用。方法时,各种实际计算亮度的明暗模型都可以使用。第30页,本讲稿共53页301常数明暗法常数明暗法 常数明暗法又称常数明暗法又称均匀着色法均匀着色法,就是对每个多边形表面,就是对每个多边形表面,整个地用一个亮度值(或颜色值)。整个地用一个亮度值(或颜色值)。应用这种方法,应该有以下假设成立:应用这种方法,应该有以下假设成立:(1)光源在无穷远处。这样在多边形表面上的任意点,上光源在无穷远处。这样在多边形表面上的任意点,上节讨论过的节讨论过的LN是常数。是常数。(2)观察者在无穷远处。这样在多边形表面上的任意点,上节讨观察者在无穷远处。这样在多边形表面上的任意点,上节讨论过的论过
27、的RV也是常数。也是常数。(3)该多边形表面代替了被模拟的真实表面,而并不是对一该多边形表面代替了被模拟的真实表面,而并不是对一个曲面的近似。个曲面的近似。如果前面两个假设不管那一个不成立,那么有关的量,如果前面两个假设不管那一个不成立,那么有关的量,例如例如L和和V,可以采用平均值,比方采用在多边形表面中心,可以采用平均值,比方采用在多边形表面中心处求得的值。处求得的值。第31页,本讲稿共53页31 假设假设(3)常常会产生较大误差。这时用来逼近曲面的常常会产生较大误差。这时用来逼近曲面的各多边形表面可能会被分辨出来。由于每个小面与其相各多边形表面可能会被分辨出来。由于每个小面与其相邻的小面
28、在亮度上常有差别,所以在显示图形时就能看邻的小面在亮度上常有差别,所以在显示图形时就能看到这种差别,这种差别由于到这种差别,这种差别由于Mach带效应而得到加强。带效应而得到加强。Mach带效应带效应是是指指当亮度发生不连续的突然变化时,看上当亮度发生不连续的突然变化时,看上去会有一种边缘增强的感觉。视觉上会感到边缘的亮侧去会有一种边缘增强的感觉。视觉上会感到边缘的亮侧更亮,暗侧更暗。更亮,暗侧更暗。Mach带效应是一种由人类视觉系统加带效应是一种由人类视觉系统加工处理而产生的一种感受现象。工处理而产生的一种感受现象。第32页,本讲稿共53页32第33页,本讲稿共53页332Gouraud方法
29、方法 亮度(或颜色)插值明暗法,通常被称为亮度(或颜色)插值明暗法,通常被称为Gouraud着色方法。这种方法可以消除多边形面上着色方法。这种方法可以消除多边形面上亮度变化的不连续性,但是不能完全消除由于亮度变化的不连续性,但是不能完全消除由于Mach带效应引起的亮或黑的带。增加逼近空间形带效应引起的亮或黑的带。增加逼近空间形体的多边形表面的数目,体的多边形表面的数目,Mach带效应可以随之减带效应可以随之减弱。弱。第34页,本讲稿共53页34亮度(或颜色)插值明暗法处理过程有以下四个步亮度(或颜色)插值明暗法处理过程有以下四个步骤:骤:(1)计算各多边形表面的法向量。计算各多边形表面的法向量
30、。(2)计算各顶点的法向量。这里顶点的法向,指共享该计算各顶点的法向量。这里顶点的法向,指共享该顶点的所有多边形表面法向的平均值。如果有一条边顶点的所有多边形表面法向的平均值。如果有一条边是作为边界准备显示出来的,可以对这条边的每个顶是作为边界准备显示出来的,可以对这条边的每个顶点,计算两个法向量,每个是一侧各边形表面法向量点,计算两个法向量,每个是一侧各边形表面法向量的平均值。的平均值。第35页,本讲稿共53页35(3)计算各顶点的亮度。因为各顶点的法向已经求得,计算各顶点的亮度。因为各顶点的法向已经求得,所以已经可以利用上节讨论的计算亮度的公式进行所以已经可以利用上节讨论的计算亮度的公式进
31、行计算。计算。(4)计算各多边形表面上任意点处的亮度值,实行计算各多边形表面上任意点处的亮度值,实行对多边形表面的明暗处理。做法是先利用顶点的对多边形表面的明暗处理。做法是先利用顶点的亮度值,在边上做线性插值,求得边上的亮度值。亮度值,在边上做线性插值,求得边上的亮度值。再用之在扫描线上做线性插值,从而求得多边形再用之在扫描线上做线性插值,从而求得多边形面内任意点处的亮度值。面内任意点处的亮度值。第36页,本讲稿共53页36第37页,本讲稿共53页37第38页,本讲稿共53页38 沿多边形各边的亮度插值可以很容易地与以沿多边形各边的亮度插值可以很容易地与以前讨论过的多边形填充的扫描线算法结合起
32、来。前讨论过的多边形填充的扫描线算法结合起来。对于每一条边,可以将起始亮度和在对于每一条边,可以将起始亮度和在y方向上单方向上单位长度所发生的亮度变化值存贮起来。位长度所发生的亮度变化值存贮起来。算法运行时,每前进一条扫描线,就对变化算法运行时,每前进一条扫描线,就对变化值做一次加法。在每条扫描线上,用截得多边形值做一次加法。在每条扫描线上,用截得多边形线上的亮度做线性插值线上的亮度做线性插值。第39页,本讲稿共53页393Phong方法方法 该方法称为法向插值着色方法或该方法称为法向插值着色方法或Phong着色方着色方法。这个方法是对法向量进行插值,而不是对亮度法。这个方法是对法向量进行插值
33、,而不是对亮度进行插值。在求得各顶点法向后,求多边形边上各进行插值。在求得各顶点法向后,求多边形边上各点及多边形面内任意点处法向所用的插值方法,与点及多边形面内任意点处法向所用的插值方法,与亮度插亮度插值明暗法中进行插值计算的方法相同。因此这值明暗法中进行插值计算的方法相同。因此这个插值也可以很好地应用前面提到的扫描线算法。个插值也可以很好地应用前面提到的扫描线算法。第40页,本讲稿共53页40 求得扫描线上每点的法向量后,在每点处实求得扫描线上每点的法向量后,在每点处实际计算亮度,可以应用任何一种光照明模型。如际计算亮度,可以应用任何一种光照明模型。如果应用镜面反射,比起亮度插值法会得到明显
34、的果应用镜面反射,比起亮度插值法会得到明显的改进,因为强光能更加真实地得到反映。即使不改进,因为强光能更加真实地得到反映。即使不应用镜面反射,法向插值的结果也比亮度插值的应用镜面反射,法向插值的结果也比亮度插值的结果好。这是因为对每一点都使用法向量的近似结果好。这是因为对每一点都使用法向量的近似值,使得可以减少值,使得可以减少Mach带效应引起的问题。但另带效应引起的问题。但另一方面,对每一点都要计算亮度,使得计算量大一方面,对每一点都要计算亮度,使得计算量大为增加。为增加。第41页,本讲稿共53页41Phong方法绘制多边形的步骤:方法绘制多边形的步骤:(1)计算多边形的单位法矢量。)计算多
35、边形的单位法矢量。(2)计算多边形顶点的单位法向量。)计算多边形顶点的单位法向量。(3)在扫描线消隐算法中,对多边形顶点的法向)在扫描线消隐算法中,对多边形顶点的法向量进行双线性插值,计算出多边形内部(扫描线上量进行双线性插值,计算出多边形内部(扫描线上位于多边形内部)各点的法向量。位于多边形内部)各点的法向量。第42页,本讲稿共53页42第43页,本讲稿共53页43同样,采用如下增量方法可以提高计算速度。同样,采用如下增量方法可以提高计算速度。当扫描线当扫描线y递增一个单位变为递增一个单位变为y+1时,时,NA,NB的增量分别的增量分别为为NA,NB,即,即 其中其中当当x递增一个单位(递增
36、一个单位(P点沿扫描右移一个单位)时,点沿扫描右移一个单位)时,NP增量为增量为NP即即其中其中(4)利用光照明模型计算)利用光照明模型计算P点的颜色。点的颜色。第44页,本讲稿共53页44 Phong着色方法中,多边形上每一点需要计算一次光着色方法中,多边形上每一点需要计算一次光照明模型,因而计算量远大于照明模型,因而计算量远大于Gouraud着色方法。但是着色方法。但是Phong着色方法绘制的图形更加真实,特别体现在如下两着色方法绘制的图形更加真实,特别体现在如下两个场合(考虑要绘制一个三角型)。个场合(考虑要绘制一个三角型)。如果镜面反射指数如果镜面反射指数n较大,三角形左下角的顶点较大
37、,三角形左下角的顶点a(R与与V的夹角)很小,而另两个顶点的的夹角)很小,而另两个顶点的a很大,以光照明模很大,以光照明模型计算的结果是左下角顶点的亮度非常大(高光点),型计算的结果是左下角顶点的亮度非常大(高光点),另两个顶点的亮度小。若采用另两个顶点的亮度小。若采用Gourauf方法绘制,由于方法绘制,由于它是对顶点的亮度进行插值,导致高光区域不正常地扩它是对顶点的亮度进行插值,导致高光区域不正常地扩散成很大一块区域。而根据散成很大一块区域。而根据n的意义,当的意义,当n较大时,高光较大时,高光区域实际应该较集中。采用区域实际应该较集中。采用Phong方法绘制的结果更符方法绘制的结果更符合
38、实际情况。合实际情况。第45页,本讲稿共53页45当实际的高光区域为与三角形中间时,采用当实际的高光区域为与三角形中间时,采用Phong方方法能产生正确的结果,而若采用法能产生正确的结果,而若采用Gouraud方法,由于按方法,由于按照光照明模型计算出来的三个顶点处的亮度都较小,线照光照明模型计算出来的三个顶点处的亮度都较小,线性插值的结果是三角形中间不会产生高光区域。性插值的结果是三角形中间不会产生高光区域。第46页,本讲稿共53页46 Flat Gouraud Phong第47页,本讲稿共53页47 阴影可以分为本影和半影。阴影可以分为本影和半影。阴影可以分为本影和半影。阴影可以分为本影和
39、半影。本影本影本影本影:景物表面上未被任何光源直接照射到的区域。:景物表面上未被任何光源直接照射到的区域。:景物表面上未被任何光源直接照射到的区域。:景物表面上未被任何光源直接照射到的区域。半影半影半影半影:景物表面被部分光源照射但没被全部光源照射到的半明:景物表面被部分光源照射但没被全部光源照射到的半明:景物表面被部分光源照射但没被全部光源照射到的半明:景物表面被部分光源照射但没被全部光源照射到的半明半暗的区域。半暗的区域。半暗的区域。半暗的区域。点光源点光源点光源点光源:光线由光源出发向四周发散,和场景中物体相比,光:光线由光源出发向四周发散,和场景中物体相比,光:光线由光源出发向四周发散
40、,和场景中物体相比,光:光线由光源出发向四周发散,和场景中物体相比,光源很小且距离景物足够远。源很小且距离景物足够远。源很小且距离景物足够远。源很小且距离景物足够远。分布式光源分布式光源分布式光源分布式光源:光源与场景中的物体相比不够小,且距景物较近,:光源与场景中的物体相比不够小,且距景物较近,:光源与场景中的物体相比不够小,且距景物较近,:光源与场景中的物体相比不够小,且距景物较近,这时需计算光源外表面各点所共同产生的光照。这时需计算光源外表面各点所共同产生的光照。这时需计算光源外表面各点所共同产生的光照。这时需计算光源外表面各点所共同产生的光照。单一点光源只能产生本影。而线光源、面光源或
41、分布式光单一点光源只能产生本影。而线光源、面光源或分布式光单一点光源只能产生本影。而线光源、面光源或分布式光单一点光源只能产生本影。而线光源、面光源或分布式光源可同时产生本影和半影。源可同时产生本影和半影。源可同时产生本影和半影。源可同时产生本影和半影。第三节第三节第三节第三节 阴阴阴阴 影影影影 第48页,本讲稿共53页48本影本影半影半影无影无影分布式光源分布式光源 本影的计算简单,半影计算复杂。我们只考虑本影的计本影的计算简单,半影计算复杂。我们只考虑本影的计本影的计算简单,半影计算复杂。我们只考虑本影的计本影的计算简单,半影计算复杂。我们只考虑本影的计算。算。算。算。第49页,本讲稿共
42、53页49 对于点光源,阴影的计算方法和隐藏面的消除算法可以对于点光源,阴影的计算方法和隐藏面的消除算法可以对于点光源,阴影的计算方法和隐藏面的消除算法可以对于点光源,阴影的计算方法和隐藏面的消除算法可以是完全相同的。对于是完全相同的。对于是完全相同的。对于是完全相同的。对于隐藏面隐藏面隐藏面隐藏面消除算法,是从消除算法,是从消除算法,是从消除算法,是从观察点观察点观察点观察点看,确定哪看,确定哪看,确定哪看,确定哪些表面是可见的。而对于些表面是可见的。而对于些表面是可见的。而对于些表面是可见的。而对于阴影阴影阴影阴影发现算法,是从发现算法,是从发现算法,是从发现算法,是从点光源点光源点光源点
43、光源“看看看看”,确定哪些表面是可见的。,确定哪些表面是可见的。,确定哪些表面是可见的。,确定哪些表面是可见的。从观察点和从点光源都能看见从观察点和从点光源都能看见从观察点和从点光源都能看见从观察点和从点光源都能看见的表面,就是可见的表面。从观察点可见,而从点光源不的表面,就是可见的表面。从观察点可见,而从点光源不的表面,就是可见的表面。从观察点可见,而从点光源不的表面,就是可见的表面。从观察点可见,而从点光源不可见的表面,就在阴影之中。可见的表面,就在阴影之中。可见的表面,就在阴影之中。可见的表面,就在阴影之中。当要表现一个客体时,可以分别对观察点及各点光源当要表现一个客体时,可以分别对观察
44、点及各点光源当要表现一个客体时,可以分别对观察点及各点光源当要表现一个客体时,可以分别对观察点及各点光源实施同样的消除隐藏面的算法,分别对观察点及各点光源实施同样的消除隐藏面的算法,分别对观察点及各点光源实施同样的消除隐藏面的算法,分别对观察点及各点光源实施同样的消除隐藏面的算法,分别对观察点及各点光源确定出相应的可见部分和不可见部分,然后把所得结果进确定出相应的可见部分和不可见部分,然后把所得结果进确定出相应的可见部分和不可见部分,然后把所得结果进确定出相应的可见部分和不可见部分,然后把所得结果进行整理,正确形成明暗而表现出来。行整理,正确形成明暗而表现出来。行整理,正确形成明暗而表现出来。
45、行整理,正确形成明暗而表现出来。当要对同一物体从许多当要对同一物体从许多当要对同一物体从许多当要对同一物体从许多不同观察点不同观察点不同观察点不同观察点进行观察时,对所看进行观察时,对所看进行观察时,对所看进行观察时,对所看到的一系列情形,可以只做一次发现阴影的计算,因为当点到的一系列情形,可以只做一次发现阴影的计算,因为当点到的一系列情形,可以只做一次发现阴影的计算,因为当点到的一系列情形,可以只做一次发现阴影的计算,因为当点光源相对物体是固定时,阴影实际上和观察点的位置无关。光源相对物体是固定时,阴影实际上和观察点的位置无关。光源相对物体是固定时,阴影实际上和观察点的位置无关。光源相对物体
46、是固定时,阴影实际上和观察点的位置无关。第50页,本讲稿共53页50一种计算阴影的方法:一种计算阴影的方法:对由多边形表面组成的客体对由多边形表面组成的客体,对从光源看来是完全可见或对从光源看来是完全可见或者部分可见的多边形者部分可见的多边形,附加上另一个与之共面的多边形,称为附加上另一个与之共面的多边形,称为细碎多边形细碎多边形,这个共面的多边形就是该物体(从光源看),这个共面的多边形就是该物体(从光源看)的可见部分。的可见部分。细碎多边形的计算方法细碎多边形的计算方法,是用遮挡光线多边形的投是用遮挡光线多边形的投影作为窗口,相对多边形表面,用多边形裁剪算法进行影作为窗口,相对多边形表面,用
47、多边形裁剪算法进行裁剪计算出来的。裁剪计算出来的。细碎多边形是用来做明暗处理的。从视点看是可见的,细碎多边形是用来做明暗处理的。从视点看是可见的,并且被细碎多边形覆盖的部分要进行明暗处理的,即要同并且被细碎多边形覆盖的部分要进行明暗处理的,即要同时计算具体光源照明的漫反射和镜面反射以及环境光源的时计算具体光源照明的漫反射和镜面反射以及环境光源的漫射照明效果。从观察点看是可见的,但没有被细碎多边漫射照明效果。从观察点看是可见的,但没有被细碎多边形覆盖的部分实际上是在阴影之中,应该只计算环境光源形覆盖的部分实际上是在阴影之中,应该只计算环境光源引起的漫射照明效果。引起的漫射照明效果。第51页,本讲稿共53页51光源在无穷远处光源在无穷远处投射阴影的多边形投射阴影的多边形细碎多边形细碎多边形位于立方体位于立方体顶面的阴影顶面的阴影位于多边位于多边形前面的形前面的阴影阴影完全位于阴影中的面,完全位于阴影中的面,因而并不加上细碎多因而并不加上细碎多边形边形第52页,本讲稿共53页52第53页,本讲稿共53页53
限制150内