研究生计算机图形学-第8章_第1页
研究生计算机图形学-第8章_第2页
研究生计算机图形学-第8章_第3页
研究生计算机图形学-第8章_第4页
研究生计算机图形学-第8章_第5页
已阅读5页,还剩172页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第8章 真 实 感 图 形 第第8 8章章 真真 实实 感感 图图 形形 8.1 概述概述 8.2 简单实用的光照明模型简单实用的光照明模型 8.3 表面法向量和反射光线向量的计算表面法向量和反射光线向量的计算8.4 多边形表示的光滑明暗处理多边形表示的光滑明暗处理 8.5 阴影与透明阴影与透明 8.6 纹理及其反走样处理纹理及其反走样处理 8.7 辐射度方法辐射度方法 8.8 颜色颜色 第8章 真 实 感 图 形 8.1 概概 述述 真实感图形是综合利用数学、物理学、计算机科学以及其他科学技术在计算机图形设备上生成的、像彩色照片那样逼真的图形。近些年来,随着多色彩、高分辨率光栅图形设备的普及

2、,真实感图形绘制技术在各领域中得到了广泛的应用,并日益受到人们的重视。随着各种新的光照明模型的问世,特别是以光线跟踪和辐射度方法为代表的全局光照明模型的问世,真实感图形生成技术被注入了新的活力,其发展速度极快。 第8章 真 实 感 图 形 用计算机绘制或显示真实感图形具有很高的实用价值。例如,建筑设计师们在进行建筑设计时,可以不必制作精致的模型, 而是将他们的构思通过在计算机上绘制真实感图形表达出来,如不满意可随时进行修改。 再如在各种工业产品的设计中, 也无须制作实物模型来检查设计的效果。特别是对那些外形美感要求较高的产品, 反复制作模型, 将耗费大量的人力物力。采用计算机绘制真实感图形,可

3、方便地在屏幕上显示产品各个角度的图像,并在屏幕上直接对外形进行交互式修改,在达到最佳设计效果的同时,还可以大大缩短设计周期。除此之外, 真实感图形绘制技术在战斗模拟、飞行训练、 医学、 分子结构研究、 计算机动画及影视广告等领域都具有广阔的应用前景。 第8章 真 实 感 图 形 用计算机在图形设备上生成连续色调的真实感图形, 必须经过以下几个基本步骤: (1) 用数学方法建立所需三维场景的几何描述,并将它们输入计算机。这部分工作由三维立体造型和曲面造型系统完成。 选择合理有效的数据结构和输入手段进行场景的几何描述是非常重要的,因为这直接影响到图形的复杂程度及显示或绘制的计算耗费。 (2) 通过

4、对场景的透视变换, 将三维几何描述转换为二维透视图。 (3) 用隐藏面消除算法将视区之外或被遮挡的不可见面消除, 确定场景中所有的可见面。 (4) 根据基于光学物理的光照明模型,计算可见面投射到观察者眼中的光亮度大小和色彩分量,从而计算场景中可见面的颜色,并将其转换成适合图形设备的颜色值,从而确定投影面上每一像素的颜色, 最终生成图形。 第8章 真 实 感 图 形 下面我们对有关的光学物理知识做简单介绍。空间一物体的表面呈现的颜色是由表面向视线方向的辐射光能所决定的。 如果表面辐射光中等量地包含了所有波长的可见光,则按辐射光能的大小,表面将呈现出白色、灰色或黑色,即非彩色; 否则表面将呈现出颜

5、色。由于颜色只是可见光的一种视觉特性, 因此在光学研究中, 特别注意对光谱的分析和研究。 光谱的分布表示惟一束光中不同波长光所占的比例,它是波长的函数。 显然,光谱的分布惟一地决定了相应可见光的色彩。在计算机图形学中,为了描述物体表面朝某方向辐射光能的颜色,常使用一个既能表示光能大小, 又能表示其颜色组成的物理量光亮度。光亮度可正确地描述光在物体表面的反射、 透射及吸收现象,因而利用它可以正确地计算出物体表面在空间给定方向上光的颜色。 第8章 真 实 感 图 形 可用光照模型来计算物体表面向空间给定方向辐射的光亮度。 假定物体由理想的材料构成,其表面是光滑的(这时,仅考虑光源照射在物体表面产生

6、的反射光), 这种简单的光照明模型所生成的图形可以模拟出不透明物体, 其表面的明暗过渡具有一定的真实感效果。而复杂的光照明模型除了考虑上述因素外, 还必须考虑周围的环境光对物体表面的影响。例如光亮平滑的物体表面会将环境中其他物体映在其表面上,如果要是透明物体,还可以看到其后的环境景象。 这种光照明模形称之为整体光照明模型。 整体光照明模型可以模拟出镜面映像、透明等较为精致的光照效果。 为了表现自然界中的阴影, 在应用光照明模型时,还需要判定物体表面是否位于阴影区内, 以取舍相应的照明影响。更精致的真实感图形的绘制,还要考虑物体表面的纹理细节, 这可以通过一种称为“纹理映射”的技术来完成。该技术

7、把已有的平面纹图案映射到物体表面上,并在应用光照明模型时,将花纹的颜色考虑进去。 对物体表面细节进行模拟,可使真实感图形更逼真形象。 第8章 真 实 感 图 形 8.2 简单实用的光照明模型简单实用的光照明模型 计算机屏幕上的景物可见点的颜色取决于像素的颜色。因此,需要建立一个可以计算物体表面在空间给定方向上光亮度的光照明模型。当光照射到一个物体表面上时, 会出现以下三种情形: (1) 光照射到物体表面后向空间反射, 产生反射光; (2) 如果是透明体, 光则穿透该物体从另一端射出, 产生透射光; (3) 部分光将会被物体表面吸收而转换成热。 第8章 真 实 感 图 形 在这三部分光中,仅反射

8、光和透射光能使人们产生视觉效果。也就是说,物体表面所呈现的颜色取决于物体表面的反射光和透射光。更具体的说,反射光和透射光的强弱决定了物体表面的明暗程度。 光中所含不同波长光的比例决定了物体表面的色彩;而反射光和透射光的强弱及光谱组成,又决定于入射光和物体表面对入射光中不同波长光的吸收程度。因此,只有从光照的角度讨论物体的颜色才有实际意义。通常,我们所说的物体的颜色均假定白光为照射光。 第8章 真 实 感 图 形 要精确地计算物体表面的反射光和透射光,需要知道入射光在每一波长中的强弱以及物体表面在每一波长上对光的吸收率,即需要了解入射光的光谱分布以及物体表面的反射光和透射光光谱。根据这些光谱可以

9、计算出反射光和透射光的光谱分布,从而得到反射光和透射光的颜色。我们可以根据环境中不同的照明光源和不同材料的物体表面正确计算物体表面反射光和透射光的颜色。但在计算机中进行光谱计算及光谱颜色的转换时,将会耗费大量的计算时间和存储空间, 因此, 在一般情况下,我们采用较为简单的处理方法。 因为在许多应用场合下,人们所关心的并不是照明光源的颜色和物体表面的材料,所以,可以在简单光照明模型中仅考虑被照明物体对反射和透射光的影响。这意味着在简单光照明模型中,环境可以假定为白光照明,并且,反射光和透射光的颜色由用户选定。这样简化后, 给光照明模型的建立和应用都带来了方便。 第8章 真 实 感 图 形 对于简

10、单光照明模型,我们假设物体不透明,则物体表面呈现的颜色仅由其反射光决定。在一般情况下,人们将反射光看成是三个分量的组合,这三个分量为环境反射分量、漫反射分量和镜面反射分量。我们假定环境反射分量是入射光均匀地从周围环境入射到物体的表面,并等量地向各个方向反射;而漫反射分量和镜面反射分量则表示特定光源照射在物体表面上所产生的反射光。 漫反射分量表示特定光源在物体表面的反射光中的那些向空间各方向均匀反射出去的光。我们可以使用郎伯余弦定律计算这种反射光。对于一个漫反射体,表面的反射光亮度和光源入射角的余弦成正比, 即 I=Id cos (8-1) 第8章 真 实 感 图 形 其中:I为物体表面反射光的

11、光亮度;Id为光源垂直入射时反射光的光亮度;为光源的入射角,如图 8.2.1 所示。 由式(8-1)可知,观察一个漫反射体时,人眼接收到的光亮度与观察者的位置无关。这种反射称为漫反射。图 8.2.1 表示将式(8-1)用于球面的情形。因为点A的光线入射角为0,所以发出的光亮度最大,其值为Id,而点B和B的光亮度就比点A处弱。 因为点C和C的光线入射角为90,故发出的光亮度为零。 第8章 真 实 感 图 形 图 8.2.1 用于球面的简单漫反射模型 IdIBCAB第8章 真 实 感 图 形 由式(8-1)可知,观察一个漫反射体时,人眼接收到的光亮度与观察者的位置无关。这种反射称为漫反射。图 8.

12、2.1 表示将式(8-1)用于球面的情形。因为点A的光线入射角为0, 所以发出的光亮度最大,其值为Id,而点B和B的光亮度就比点A处弱。 因为点C和C的光线入射角为90,故发出的光亮度为零。 根据式(8-1),应将球面点C和C处处理成黑色,实际上, 这与在现实场景的观察不符。因为物体的表面除受特定光源照射之外,还受到从周围环境射来的反射光的照射。如来自天空、 地面、墙壁等的反射光,这些反射光的照明效果,可用环境反射分量进行模拟。这里假定环境反射分量是均匀入射的漫反射光,可用一常数Ia表示。所以适用于漫反射体的光照明模型为 第8章 真 实 感 图 形 cosdaIII(8-2) 其中Ia为环境反

13、射分量,在一般情况下,Ia=(0.020.2)Id。 用式(8-2)来计算如石灰粉刷的白墙、纸张、白色棉麻织品等的反射光亮度是可行的,但是对于大多数物体,如经切削加工后的金属体的表面,光滑的塑料表面等, 受到光照射后,给人的感觉并非那样均匀呆板,而是呈现特有的光泽。如一个光源照射一个金属球时,就会在其表面上产生一块特别亮的区域, 呈现出所谓的“高光”,这是光源在金属球面上产生的镜面反射光。 第8章 真 实 感 图 形 镜面反射光遵循光的反射定律,反射光和入射光对称地位于表面法向的两侧。如果表面是纯镜面,入射到表面上的光会严格地遵循光的反射定律作单向反射。如果是一般的光滑表面, 由于表面实际上是

14、由许多朝向不同的微小平面组成,因此其镜面反射光分布于表面之镜面反射方向的周围,如图 8.2.2 所示。 应用时,对一般光滑表面的镜面反射光的空间分布,可采用余弦函数的幂次进行模拟,即 nsIIcos(8-3) 其中:I为观察者接收到的镜面反射光亮度;Is为镜面反射方向上的镜面反射光亮度;为镜面反射方向和视线方向的夹角,如图 8.2.3 所示;n为镜面反射光的会聚指数。 第8章 真 实 感 图 形 图 8.2.2 镜面反射 反射光入射光光滑平面N第8章 真 实 感 图 形 图 8.2.3 用于光滑球面的Phong模型 IsEFF第8章 真 实 感 图 形 式(8-3)表明,观察者接收的镜面反射光

15、不仅取决于入射光亮度的大小,而且与观察者的观察方向有关。当视点取在镜面反射方向附近时,观察者接收到的镜面反射光较强;当偏离这一方向进行观察时,镜面反射光就会减弱,甚至消失。对较粗糙的物体表面,其镜面反射光呈发散状态,即n值较小;而对于较光滑的物体表面,其镜面反射光的会聚程度较高,即n值较大。 第8章 真 实 感 图 形 图 8.2.3 为式(8-3)用于一光滑球面时的情形。在图 8.2.3 中, 点E处的镜面反射方向与视线的方向一致,即=0,则其表面呈现明亮的高光; 而在点F和F处变大,观察者接收到的镜面反射光急剧下降。 表面反射光可以看成是环境反射、漫反射和镜面反射三个分量的组合。对于某一特

16、定的物体表面,三个分量所占的比例具有一定的值。设环境反射、漫反射和镜面反射分量的比例系数分别为ka , kd和ks,则一个实用的光照明模型(Phong模型)可表示如下: coscosnssddaaIkIkIkI其中,Ia , Id , Is以及I均为光谱量,kd+ks=1。 (8-4) 第8章 真 实 感 图 形 为避免进行光谱的计算,将式(8-4)转换成光栅图形显示器的三原色系统RGB,这时Phong模型可写成: coscosnssssddddaaabgrkbgrkbgrkabgr(8-5) 其中,ra ga ba、rd gd bd与rs gs bs分别为光亮度Ia , Id , Is的相应

17、颜色,这样,用户便可指定物体表面的环境反射、漫反射以及镜面反射光的颜色。 第8章 真 实 感 图 形 图 8.2.4 Phong模型的各方向向量 NRVLP第8章 真 实 感 图 形 使用Phong模型的示意性扫描线绘制的主要算法步骤如下: (1) 对于屏幕上每条扫描线y,将数组中的颜色值初始化,使其成为y扫描线的背景颜色值; (2) 对于y扫描线上的每一可见间隔S中的第i点(xi,yi),可设(xi,yi)对应的空间可见点为Pi; (3) 求出点Pi处的单位法向量N0,单位入射光向量L0以及单位视线向量V0; 第8章 真 实 感 图 形 (4) 求L0在点Pi处的单位镜面反射向量R0,即 )

18、()(0000nssssddddaaaaVRbgrkNLbgrkbgrkbgr(5) 置color(x) =(r,g,b),显示color。 第8章 真 实 感 图 形 (5) 置color(x) =(r,g,b),显示color。 因为cos=R0V0在实际应用中不便计算,在此可用L0M0来代替,其中:M0是L与V的角平分线向量,如图 8.2.5 所示;M0可理解为观察方向与镜面反射方向之间虚拟表面的法向量。M0与表面实际法向量N之间的夹角决定了射向观察者的镜面反射光的大小,设Ed=N0L0、Es=N0M0为漫反射明暗度和镜面反射明暗度,则Phong模型可写为: nsssdddaaEIkEI

19、kIkI(8-6) 第8章 真 实 感 图 形 图 8.2.5 角平分向量 NMVL第8章 真 实 感 图 形 8.3 表面法向量和反射光线向量的计算表面法向量和反射光线向量的计算 8.3.1 表面法向量的计算表面法向量的计算 表面法向量的方向表示表面的局部弯曲性,因此也就决定了镜面反射的方向。如果已知表面的解析表达式,表面的法向量可以直接算出,然而在实际应用中,通常我们仅知道表面的多边形的近似表示。对于每一多边形小片,可根据其所在平面方程的系数,决定每一小平面片的法向量, 且取法向量的方向为外法线方向。 在许多消隐算法中,仅用多边形的顶点或棱边信息;采用光照明模型时,则需要用近似方法求得表面

20、在顶点处或沿棱边的法向量。 第8章 真 实 感 图 形 图 8.3.1 多边形表示曲面的法矢量近似计算 P1P0P3P4P2V4V1V2V3V5V6V7V8第8章 真 实 感 图 形 1. 已知多边形面片方程时法向量的计算方法已知多边形面片方程时法向量的计算方法 如果多边形面片的平面方程已经建立,则表面在顶点处的法向量可取包围该顶点多边形的法向量的平均值。例如,在图 8.3.1 中,设包围点V1的三个多边形P0 , P1 , P4的方程系数分别为a0 , b0 , c0, a1 , b1 , c1和a4 , b4 , c4,则V1处的近似法向量为 NV1=(a0+ a1 + a4)i+(b0+

21、b1+b4)j +(c0+c1+c4)k 在式(8-7)中,如果仅仅求法向量的方向,则不必将各法向量的和除以包围该顶点的多边形个数。 (8-7) 第8章 真 实 感 图 形 2. 未知多边形面片方程时法向量的计算方法未知多边形面片方程时法向量的计算方法 在各多边形平面方程未知的情况下,顶点处的法线可取交于该顶点的各棱边叉积的平均值。例如,在图 8.3.1 中,顶点V1处的近似法线的方向可取为 NV1=V1V2V1V4+V1V5V1V2+V1V4V1V5 求平均值时,只计外法线,并且,除求单位矢量外,式(8-8)中近似法向量的模取决于围绕顶点的多边形的个数和面积, 或者棱边数及其长度。多边形愈大

22、,棱边愈长,则影响愈大。 (8-8)第8章 真 实 感 图 形 3. 近似计算举例近似计算举例 图8.3.1 所示为一个四棱台体的多边形表面,设其各顶点分别为V1(-1,-1,1), V2(1,-1,1), V3(1,1,1), V4(-1,1,1), V5(-2,-2,0), V6(2,-2,0), V7(2,2,0), V8(-2,2,0),则围绕点V1的表面P0 , P1 , P4所在的平面方程分别为: P0: z-1=0P1:-y+z-2=0P4:-x+z-2=0 第8章 真 实 感 图 形 用包围顶点V1的各多边形法矢量的平均值近似地求点V1处的法矢量为 NV1=(a0+a1+a4)

23、i+(b0+b1+b4)j+(c0+c1+c4)k =-i-j+3k 则NV1的模为 11)3(1) 1(|2221)(VN单位法向量为 kjiNNVV9 . 03 . 03 . 0|11在此各法矢量的和除以 3 并不能得到单位向量。 第8章 真 实 感 图 形 关于点V1的各棱边的叉积为: V1V2 V1V4 =4kV1V5 V1V2 =-2j+2k V1V4 V1V5 =-2i+2k 取各叉积的平均,可近似地计算点V1处的法向量为 NV1=-2i-2j+8k 则NV1的模为 72)8()2()2(|2221VN第8章 真 实 感 图 形 所以其单位向量为 kjiNNVV94. 024. 0

24、24. 0|11 以上两种近似方法所计算的表面法向量的大小和方向均不相同。所以计算表面法向量的方法不同,同一光照得出的显示结果也有一定的差异。 在实际应用中,如果用表面法向量计算光强度,并且用透视变换显示物体或场景时,应该在透视变换前进行表面法向量的计算,否则,法向量的方向将会发生偏斜,从而难以用光照明模型计算准确的光强度。 第8章 真 实 感 图 形 8.3.2 反射光向量的计算反射光向量的计算 1. 仅有一个光源的光照明模型仅有一个光源的光照明模型 根据反射定律,入射光、表面法线和反射光将在同一平面内, 且入射角与反射角相等,如图 8.3.2(a)所示。Phong模型在假定光线沿Z轴方向的

25、情况下,运用以上条件便可得到一个简单的计算反射光向量的方法。这个假设十分适合于只有一个点光源的光照明模型。取物体表面上一点作为坐标系的原点,则物体表面法向量和反射光向量在XOY平面上的投影重影成一直线, 如图 8.3.2(b)所示。 第8章 真 实 感 图 形 图 8.3.2 反射光向量的计算 yxyxNNRR(8-9) 其中,Rx、Ry, Nx , Ny分别为单位反射光向量和单位法向量的x, y分量。设单位法向量与Z轴的夹角为,则其Z向分量为 20 ,coszN 同理,单位反射光向量与Z轴夹角为2,所以z分量为 121cos22cos22zzNR(8-10) 第8章 真 实 感 图 形 图

26、8.3.2 反射光向量的计算 XRYONLONRXYYOZNR光(a)(b)(c)光Z第8章 真 实 感 图 形 因为 1222zyxRRR所以 2cos112222zyxRRR或 2cos112222yxyRRR另外, 1222zyxNNN第8章 真 实 感 图 形 由式(8-9)可得: 2cos1)1 ()(22222222zyxyxyyNNRNNNR可进一步改写为: )1 (4) 12(1) 1cos2(1)1 (222222222zzzzyyNNNNNR即 Ry=2NzNy 由式(8-9)可得: Rx=2NzNx (8-12) (8-11) 第8章 真 实 感 图 形 2. 存在多个光

27、源的光照明模型存在多个光源的光照明模型 如果存在多个点光源,上述的方法就不适用,但仍然可以对每个光源进行平移和旋转变换,使其光线与Z轴方向重合。 较简便的方法是对法向量作平移和旋转使之与Z轴重合,并仍取物体表面上点P于坐标原点,这时单位入射光和反射光向量的x、y分量大小相等,方向打反,而z分量相等。再用逆变换求出它们在原坐标系中的结果。实际上在旋转、平移后的坐标系中有 Rx=-Lx, Ry=-Ly, Rz=-Lz 第8章 真 实 感 图 形 3. 利用单位向量的叉积和点积利用单位向量的叉积和点积 这种方法利用单位法向量、单位入射光向量和单位反射光向量之间的叉积来表示这三个向量位于同一平面的条件

28、,由它们之间的点积来表示入射角和反射角相等的条件, 即 NL=RN 或 (NyLz-NzLy)i+(NzLx-NxLz)+(NxLy-LxNy)k=(NzRy-NyRz)i+(NxRz-NzRx)j+(NyRx-LzRy)k 第8章 真 实 感 图 形 矢量叉积相等相当于其x, y, z分量各自相等。 因此 yxxyyzxyxzzxzxxzzyyzzyyzLNLNRNRNLNLNRNRNLNLNRNRN(8-13) 在一般情况下,上述方程无法求解反射光向量,但实际上方程中总能找到一个不包含有用的信息的项,也就是说,上述方程并不是独立的。 由入射角和反射角相等可得到: NL=NR 或者 NxRx

29、+NyRy+NzRz=NxLx+NyLy+NzLz (8-15) 第8章 真 实 感 图 形 这样得到了所需的另一条件。包含四个条件的关于三个未知数Rx, Ry, Rz的矩阵表达式为 NR=B 即 zzyyxxyxxyxzzxzyyzzyxzyxxyxzyzLNLNLNLNLNLNLNLNLNRRRNNNNNNNNN000因为N不是方阵, 所以可用下式求解R: R=NTN-1NTB 第8章 真 实 感 图 形 8.4 多边形表示的光滑明暗处理多边形表示的光滑明暗处理 8.4.1 双线性亮度插值法双线性亮度插值法 双线性亮度插值法又称为Gouraud明暗法,其基本思想是对离散的光亮度采样作双线性

30、插值,以获得连续的光亮度函数。 具体的处理方法是:先计算多边形各顶点的光亮度值,并将其作为曲面光亮度的采样点,再对多边形顶点的光亮度进行插值计算,算出多边形内任一点的光亮度。 第8章 真 实 感 图 形 图 8.4.1 Gouraud明暗处理 扫描线ABPV1V2V3第8章 真 实 感 图 形 取点A的光亮度IA为I1和I2的线性插值,点B的光亮度IB为I1和I3的线性插值,而点P的光亮度IP则为IA和IB的线性插值,设u, v, t为插值参数 ABPBtIttIIVVBVvIvuIIVVAVuIuuIIBAPBA)1 ()1 ()1 (3133121221第8章 真 实 感 图 形 Gour

31、aud明暗处理克服了多边形表示曲面光亮度不连续的问题,并且其计算量较小(由于线性插值计算可用增量法进行,其运算量仅涉及一次加法运算)。在图 8.4.1 中,沿扫描线可从左到右地计算AB间隔上所有像素的光亮度。 设IA和IB已经确定,相邻两像素的坐标为P1和P2,相邻两像素插值参数差为t,则点P2的光亮度IP2与点P1的光亮度IP1之间的关系为 IP2=IP1+(IA-IB)t=IP1+I (8-16)因为在同一扫描线上,所以I为常数。由式(8-16)可以看出,计算一相邻像素的光亮度仅需做一次加法运算即可。 第8章 真 实 感 图 形 在Gouraud明暗处理中,计算多边形顶点的光亮度可采用式(

32、8-6), 但应先计算各顶点处的法向量值,有关法向量值的计算见本章 8.3.1 节所述。 Gouraud明暗处理也存在一些缺点,如不能正确地模拟高光, 会产生马赫带效应等。 所谓马赫带效应,就是光亮度变化率不连续的边界处会产生亮带或黑带。Phong明暗处理法可以克服这些缺点。 第8章 真 实 感 图 形 8.4.2 双线性法向量插值法双线性法向量插值法 双线性法向量插值法是Phong明暗处理法,其算法克服了亮度插值法中的一些不足之处。 Phong明暗处理的基本思想是:对离散的法向量采用双线性插值法,构造连续的法向量函数,并将这一连续的法向量函数代入光亮度计算公式,便得到一个非线性的光亮度插值公

33、式, 这样所产生的高光效果较为逼真。 第8章 真 实 感 图 形 图 8.4.2 Phong明暗处理 V1V2V3扫描线N3NBN1NPNAN2APB第8章 真 实 感 图 形 法向量线性插值的计算仍然采用如前所述的增量法。 这种算法的缺点是:对于每一个像素的光亮度的计算都需要使用光照明模型, 因此,其计算量很大。 Gouraud和Phong明暗处理方法均可处理任意凸多边形表示的物体。如果表示物体的表面为曲面,用三角形逼近该曲面, 则上述两种方法均可使用三角形插值,这时的插值公式则更简单。 第8章 真 实 感 图 形 设屏幕坐标系为XOY。三角形三个顶点在XOY上的投影坐标分别为P1(x1,y

34、1)、P2(x2,y2)和P3(x3,y3),现建立三角形的仿射坐标(,),如图 8.4.3 所示。P1、P2和P3的仿射坐标分别为(0,0), (1,0)和(0,1), 则从屏幕坐标到三角形坐标的仿射变换为 =a1x+b1y+c1=a2x+b2y+c2 在此令I1 , I2和I3分别为三角形三顶点处的光亮度,N1 , N2和N3分别为三角形三顶点处的法向量,则光亮度的插值公式可写成: I(x,y)=(1-)I1+I2+I3 =Ax+By+C(8-17) 第8章 真 实 感 图 形 其中, A=a1I2+a2I3-(a1+a2)I1 B=b1I2+b2I3-(b1+b2)I1 C=c1I2+c

35、2I3+(1-c1-c2)I1 同理,法向量的插值公式可写成: N(x,y)=(1-)N1+N2+N3 =Ax+By+C (8-18) 第8章 真 实 感 图 形 其中, 121322112132211213221)1 ()()(NccNcNcCNbbNbNbBNaaNaNaA式(8-17)和(8-18)适用于增量法的计算。 第8章 真 实 感 图 形 8.4.3XYOP1(0 , 0)P2(1 , 0)P3(0 , 1)图8.4.3 三角形仿射坐标第8章 真 实 感 图 形 8.5 阴阴 影影 与与 透透 明明 8.5.1 阴影阴影 所谓阴影,是指物体中某些没有被光源直接照射到的暗区。 在计

36、算机生成的真实感图形中,阴影可以反映画面中景物的相对位置,增强图形的立体感和场景的层次感,丰富画面的真实效果。 阴影可分为全影和半影,全影是物体表面上那些没有被光源直接照射的部分,而半影指的是景物表面上那些被某些特定光源(而不是全部)直接照射的部分。全影加上其周围的半影便组成了“软影区域”。所谓软影区域,就是影子的边缘有较慢的过渡。据此,单个点光源才能产生全影,多个点光源才有可能产生半影。 第8章 真 实 感 图 形 图 8.5.1 线光源照明中的全影和半影 线光源全阴影区无阴影区半阴影区PDdDdf第8章 真 实 感 图 形 1. 影域多边形方法影域多边形方法 对多边形表示的物体,计算全影的

37、简便方法是使用影域多边形。由于物体遮挡光源后,在它的后面会形成一个影域, 如图 8.5.2 所示,因此,确定某点是否落在阴影中,只要判别该点是否位于影域中即可。环境中物体的影域定义为:视域多面体和光源在景物空间中被该物体轮廓多边形遮挡区域的空间布尔交。 组成影域的多边形称为影域多边形。 第8章 真 实 感 图 形 图 8.5.2 影域多面体 S物体轮廓多边形视域四棱锥屏幕影域视点第8章 真 实 感 图 形 图 8.5.3 利用影域多边形进行影域判断 123XYPS4S3S2S1O第8章 真 实 感 图 形 如果规定影域是凸多面体,且影域多边形均取外法向,则可根据P前后两侧的影域多边形是属于朝前

38、面(其法向量和视线向量夹角小于/2 的影域多边形)还是朝后面(其法向量和视线向量夹角大于/2的影域多边形)来确定阴影点。 如果沿视线方向,P上任一点的后面有一朝后面, 前面有一朝前面, 那么该点必在阴影中, 否则,该点不在阴影中。 使用影域多边形计算全影,不必专门编制阴影程序,只需对现有的扫描线消隐算法稍加修改即可,所以,这种算法非常方便。 第8章 真 实 感 图 形 2. 光线跟踪方法光线跟踪方法 光线跟踪方法根据Whitted提出的整体光照明模型,用光线跟踪算法确定某点是否在某个光源的阴影内。进行这种算法只要从该点出发, 向光源发出一根测试光线即可。如果测试光线在到达给定光源之前与其他的景

39、物相交,则该点位于给定光源的阴影之中;否则该点受到该光源的直接照射。 用光线跟踪技术可以方便地模拟软影和透明体的阴影。 第8章 真 实 感 图 形 下面,我们对环境由多个点光源照射, 或者由点光源近似地表示线(面)光源的情况下产生的半影的基本原理作简要介绍。 设有若干个光源, 每个光源可以是点光源,也可以是由点光源近似表示的线(面)光源,则计算半影的光照明模型可表示为(这里使用Phong光照明模型): )()(0000nwsswdaaaHNIkLNIkPkI(8-19) 其中,N0 , L0分别为法向量和光线向量的单位向量;Iwd和Iws为光源i的衰减光亮度,分别定义为: )()(dlmIId

40、lmIIswsdwd第8章 真 实 感 图 形 其中,m为光源i所包含的点光源数目;dl是被照射点P关于光源i的暗度,它定义为光源i中没有直接照射到P点的点光源的个数。 如果光源i对点P来说被完全遮挡,则dl=m; 如果光源i全部照射到P点,则dl=0。 如果计算出点P关于各个光源的明暗度,则可通过式(8-19)计算包含半影的光亮度I。所以暗度计算是半影计算方法中的关键问题。一般情况下,暗度可以通过上面介绍的算法来求得, 但也可以通过Z缓冲区方法和曲面细分多边形法求解, 这里不做介绍。 第8章 真 实 感 图 形 8.5.2 透明透明 场影整体照明效果的一个重要方面是透明现象的模拟。我们知道在

41、透明体后面的影物发出的光可穿过透明体到达观察者。 如果透明体的透明性能好,如平面玻璃,观察到的影物不会产生变形。但有些透明体的透明性能较差,如透明球,位于其后的景物会严重的变形。这种变形是由于光线穿过透明介质时发生折射而引起的,所以是一种几何变形。有些透明物体的透明性更差,观察者通过它们看到的只是其背后影物的朦胧的轮廓。 这种模糊变形是由于透明体表面粗糙和(或)透明物体材料不纯而引起的。另外,透明材料的滤光特性也影响透明性能。 第8章 真 实 感 图 形 1. 透射光亮度的简单模拟透射光亮度的简单模拟 在计算机图形学中,不发生几何变形和模糊变形的透明现象比较容易模拟。不发生几何变形就意味着可以

42、忽略光线通过透明体时发生的漫透射。如图 8.5.4 所示,A是一透明体,如果不计折射影响,则点P向观察者发出的光亮度除了光源在点P的反射光亮度外,还应包括物体B上点Pt传送到点P的透射光亮度It。 设光源在点P的反射光亮度为IP,透明体A的透射系数为t, 则射向观察者的光亮度为I=(1-t)Ip+tIt, 0t1 (8-20) 第8章 真 实 感 图 形 在扫描线算法中,用式(8-20)来计算光亮度比较方便。实际上,如果位于当前扫描线上的一可见多边形是透明的,那么只需要确定位于该多边形后面的第一个多边形的光亮度,并将其作为It代入(8-20),便可模拟可见多边形的透明效果。 对于某些物体,如玻

43、璃杯,因为在其边缘处的介质厚度较大,所以其透明度降低,这时可用下式表现这种效果: t=tmin+(tmax-tmin)1-(1-|Nz|d) 式中,tmin和tmax为物体的最大和最小透明度,Nz为点P处单位法向量的z分量,d为指数因子。 这种方法无法模拟光通过透明介质时产生的折射现象。 (8-21)第8章 真 实 感 图 形 8.5.4BPtItPAI图8.5.4 简单透明现象的模拟第8章 真 实 感 图 形 2. Whitted整体光照明模型整体光照明模型 图 8.5.5 Whitted整体光照明模型 反射 / 透射表面QNPItNkf (N V )(N V )ILjIsr12光源 jV第

44、8章 真 实 感 图 形 图8.5.5所示为Whitted的整体光照明模型中的镜面反射和透射情形,其中入射光线V到达表面上点Q,在点Q处,如果表面透明,光线向r方向反射,并向P方向折射;It为逆着折射方向P进入表面Q点并投射到观察者眼中的光线光强,观察者位于V的负方向;Is为逆着面反射方向到达表面Q点并反射到观察者的光线光强;N为表面在Q处的法向量;Lj为第j个光源所在的方向,所以, 到达观察者的光线的光强度为 ttjssnjljjsjljdaaIkIkRSIkLNIkIkI)()(第8章 真 实 感 图 形 式中:ka , kd , ks和kt分别为泛光照射、漫反射、镜面反射和透射系数,这些

45、系数为常数;N、Lj、S和Rj均为单位向量;S和R为局部视线和反射光线矢量;为表面材料的折射系数;n为Phong镜面反射的空间分布指数;两求和项分别为对光源的漫反射和镜面反射项。 在图8.5.5 中,Whitted整体光照明模型中的可见面计算不是在求出光线第一次和表面相交时就结束,而是要继续进行入射光线V在表面Q点沿r方向反射和沿P方向透射的计算。在表面Q点生成两支光线,跟踪这两支光线,找出它们与场景中其他景物的交点。重复这一过程,直到每一光线都不再与场景中的景物相交为止。 第8章 真 实 感 图 形 如图 8.5.6(a)所示为光线与表面只存在单一交点时的光线的跟踪过程。图 8.5.6(b)

46、所示为整个跟踪过程的树形结构。树的每一个结点表示光线与物体表面的交点。在每一结点处又分出两叉,左叉表示表面的反射光线,右叉表示折射光线。 当光线射出场景时,分叉过程终止。 第8章 真 实 感 图 形 图 8.5.6 表面反射和折射的光线跟踪 11XZ表面3阴影探测线光观察者表面2表面1P3LjLjP1P2r1Ljr2r3r2r1r3P3P2P1反射分枝折射分枝(a)(b)VOV第8章 真 实 感 图 形 当光线与表面相交时,相交处的反射光线和折射光线的方向可根据几何光学的有关定律来确定,如反射光线r和入射光线V在同一平面内,并位于表面法线的两侧;反射角等于入射角; 透射光线遵从斯涅耳折射定律等

47、等。根据上述模型记号可求出向量r和P: NVNkPNVrf) (2(8-23) 其中, 1221222)| |(,|kNVVkkNVVVf第8章 真 实 感 图 形 k为相对折射系数,V为进入光线的方向矢量。如果kf的分母为虚数,则为全反射,这时取It=0。 计算光线与物体表面交点处的光强度,需要按顺序遍历相应光线跟踪树。在树的每一结点递归地调用光照模型。每一结点处的光强值在输入到结点之前,随光线与两表面之间的距离而衰减。当整个树遍历完毕时,就可根据光强显示相应的像素。 图8.5.7中给出了光线在一封闭的透明体内部的反射过程, 物体内壁一侧的镜面反射光线在物体内最后被吸收,因此不会引起观察者的

48、视觉。 而在光线与物体表面的交点处,射出物体的透射光线P可能直接或间接地引起观察者的视觉,因此需要对其进行跟踪。 第8章 真 实 感 图 形 图 8.5.7 透明物体的内部反射 r1r2r3r4P4P3P2P1观察者r2r1r3P3P2P1反射分枝折射分枝r4P4(a)(b)VV第8章 真 实 感 图 形 3. 整体光照明模型与光线跟踪举例整体光照明模型与光线跟踪举例 图 8.5.6(a)所示为二维平面构成的场景,这些平面均为物体的表面,且垂直于XOZ坐标平面。设观察者位于x=5, z=+,单一点光源位于x=3, z=10处, 用平面方程定义各表面为 F1:x+z-12.5=0 4x6F2:

49、x-z-2=0 4x6F3: x-3z+9=0 1x3 第8章 真 实 感 图 形 取每一表面的光照特性为 F1: ka1=0.15, kd1=0.15, ks1=0.8, kt1=0.5, k1= F2: ka2=0.15, kd2=0.15, ks2=0.8, kt2=0.5, k2=1.1 F3: ka3=0.15, kd3=0.15, ks3=0.8, kt3=0.5, k3=1.1 1 . 11取泛光强度Ia=1.0,点光源光强度It=10,各表面上的镜面反射光线的Phong空间分布值为n=50。 第8章 真 实 感 图 形 图 8.5.6(b)所示为,由观察者向场景投射一光线所形成

50、的光线树,光线最先与表面 1 相交。在与表面 1 相交之前,光线的方程为x=5, 代入F1方程: x+z-12.5=5+z-12.5=0 则 z=7.5 光线与表面的交点(x=5, z=7.5)为光线树上的第一个结点,该点处的表面的单位法向量为 221kiN第8章 真 实 感 图 形 接着计算反射光线和折射光线: kkikkNVVVkV222)(|11111反射光线的方向为 ikikNVr222222111因为 2222211kikikNV第8章 真 实 感 图 形 所以有 24. 11)2(1 . 11|2122121121211NVVkkf最后求出折射光线方向为 kikikiNVNkPf5

51、8. 117. 0222224. 1)(11111第8章 真 实 感 图 形 该结点处的反射光线射出场景,不必再予考虑。折射光线与表面 F2 的交点是光线树上的第二个结点。折射光线P1写成参数形式为 tztx58. 15 . 717. 05代入F2的方程有 x=z-2=5+0.17t-7.5+1.58t-2 =1.75t-4.5=0 所以求出t=2.57, 其交点为 x2=5+(0.172.57)=5.43z2=7.5-(1.582.57)=3.43 第8章 真 实 感 图 形 两交点间的距离为 1 . 4)5 . 743. 3()543. 5()()(2221221212zzxxD用P1作为

52、投射光线,求出在该交点处的反射和折射光线为 V2=P1=0.17i-1.58k 表面F2的法向量为 222kiN则 P2=0.215i-1.199kr2=-1.28i+0.136k 第8章 真 实 感 图 形 因为折射光线P2射出场景而不与其他物体相交,光线树中这一光线不再分叉。 反射光线r2与F3表面的交点产生光线树的第三个结点。这时, 需要计算r2和表面F3的交点。光线r2的参数形式为 x=5.43-1.28tz=3.43+0.136t 代入F3的平面方程有 x-3z+9=5.43-1.28t-3(3.43+0.136t)+9 =-1.686t+4.133=0第8章 真 实 感 图 形 则

53、解得t=2.451,交点为 x3=5.43-(1.282.45)=2.3 z3=3.43+(0.1362.45)=3.7 该交点与上一交点的距离为 1 . 4)5 . 743. 3()543. 5()()(2221221212zzxxD以r2作为投射光线求出交点处的反射和折射光线为 V3=r2=-1.28i+0.136k 第8章 真 实 感 图 形 表面F3在入射线一侧的单位法向量为 103103kiN求得: P3=-1.713i+0.483k r3=-1.765i-1.643k 因为反射光线和折射光线均已射出场景,所以,光线树在此点处终止。检查F3的光照特性可知kt3=0,则该表面为不透明面

54、, 无折射光线产生。 第8章 真 实 感 图 形 我们在进行光强度计算时,应从光线树的底部第三个结点开始。因为F3为不透明表面,在该交点处仅存在泛光照射,其光强为 I3=ka3Ia=(0.157)=0.15 I3沿反射向量r2的方向传输到F2, 在此期间,I3被D23衰减 0476. 015. 315. 02332DIIt树中的第二个结点表示光线与F2的交点,这时阴影探测光线不与其他物体相交,所以点受到光源的直接照射。由该点到光源的向量为 L2=(xl-x2)i+(zl-z2)k =(3-5.43)i+(10-3.43)k =-2.43i+6.567k 第8章 真 实 感 图 形 L02=-0

55、.347i+0.94k(L02为单位向量) 则 909. 0)938. 0347. 0(22022 kikiLN相应的反射光线单位向量为 kiR347. 0938. 02这时单位视线向量为-P1,则有 -P1R2=(-0.168i+1.582k)(-0.938i+0.347k)=0.707 第8章 真 实 感 图 形 所以 I2=ka2Ia+Ilkd2(N2L2)+Ilkl2(-P1R2)n+ks2Is2+kt2It2=(0.151)+(100.150.909)+(100.80) +(0.80.047 67)+(0.50)=1.552 光强I2沿折射向量P1传输到F1, 这期间由D12所衰减

56、379. 009. 4552. 11221DIIt从此处发出的阴影探测光也不与场景中的其他物体相交,所以表面在该点处仅受到光源入射光线的照射。由该点到光源的向量为 L1=(xl-x1)i+(zl-z1)k =(3-5)i+(10-7.5)k =-2i+2.5k 第8章 真 实 感 图 形 则 L01=-0.625i+0.781k (L01为单位向量) 所以 110. 0)781. 0625. 0(22011 kikiLN相应的反射光线单位向量为 R1=0.781i-0.625k 其单位视线向量为-V1,则有 -V1R1=k(0.781i-0.625k)=-0.625 第8章 真 实 感 图 形

57、 所以 I1=ka1Ia+Ilkd1(N1L1)+Ilkl1(-V1R1)n+ks1Is1+kt1It1=(0.151)+(100.150.11)+(100.80) +(0.80)+(0.50.379)=0.505 I1为传输到观察者的光强度。其值较小,所以该点较暗。这是因为表面F1与光源方向几乎重合的缘故。以上结果还证明了三分之一以上的光强是由表面F2传输过来的。另外,因为n的取值较大,所以看不见局部的镜面反射光。 进行真实感图形绘制时,上述的计算需要进行三次,即分别对红、绿、蓝三原色各计算一次,同时,还需要分别给出在每一种原色下各表面的光照特性。 第8章 真 实 感 图 形 8.6 纹理及

58、其反走样处理纹理及其反走样处理 8.6.1 颜色纹理颜色纹理 采用纹理映射(texture mapping)技术可模拟物体表面精致的不规则的颜色纹理。这种技术是将任意的平面图形或图像覆盖到物体的表面,在物体的表面上形成真实的彩色纹理。计算机图形学中的颜色纹理,可定义为一光亮度函数。 最常用的纹理函数是二维光亮度函数。纹理函数可由一数学模型定义,也可用一幅平面图像表示。 第8章 真 实 感 图 形 1. 长峰波纹理函数长峰波纹理函数 常用的纹理模型是长峰波(long crested wave)纹理模型。设纹理函数为F(u,v),背景光亮度为IG,则长峰波模型定义为一系列正弦或余弦函数的和,即 2

59、)cos(),(iiiiiiGvgufAIvuF式(8-24)中:Ai为幅值;u和v分别为纹理空间的两个坐标;fi和gi分别为u和v的频率系数;i为相位角。 (8-24)第8章 真 实 感 图 形 如果取F(u,v)为两个余弦函数的和,则 F(u,v)=IG+A1cos(f1u+g1v+1)+A2 cos(f2u+g2v+2) 在此,若令f1=g2=1, f2=g1=0, 1=2=0,则 f(u,v)=IG+A1cos(u)+A2cos(v) 再令A1=A2,则可得到两个正交余弦波产生的正四边形纹理,如图 8.6.1 所示。图中粗实线表示波峰,细实线表示零值,虚线表示波谷。实心点表示局部最大,

60、空心点表示局部最小。 在式(8-24)中,如果取i=3,则F(u,v)由三个余弦函数的和组成,产生的纹理为三角形。 长峰波模型中的Ai是随机变量,用这种模型可产生逼真的自然纹理。 第8章 真 实 感 图 形 图 8.6.1 长峰波纹理模型 第8章 真 实 感 图 形 2. 双线性插值纹理函数双线性插值纹理函数 纹理函数也可用一幅数字化平面图像表示。可用一数组F表示一幅数字化图像,F为真实感图像的离散采样,其大小为mn。 对纹理数组进行双线性插值便可得到纹理函数,其方法是:将纹理空间的单位正方形分成(m-1)(n-1)个小的矩形,如图 8.6.2(a)所示。将所产生的小矩形作为纹理数组的相对下标

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论