《维形体的真实感显示.ppt》由会员分享,可在线阅读,更多相关《维形体的真实感显示.ppt(50页珍藏版)》请在金锄头文库上搜索。
1、10. 三维形体的真实感显示1. 1. 简单效果的浓淡图生成简单效果的浓淡图生成2. 2. 一般性效果图形生成一般性效果图形生成3. 3. 真实感效果图生成真实感效果图生成 1) 1) 全局关照模型全局关照模型 2) 2) 光线跟踪光线跟踪 3) 3) 辐射度算法辐射度算法4. 4. 纹理映射纹理映射光照效果影响因素光照效果影响因素当光照射到物体表面时,当光照射到物体表面时,物体对光会发生反射、物体对光会发生反射、透射、吸收、衍射、折射和干涉。透射、吸收、衍射、折射和干涉。被物体吸收的部分转化为热。被物体吸收的部分转化为热。颜色是人对光的生理反映颜色是人对光的生理反映,反射、透射的光进入,反射
2、、透射的光进入人的视觉系统,使我们能看见物体的颜色。人的视觉系统,使我们能看见物体的颜色。为模拟这一现象,我们建立一些数学模型来替代为模拟这一现象,我们建立一些数学模型来替代复杂的物理模型。这些模型就称为复杂的物理模型。这些模型就称为明暗效应模型明暗效应模型或者或者光照明模型光照明模型。思考:我们所见物体的颜色是怎样形成的?思考:我们所见物体的颜色是怎样形成的?影响观察物体颜色的主要因素有哪些?影响观察物体颜色的主要因素有哪些?在不考虑人的生理因素的情况下,在不考虑人的生理因素的情况下,物体的颜色与物体的颜色与光源颜色、物体表面物理特性、表面粗糙度、周边环光源颜色、物体表面物理特性、表面粗糙度
3、、周边环境等因素有关境等因素有关。在正常的情况下,光沿着直线传播,当光遇到介在正常的情况下,光沿着直线传播,当光遇到介质不同的表面时,会产生反射和折射现象,而且质不同的表面时,会产生反射和折射现象,而且在反在反射和折射的时候,它们遵循反射定律和折射定律。射和折射的时候,它们遵循反射定律和折射定律。研究光照模型的目的:研究光照模型的目的:确定物体表面的每一个多边形或者多边形中确定物体表面的每一个多边形或者多边形中的每一个点的颜色。的每一个点的颜色。10. 三维形体的真实感显示1. 1. 简单效果的浓淡图生成简单效果的浓淡图生成2. 2. 一般性效果图形生成一般性效果图形生成3. 3. 真实感效果
4、图生成真实感效果图生成 1) 1) 全局关照模型全局关照模型 2) 2) 光线跟踪光线跟踪 3) 3) 辐射度算法辐射度算法4. 4. 纹理映射纹理映射1.简单效果的浓淡图生成简单效果的浓淡图生成1 1)单颜色填充多边形)单颜色填充多边形算法思路:根据多面体表面的平面法矢决定颜色值,直接调用直接调用OpenGL的多边形填充算法即可的多边形填充算法即可。算法简单,但轮廓分明,各多边形之间过渡不光滑。2 2)GouraudGouraud模型模型算法思想:为使多边形边界之间光滑显示,先计算多边形各顶点光强,后通过双线性插值,计算多边形内各点光强。能保证多边形边界颜色的连续性,但高光模糊,有时出现过亮
5、或过暗条纹(即马赫效应)。计算较为简单,计算较为简单,OpenGL算法已实现硬件加速算法已实现硬件加速。算法步骤:算法步骤:For(每一个三角形)1)计算多边形顶点的平均法向;2)根据基本光照模型计算顶点的平均光强;3)通过线性插值,计算多边形的边上的各点光强;4)通过线性插值,计算多边形内部各点的光强。10.三维形体的真实感显示1. 1. 简单效果的浓淡图生成简单效果的浓淡图生成2. 2. 一般性效果图形生成一般性效果图形生成3. 3. 真实感效果图生成真实感效果图生成 1) 1) 全局关照模型全局关照模型 2) 2) 光线跟踪光线跟踪 3) 3) 辐射度算法辐射度算法4. 4. 纹理映射纹
6、理映射2.一般性效果图形生成一般性效果图形生成1 1)简单光照明模型)简单光照明模型-Phong模型简单光照明模型简单光照明模型模拟物体表面对光的反射作用。光源被假定为点光源点光源,反射作用被细分为镜面反射镜面反射(SpecularReflection)和漫反射漫反射(DiffuseReflection)。简单光照明模型简单光照明模型只考虑物体对直接光照的反射作用,而物体间的光反射作用,只用环环境光境光(AmbientLight)来表示。Phong模型是一种简单光照明模型模型是一种简单光照明模型不妨设:不妨设: 入射光强为入射光强为I Il l 物体表面上点物体表面上点P P 的法向为的法向为
7、N N 从点从点P P指向光源的向量为指向光源的向量为L L 两者间的夹角为两者间的夹角为 图漫反射A A) 理想漫反射理想漫反射 当光源来自一个方向时,当光源来自一个方向时,漫反射光均匀向各方向漫反射光均匀向各方向传播,与视点无关传播,与视点无关,它是由表面的粗糙不平引起的,它是由表面的粗糙不平引起的,因而可假定漫反射光的空间分布是均匀的。因而可假定漫反射光的空间分布是均匀的。 如果如果 I Il l 表示点光源的强度,表示点光源的强度,k kd d 表示物体表面漫反射系数,则表示物体表面漫反射系数,则漫反射方程可描述为:漫反射方程可描述为: (0 若若N N为物体表面的单位法向量,为物体表
8、面的单位法向量,L L为物体表面上一点为物体表面上一点指向光源的单位矢量,则:指向光源的单位矢量,则: 如果有多个光源,则光强度计算式为:如果有多个光源,则光强度计算式为:图漫反射B)镜面反射光)镜面反射光对于理想镜面,反射光集中在一个方向,并遵守反射定律。对一般的光滑表面,反射光集中对一般的光滑表面,反射光集中在一个范围内,且由反射定律决定的在一个范围内,且由反射定律决定的反射方向光强最大反射方向光强最大。图镜面反射光因此,对于同一点来说,从不同位置所观察到的镜面反因此,对于同一点来说,从不同位置所观察到的镜面反射光强是不同的。镜面反射光强可表示为:射光强是不同的。镜面反射光强可表示为: K
9、s Ks是与物体有关的镜面反射系数,是与物体有关的镜面反射系数,a a 为视线方向为视线方向V V与反射与反射方向方向R R的夹角,的夹角,n n为反射指数,反映了物体表面的光泽程度,为反射指数,反映了物体表面的光泽程度,一般为一般为1 120002000,数目越大物体表面越光滑。,数目越大物体表面越光滑。镜面反射光将会在反射方向附近形成很亮的光斑,镜面反射光将会在反射方向附近形成很亮的光斑,称为高光现象称为高光现象。镜面反射光产生的高光区域只反映光源的颜色镜面反射光产生的高光区域只反映光源的颜色将将V和和R都格式化为单位向量,镜面反射光强可表都格式化为单位向量,镜面反射光强可表示为:示为:式
10、中式中:对多个光源:对多个光源:图镜面反射光C)环境光)环境光环境光是指光源间接对物体的影响,是在物体和环境之间多环境光是指光源间接对物体的影响,是在物体和环境之间多次反射,最终达到平衡时的一种光。次反射,最终达到平衡时的一种光。近似地认为同一环境下的环境光,其近似地认为同一环境下的环境光,其光强分布是均匀光强分布是均匀的,它的,它在在任何一个方向上的分布都相同任何一个方向上的分布都相同。例如,透过厚厚云层的阳光就。例如,透过厚厚云层的阳光就可以称为环境光。可以称为环境光。在简单光照明模型中,用一个常数来模拟环境光,用式子表在简单光照明模型中,用一个常数来模拟环境光,用式子表示为:示为:其中:
11、其中:Ia为环境光的光强为环境光的光强Ka为物体对环境光的反射系数为物体对环境光的反射系数D)Phong光照明模型光照明模型综上分析,综上分析,Phong光照明模型表述为:光照明模型表述为:由物体表面上一由物体表面上一点点P 反射到视点的光强反射到视点的光强I 为环境光的反射光强为环境光的反射光强I e、理想漫、理想漫反射光强反射光强I d、和镜面反射光、和镜面反射光I s的总和的总和,即:,即:按按R、G、B三种颜色分量展开计算得:三种颜色分量展开计算得:I I e I d I s由此可得:由此可得:用用Phong模型进行计算时,对物体表面上每个点模型进行计算时,对物体表面上每个点P,均,均
12、需计算光线的反射方向需计算光线的反射方向R,再由,再由V计算(计算(RV),为减少计),为减少计算,可作如下假设:算,可作如下假设:a)光源在无穷远处,即光线方向光源在无穷远处,即光线方向L为常数;为常数;b)视点在无穷远处,即视线方向视点在无穷远处,即视线方向V为常数;为常数;c)为避免计算反射方向为避免计算反射方向R,用(用(HN)代替()代替(RV),),这里这里H为为L和和V的平分向量的平分向量,即:,即:H(LV)/|LV|注意:注意:Phong模型对物体表面的每一点的光强进行计算,显模型对物体表面的每一点的光强进行计算,显然其计算量较大。然其计算量较大。E)Phong模型计算实例模
13、型计算实例图中可以看出高光指数、漫反射及镜面系数对显示效果的影响图中可以看出高光指数、漫反射及镜面系数对显示效果的影响 PhongPhong光照明模型是真实感图形学中提出的第一个有影响光照明模型是真实感图形学中提出的第一个有影响的光照明模型,生成图象的真实度已达到可接受程度。的光照明模型,生成图象的真实度已达到可接受程度。 但在实际应用中,它是一个经验模型,还具有以下的一些但在实际应用中,它是一个经验模型,还具有以下的一些问题:问题: 用用PhongPhong模型显示出的物体象塑料,没有质感;模型显示出的物体象塑料,没有质感; 没有考虑距离对光照强度的衰减影响;没有考虑距离对光照强度的衰减影响
14、; 环境光是常量,没有考虑物体之间相互的反射光;环境光是常量,没有考虑物体之间相互的反射光; 镜面反射的颜色是光源的颜色,与物体的材料无关;镜面反射的颜色是光源的颜色,与物体的材料无关; 镜面反射的计算在入射角很大时会产生失真;镜面反射的计算在入射角很大时会产生失真; PhongPhong模型是简单的局部光照模型,对物体间相互反射及模型是简单的局部光照模型,对物体间相互反射及折射、阴影处理欠缺等。折射、阴影处理欠缺等。 2)浓淡图绘制算法)浓淡图绘制算法 通过前面介绍的通过前面介绍的GouraudGouraud模型、模型、PhongPhong光照模型可光照模型可计算物体表面上点的颜色值计算物体
15、表面上点的颜色值。 为了显示形体的三维真实感效果图,下面介绍多为了显示形体的三维真实感效果图,下面介绍多面体面体浓淡图的如何绘制浓淡图的如何绘制。 由于空间三维物体是连续点集。显由于空间三维物体是连续点集。显然直接计算点的颜色将无法确定计算采然直接计算点的颜色将无法确定计算采样点的位置和数目。样点的位置和数目。事实上,我们仅能看到屏幕所能显示的区域。如事实上,我们仅能看到屏幕所能显示的区域。如果能够求得屏幕上每一个象素点所对应的物体上点的果能够求得屏幕上每一个象素点所对应的物体上点的颜色,这样就可绘制整个图形。颜色,这样就可绘制整个图形。为了得到屏幕上某象素点所对应的物体上点的颜为了得到屏幕上
16、某象素点所对应的物体上点的颜色,假定作经过该象素点的一条射线,射线平行于观色,假定作经过该象素点的一条射线,射线平行于观察视线,则射线与多面体物体可能有多个交点。察视线,则射线与多面体物体可能有多个交点。 如果物体不是透明的,则处于最前面的交点的颜如果物体不是透明的,则处于最前面的交点的颜色即为所求色即为所求,如右图所示。,如右图所示。最简单的算法最简单的算法ZZ缓冲区(缓冲区(Z-BufferZ-Buffer)算法)算法为计算物体表面上对应象素点的颜色为计算物体表面上对应象素点的颜色,用帧缓存器存,用帧缓存器存放每个象素颜色(按光照模型计算),用深度缓存空间来放每个象素颜色(按光照模型计算)
17、,用深度缓存空间来存放每个象素深度值存放每个象素深度值Z,称为称为Z缓冲器(即缓冲器(即Z-Buffer)。A)Z缓冲器缓冲器(Z-Buffer)算法算法cz绘制时思路:绘制时思路:1)Z缓冲器中每个单元值是对应象素点所反映物缓冲器中每个单元值是对应象素点所反映物体对象的体对象的z坐标值,初值取成坐标值,初值取成z的极小值。的极小值。2)将待处理的景物表面上的采样点变换到图像空)将待处理的景物表面上的采样点变换到图像空间,计算其深度值间,计算其深度值z。3)并根据采样点在屏幕上的投影位置,将其)并根据采样点在屏幕上的投影位置,将其z值与值与已存贮在已存贮在z缓存器中相应象素处的原可见点的深度值
18、进缓存器中相应象素处的原可见点的深度值进行比较。行比较。4)如果该采样点位于)如果该采样点位于Z缓存器所记录的可见点之前,缓存器所记录的可见点之前,则将该采样点处的表面颜色填入帧缓存器相应象素,同则将该采样点处的表面颜色填入帧缓存器相应象素,同时用其深度值更新时用其深度值更新z缓存器存贮的深度值。否则,不写缓存器存贮的深度值。否则,不写入也不更新。入也不更新。Z-Buffer算法()算法()for(i=0,1,m)/m:窗口水平方向象素数目:窗口水平方向象素数目for(j=1,n)/n:窗口垂直方向象素数目:窗口垂直方向象素数目用背景色初始化帧缓存用背景色初始化帧缓存CB:CB(i,j)=背景
19、色;背景色;用最小用最小Z值初始化深度缓存:值初始化深度缓存:ZB(i,j)=Zmin;for(每一个多边形每一个多边形)将该多边形进行投影变换;将该多边形进行投影变换;扫描转换该多边形在视平面上的扫描转换该多边形在视平面上的投影多边形投影多边形;for(该多边形所覆盖的每个象素该多边形所覆盖的每个象素(i,j)计算该多边形在该象素的深度值计算该多边形在该象素的深度值Zi,j;if(Zi,jZB(i,j))ZB(i,j)Zi,j;计算该多边形在该象素的颜色值计算该多边形在该象素的颜色值Ci,j;CB(i,j)=Ci,j;注:对投影多边形进行裁剪得到有效区域,可加快显示速度注:对投影多边形进行裁
20、剪得到有效区域,可加快显示速度Z-Buffer算法在象素级上以近物取代远物。形体算法在象素级上以近物取代远物。形体在屏幕上的出现顺序是无关紧要的。这种取代方法实在屏幕上的出现顺序是无关紧要的。这种取代方法实现起来远比总体排序灵活简单,有利于硬件实现。现起来远比总体排序灵活简单,有利于硬件实现。然而然而Z-Buffer算法存在缺点:占用空间大,没有算法存在缺点:占用空间大,没有利用图形的相关性与连续性。利用图形的相关性与连续性。Z-Buffer算法以算法简算法以算法简单著称,但也以占空间大而闻名。单著称,但也以占空间大而闻名。Z-Buffer算法需要开一个与图象大小相等的缓存算法需要开一个与图象
21、大小相等的缓存数组数组ZB,可一次性显示。,可一次性显示。当然,也可只用一个深度缓存变量当然,也可只用一个深度缓存变量zb,但需逐点,但需逐点计算显示,显示效率低下。计算显示,显示效率低下。B)扫描线扫描线Z-buffer算法算法如何如何减少减少Z-Buffer的缓冲内存的缓冲内存,并,并利用相关性利用相关性提高点提高点与多边形的包含性测试和深度计算速度,就得到与多边形的包含性测试和深度计算速度,就得到扫描线扫描线Z-Buffer算法算法。从最上扫描线开始向下对每条扫描线作处理。对每条从最上扫描线开始向下对每条扫描线作处理。对每条扫描线来说,把相应的帧缓冲器单元置成底色,在扫描线来说,把相应的
22、帧缓冲器单元置成底色,在z缓冲缓冲器中存放器中存放z的极小值。的极小值。与与Z-Buffer算法相比,扫描线算法相比,扫描线Z-Buffer将整个绘图窗口将整个绘图窗口内的消隐问题分解到一条条扫描线上解决,使所需的内的消隐问题分解到一条条扫描线上解决,使所需的Z缓缓冲器大大减少。冲器大大减少。对对每个多边形检查它在每个多边形检查它在oxy平面上的投影平面上的投影和当前扫描线是否相交和当前扫描线是否相交(如右上图),若不相(如右上图),若不相交则跳过该多边形;交则跳过该多边形;若相交则扫描线和多边形边界交点一定成若相交则扫描线和多边形边界交点一定成对出现,对出现,对每对交点间的象素计算多边形所在
23、对每对交点间的象素计算多边形所在平面对应点的深度平面对应点的深度(即即z值值),并和,并和z缓冲器中相缓冲器中相应深度值比较。应深度值比较。对所有多边形和帧缓冲器每一行都作上述对所有多边形和帧缓冲器每一行都作上述处理。利用处理。利用多边形多边形Y桶桶分类、分类、活化边表活化边表处理相处理相邻扫描线和象素的连贯性,提高算法效率。邻扫描线和象素的连贯性,提高算法效率。交线交线C)区间扫描线算法区间扫描线算法扫描线扫描线z缓冲器算法将消隐问题分缓冲器算法将消隐问题分散到每一条扫描线上去解决,这样问题散到每一条扫描线上去解决,这样问题变得较简单了。但变得较简单了。但在每个象素处计算多在每个象素处计算多
24、边形边形z值的工作量仍是很大值的工作量仍是很大。实际上实际上每条扫描线被各多边形边界每条扫描线被各多边形边界在在oxy平面上的投影分割成为数不多的平面上的投影分割成为数不多的区间区间(如右图),每一个区间上只显示(如右图),每一个区间上只显示一个面。一个面。因此,因此,只要在区间上任一点处,找只要在区间上任一点处,找出在该处出在该处z值最大的一个面值最大的一个面,这个区间,这个区间上的每个象素就用这个面的颜色来显示上的每个象素就用这个面的颜色来显示。这就是所谓。这就是所谓区间扫描线算法区间扫描线算法。区间扫描线算法使得在一条扫区间扫描线算法使得在一条扫描线上描线上每个区间只计算一次深度值,每个
25、区间只计算一次深度值,不需要不需要Z缓冲器缓冲器。它是把当前扫描线与各它是把当前扫描线与各多边形多边形在投影平面的投影的交点进行排序在投影平面的投影的交点进行排序后,使后,使扫描线分为若干子区间扫描线分为若干子区间。因此,只要因此,只要在该区间任一点处在该区间任一点处找出在该处找出在该处z值最大的一个面值最大的一个面,这,这个区间上的每一个象素就用这个面个区间上的每一个象素就用这个面的颜色来显示。的颜色来显示。当然,现在计算机的硬件发展很快,缓存数组当然,现在计算机的硬件发展很快,缓存数组所耗空间已不是障碍。所耗空间已不是障碍。PhongPhong模型的区间扫描线绘制算法示例模型的区间扫描线绘
26、制算法示例10. 三维形体的真实感显示1. 1. 简单效果的浓淡图生成简单效果的浓淡图生成2. 2. 一般性效果图形生成一般性效果图形生成3. 3. 真实感效果图生成真实感效果图生成 1) 1) 全局关照模型全局关照模型 2) 2) 光线跟踪光线跟踪 3) 3) 辐射度算法辐射度算法4. 4. 纹理映射纹理映射1 1)整体光照明模型及真实感显示)整体光照明模型及真实感显示 简单光简单光照明模型和照明模型和局部光局部光照明模型,虽然可以产生物体的真照明模型,虽然可以产生物体的真实感图象,但它们都只是处理光源直接照射物体表面的光强计算,实感图象,但它们都只是处理光源直接照射物体表面的光强计算,不能
27、很好的模拟光的折射、反射和阴影等,也不能用来表示物体不能很好的模拟光的折射、反射和阴影等,也不能用来表示物体间的相互光照明影响。间的相互光照明影响。而基于简单光照明模型的光透射模型,虽然可以模拟光的折而基于简单光照明模型的光透射模型,虽然可以模拟光的折射,但是这种折射的计算范围很小,不能很好的模拟多个透明体射,但是这种折射的计算范围很小,不能很好的模拟多个透明体之间的复杂光照明现象。之间的复杂光照明现象。对于上述的这些问题,就必须要有一个更精确的光照明模型。对于上述的这些问题,就必须要有一个更精确的光照明模型。整体光照明模型就是这样的一种模型,它是相对于局部光照明模整体光照明模型就是这样的一种
28、模型,它是相对于局部光照明模型而言的。在现有的整体光照明模型中,主要有型而言的。在现有的整体光照明模型中,主要有光线跟踪光线跟踪和和辐射辐射度度两种绘制方法。两种绘制方法。2 2)光线跟踪算法的基本思想)光线跟踪算法的基本思想 光线跟踪算法是真实感图形学中的主要算法之一,算法具有原光线跟踪算法是真实感图形学中的主要算法之一,算法具有原理简单、实现方便和能够生成各种逼真的视觉效果等优点。理简单、实现方便和能够生成各种逼真的视觉效果等优点。在真实感图形学对光线跟踪算法的研究中,在真实感图形学对光线跟踪算法的研究中,Whitted提出了第提出了第一个整体光照模型,并给出一般性光线跟踪算法的范例,综合
29、考虑一个整体光照模型,并给出一般性光线跟踪算法的范例,综合考虑了光的反射、折射透射、阴影等。了光的反射、折射透射、阴影等。光线跟综过程示意图简单光透射模型把透射光分为理想漫透射和规则透射。简单光透射模型把透射光分为理想漫透射和规则透射。由光源发出的光称为由光源发出的光称为直接光直接光,物体对直接光的反射或折射,物体对直接光的反射或折射称为称为直接反射直接反射和和直接折射直接折射。把物体表面间对光的反射和折射称为把物体表面间对光的反射和折射称为间接光间接光,间接反射,间接反射,间接折射。间接折射。这是光线在物体间的传播方式,是光线跟踪算法的这是光线在物体间的传播方式,是光线跟踪算法的基础。基础。
30、由光源发出的光到达物由光源发出的光到达物体表面后,产生反射和折射,体表面后,产生反射和折射,简单光照明模型和光透射模简单光照明模型和光透射模型模拟了这两种现象。型模拟了这两种现象。在简单光照明模型中,在简单光照明模型中,反射被分为反射被分为理想漫反射和镜理想漫反射和镜面反射光面反射光。最基本的光线跟踪算法是跟踪镜面反射和折射最基本的光线跟踪算法是跟踪镜面反射和折射。从光源发出的光遇到物体的表面,发生反射和折射,光就改变从光源发出的光遇到物体的表面,发生反射和折射,光就改变方向,沿着反射方向和折射方向继续前进,直到遇到新的物体。方向,沿着反射方向和折射方向继续前进,直到遇到新的物体。但是光源发出
31、光线,经反射与折射,只有很少部分可以进入人但是光源发出光线,经反射与折射,只有很少部分可以进入人的眼睛。的眼睛。因此实际光线跟踪算法的跟因此实际光线跟踪算法的跟踪方向与光传播的方向是相反的,踪方向与光传播的方向是相反的,而是视线跟踪。而是视线跟踪。由视点与象素由视点与象素(x,y)发出一发出一根射线,与第一个物体相交后,根射线,与第一个物体相交后,在其反射与折射方向上进行跟踪,在其反射与折射方向上进行跟踪,如图所示。如图所示。此时,光线在离视点最近的景物表面交点处的走向有以下三此时,光线在离视点最近的景物表面交点处的走向有以下三种可能:种可能:1)当前交点所在的景物表面为理想漫射面。跟踪结束。
32、当前交点所在的景物表面为理想漫射面。跟踪结束。2)当前所在的景物表面为理想镜面光线沿其镜面反射方向继当前所在的景物表面为理想镜面光线沿其镜面反射方向继续跟踪。续跟踪。3)当前交点所在的景物表面为规则透射面光线沿其规则透射当前交点所在的景物表面为规则透射面光线沿其规则透射方向继续跟踪。方向继续跟踪。显然,上述过程是一递归跟踪过程。显然,上述过程是一递归跟踪过程。对每一根穿过屏幕象素中心的光线的跟踪对每一根穿过屏幕象素中心的光线的跟踪构成了一棵二义树。构成了一棵二义树。虽然光线在景物间的反射和折射可以虽然光线在景物间的反射和折射可以无限地进行下,但在实际计算时不可能做无限地进行下,但在实际计算时不
33、可能做无休止的光线跟踪,因而需要给出光线跟无休止的光线跟踪,因而需要给出光线跟踪的终判条件。如设定跟踪层数,光亮度踪的终判条件。如设定跟踪层数,光亮度小于给定值等条件。小于给定值等条件。3 3)辐射度方法)辐射度方法辐射度方法是继光线跟踪算法后,真实感图形绘制技术辐射度方法是继光线跟踪算法后,真实感图形绘制技术的一个重要进展。的一个重要进展。光线跟踪算法成功地模拟了景物表面间的镜面反射、规光线跟踪算法成功地模拟了景物表面间的镜面反射、规则透射及阴影等整体光照效果。则透射及阴影等整体光照效果。由于光线跟踪算法的采样特性和局部光照模型的不完善由于光线跟踪算法的采样特性和局部光照模型的不完善性,该方
34、法难于模拟景物表面之间的多重漫反射效果,因而性,该方法难于模拟景物表面之间的多重漫反射效果,因而不能反映色彩渗透现象。不能反映色彩渗透现象。将热辐射工程中的辐射度方法引入到计算机图形学中,将热辐射工程中的辐射度方法引入到计算机图形学中,用辐射度方法成功地模拟了理想漫反射表面间的多重漫反射用辐射度方法成功地模拟了理想漫反射表面间的多重漫反射效果。效果。经过十多年的发展,辐射度方法模拟的场景越来越复杂,经过十多年的发展,辐射度方法模拟的场景越来越复杂,图形效果越来越真实。图形效果越来越真实。与前面介绍的光照模型与绘制方法有所不同,辐与前面介绍的光照模型与绘制方法有所不同,辐射度方法基于物理学的能量
35、平衡原理,它采用数值求射度方法基于物理学的能量平衡原理,它采用数值求解技术来近似每一个景物表面的辐射度分布。解技术来近似每一个景物表面的辐射度分布。在图形绘制场景中,景物表面的辐射度分布与视点选取无关,辐射度方法是一个视点独立(ViewIndependent)的算法。由于其视点无关性,使之可广泛应用于虚拟环境的漫游(walk-through)系统中。10. 三维形体的真实感显示1. 1. 简单效果的浓淡图生成简单效果的浓淡图生成2. 2. 一般性效果图形生成一般性效果图形生成3. 3. 真实感效果图生成真实感效果图生成 1) 1) 全局关照模型全局关照模型 2) 2) 光线跟踪光线跟踪 3)
36、3) 辐射度算法辐射度算法4. 4. 纹理映射纹理映射二维纹理映射实质上是从二维纹理平面到三二维纹理映射实质上是从二维纹理平面到三维景物表面的一个映射维景物表面的一个映射(如右图如右图)。通常,二维纹理在一个纹理空间(通常,二维纹理在一个纹理空间(s,t)坐标)坐标系内的矩形区域中用光强度值来定义,其中每一系内的矩形区域中用光强度值来定义,其中每一点处,均定义有一灰度值或颜色值。点处,均定义有一灰度值或颜色值。而场景中的物体表面则在景物空间(而场景中的物体表面则在景物空间(u,v)坐标系中定义的,投影平面上的象素点是在图象坐标系中定义的,投影平面上的象素点是在图象空间内的直角坐标系空间内的直角
37、坐标系xoy中定义的。中定义的。1 1)二维纹理映射)二维纹理映射在绘制时,应用纹理映射方法可以方便地确定景物表面在绘制时,应用纹理映射方法可以方便地确定景物表面上任一可见点上任一可见点P处在纹理空间中的对应位置处在纹理空间中的对应位置(s,t);而而(s,t)处所定义的纹理值或颜色值即描述了景物表面在处所定义的纹理值或颜色值即描述了景物表面在P处的某种纹理属性。处的某种纹理属性。把该点处的纹理颜色值作为漫反射系数代入光照模型把该点处的纹理颜色值作为漫反射系数代入光照模型(如简化的(如简化的Phong反射模型)中进行计算,就能够生成具有反射模型)中进行计算,就能够生成具有纹理效果的真实感图象。
38、纹理效果的真实感图象。纹理影射技术可分为如下两步纹理影射技术可分为如下两步进行:进行:a)纹理表示:确定表面的哪纹理表示:确定表面的哪些参数需定义成纹理形式,即确定些参数需定义成纹理形式,即确定纹理属性。纹理属性。b)映射纹理:建立纹理空间映射纹理:建立纹理空间与景物空间及景物空间与屏幕图象与景物空间及景物空间与屏幕图象空间之间的映射关系。空间之间的映射关系。2 2) 纹理的表示方法纹理的表示方法二维纹理最常见的表示方法就是二维纹理最常见的表示方法就是数字数字化的彩色图象化的彩色图象,其分辨率用,其分辨率用mn表示,颜表示,颜色数用色数用2k表示,例如,表示,例如,k=1表示黑白(二表示黑白(
39、二值)图象;值)图象;用位图(用位图(BitMap)文件()文件(BMP文件)文件)或其它格式的图象文件(例如:或其它格式的图象文件(例如:PCX,TIFF或或JPEG等图象文件)保存。等图象文件)保存。纹理的另外一种表示方法就是纹理的另外一种表示方法就是用解析函用解析函数或过程来表示数或过程来表示。例如:我们可以用三维空。例如:我们可以用三维空间中定义的共振函数(正弦函数)来生成木间中定义的共振函数(正弦函数)来生成木纹理或大理石纹理,这种纹理映射方法称为纹理或大理石纹理,这种纹理映射方法称为过程纹理映射。过程纹理映射。3 3) 纹理的映射方法纹理的映射方法大体上,实现纹理影射的方法有两类:
40、a)将纹理模式映射到景物表面,然后再从景物表面映射到投影平面,即:纹理空间景物空间图象空间;为简化计算,由纹理空间向景物空间映射采用线性映射:由景物空间向图象空间变换通过平行或透视投影来实现。b)将象素区域映射到景物表面,再由景物表面映射到纹理空间,即:图象空间景物空间纹理空间。这一类方法避免了象素的分割计算,并能简化反走样处理;但是它一般需要计算投影变换和纹理映射的逆变换。环境映射(反射映射)环境映射(反射映射)如茶具上映射房间背景如茶具上映射房间背景凸凹纹理(如桔子皮的模拟)凸凹纹理(如桔子皮的模拟)几何扰动几何扰动法矢扰动法矢扰动过程纹理(体纹理):过程纹理(体纹理):三维木材材质效果三维木材材质效果三维大理石效果三维大理石效果4 4) 其它纹理映射方法其它纹理映射方法思考题:思考题:1.了解CAD模型的真实感显示基本概念2.了解简单光照模型的绘制原理(1)Phong模型(2)Z-Buffer