第11讲-三维形体的真实感显示课件_第1页
第11讲-三维形体的真实感显示课件_第2页
第11讲-三维形体的真实感显示课件_第3页
第11讲-三维形体的真实感显示课件_第4页
第11讲-三维形体的真实感显示课件_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

1.简单效果的浓淡图生成2.一般性效果图形生成3.真实感效果图生成(*)

1)全局关照模型

2)光线跟踪

3)辐射度算法4.纹理映射10、三维形体的真实感显示光照效果影响因素当光照射到物体表面时,物体对光会发生反射、透射、吸收、衍射、折射和干涉。

被物体吸收的部分转化为热。

颜色是人对光的生理反映,反射、透射的光进入人的视觉系统,使我们能看见物体的颜色。为模拟这一现象,我们建立一些数学模型来替代复杂的物理模型。这些模型就称为明暗效应模型或者光照明模型。思考:我们所见物体的颜色是怎样形成的?影响观察物体颜色的主要因素有哪些?在不考虑人的生理因素的情况下,物体的颜色与光源颜色、物体表面物理特性、表面粗糙度、周边环境等因素有关。在正常的情况下,光沿着直线传播,当光遇到介质不同的表面时,会产生反射和折射现象,而且在反射和折射的时候,它们遵循反射定律和折射定律。研究光照模型的目的:确定物体表面的每一个多边形或者多边形中的每一个点的颜色。

1.简单效果的浓淡图生成2.一般性效果图形生成3.真实感效果图生成(*)

1)全局关照模型

2)光线跟踪

3)辐射度算法4.纹理映射10、三维形体的真实感显示1)单颜色填充多边形算法思路:根据多面体表面的平面法矢决定颜色值,直接调用OpenGL的多边形填充算法即可。算法简单,但轮廓分明,各多边形之间过渡不光滑。简单效果的浓淡图生成

1.简单效果的浓淡图生成2.一般性效果图形生成3.真实感效果图生成(*)

1)全局关照模型

2)光线跟踪

3)辐射度算法4.纹理映射10、三维形体的真实感显示1)简单光照明模型--Phong模型

简单光照明模型模拟物体表面对光的反射作用。光源被假定为点光源,反射作用被细分为镜面反射(SpecularReflection)和漫反射(DiffuseReflection)。简单光照明模型只考虑物体对直接光照的反射作用,而物体间的光反射作用,只用环境光(AmbientLight)来表示。Phong模型是一种简单光照明模型一般性效果图形生成不妨设:

入射光强为Il

物体表面上点P的法向为N

从点P指向光源的向量为L

两者间的夹角为图

漫反射A)理想漫反射当光源来自一个方向时,漫反射光均匀向各方向传播,与视点无关,它是由表面的粗糙不平引起的,因而可假定漫反射光的空间分布是均匀的。如果Il表示点光源的强度,kd表示物体表面漫反射系数,则漫反射方程可描述为:

(0≤≤若N为物体表面的单位法向量,L为物体表面上一点指向光源的单位矢量,则:

如果有多个光源,则光强度计算式为:图

漫反射B)镜面反射光

对于理想镜面,反射光集中在一个方向,并遵守反射定律。

对一般的光滑表面,反射光集中在一个范围内,且由反射定律决定的反射方向光强最大。

镜面反射光因此,对于同一点来说,从不同位置所观察到的镜面反射光强是不同的。镜面反射光强可表示为:Ks是与物体有关的镜面反射系数,a为视线方向V与反射方向R的夹角,n为反射指数,反映了物体表面的光泽程度,一般为1~2000,数目越大物体表面越光滑。

镜面反射光将会在反射方向附近形成很亮的光斑,称为高光现象。

镜面反射光产生的高光区域只反映光源的颜色将V和R都格式化为单位向量,镜面反射光强可表示为:式中:

对多个光源:图

镜面反射光

C)环境光

环境光是指光源间接对物体的影响,是在物体和环境之间多次反射,最终达到平衡时的一种光。近似地认为同一环境下的环境光,其光强分布是均匀的,它在任何一个方向上的分布都相同。例如,透过厚厚云层的阳光就可以称为环境光。在简单光照明模型中,用一个常数来模拟环境光,用式子表示为:

其中:Ia为环境光的光强Ka为物体对环境光的反射系数

D)Phong光照明模型

综上分析,Phong光照明模型表述为:由物体表面上一点P反射到视点的光强I为环境光的反射光强Ie、理想漫反射光强Id、和镜面反射光Is

的总和,即:按R、G、B三种颜色分量展开计算得:I=Ie

+Id

+Is由此可得:用Phong模型进行计算时,对物体表面上每个点P,均需计算光线的反射方向R,再由V计算(R·V),为减少计算,可作如下假设:

a)光源在无穷远处,即光线方向L为常数;

b)视点在无穷远处,即视线方向V为常数;c)为避免计算反射方向R,用(H·N)代替(R·V),这里H为L和V的平分向量,即:

H=(L+V)/|L+V|注意:Phong模型对物体表面的每一点的光强进行计算,显然其计算量较大。yxzP已知P点处光源矢量(-3,4,0),法线矢量(0,2,0),视线矢量(4,3,0),光源强度为(10,5,5),环境光强度(1,1,1),物体表面漫反射系数0.2,镜面反射系数0.7,环境光反射系数0.2,高光指数为2。例:用phong模型计算点P处的光强解:由已知条件计算得P点处:单位光源向量为L(-3/5,4/5,0)镜面反射光单位向量R(3/5,4/5,0)单位法矢向量为N(0,1,0)单位视线向量V(4/5,3/5,0)光源强度Ip为(10,5,5)环境光强度Ia为(1,1,1)漫反射系数Kd

=0.2镜面反射系数Ks=0.7环境光反射系数Ka=0.2高光指数n=2=cos(LN)=|-3/5|×0+4/5×1+0×0=0.8=cos(RV)=3/5×4/5+4/5×3/5+0×0=0.96Ir=1×0.2+10×0.2×0.8+10×0.7×(0.96)2=8.2512Ig=1×0.2+5×0.2×0.8+5×0.7×(0.96)2=4.2256Ib=1×0.2+5×0.2×0.8+5×0.7×(0.96)2=4.2256于是,得P点处的光照强度为(8.25,4.22,4.22)。根据phong光照模型则,则P点的光照计算公式如下:=++E)Phong模型计算实例图中可以看出高光指数、漫反射及镜面系数对显示效果的影响Phong光照明模型是真实感图形学中提出的第一个有影响的光照明模型,生成图象的真实度已达到可接受程度。但在实际应用中,它是一个经验模型,还具有以下的一些问题:用Phong模型显示出的物体象塑料,没有质感;没有考虑距离对光照强度的衰减影响;环境光是常量,没有考虑物体之间相互的反射光;镜面反射的颜色是光源的颜色,与物体的材料无关;镜面反射的计算在入射角很大时会产生失真;

Phong模型是简单的局部光照模型,对物体间相互反射及折射、阴影处理欠缺等。2)浓淡图绘制算法

通过前面介绍的gouraud模型、Phong光照模型可计算物体表面上点的颜色值。为了显示形体的三维真实感效果图,下面介绍多面体浓淡图的如何绘制。由于空间三维物体是连续点集。显然直接计算点的颜色将无法确定计算采样点的位置和数目。

事实上,我们仅能看到屏幕所能显示的区域。如果能够求得屏幕上每一个象素点所对应的物体上点的颜色,这样就可绘制整个图形。

为了得到屏幕上某象素点所对应的物体上点的颜色,假定作经过该象素点的一条射线,射线平行于观察视线,则射线与多面体物体可能有多个交点。

如果物体不是透明的,则处于最前面的交点的颜色即为所求,如右图所示。

最简单的算法——Z缓冲区(Z-Buffer)算法为计算物体表面上对应象素点的颜色,用帧缓存器存放每个象素颜色(按光照模型计算),用深度缓存空间来存放每个象素深度值Z,称为Z缓冲器(即Z-Buffer)。A)Z缓冲器(Z-Buffer)算法

cz绘制时思路:1)Z缓冲器中每个单元值是对应象素点所反映物体对象的z坐标值,初值取成z的极小值。

2)将待处理的景物表面上的采样点变换到图像空间,计算其深度值z。

3)并根据采样点在屏幕上的投影位置,将其z值与已存贮在z缓存器中相应象素处的原可见点的深度值进行比较。

4)如果该采样点位于Z缓存器所记录的可见点之前,则将该采样点处的表面颜色填入帧缓存器相应象素,同时用其深度值更新z缓存器存贮的深度值。否则,不写入也不更新。Z-Buffer算法(){for(i=0,1,…,m)//m:窗口水平方向象素数目

for(j=1,…,n)//n:窗口垂直方向象素数目

{用背景色初始化帧缓存CB:CB(i,j)=背景色;

用最小Z值初始化深度缓存:ZB(i,j)=Zmin;

}

for(每一个多边形)

{将该多边形进行投影变换;

扫描转换该多边形在视平面上的投影多边形;

for(该多边形所覆盖的每个象素(i,j))

{计算该多边形在该象素的深度值Zi,j;

if(Zi,j>ZB(i,j))

{ZB(i,j)=Zi,j;

计算该多边形在该象素的颜色值Ci,j;

CB(i,j)=Ci,j;

}

}

}

}注:对投影多边形进行裁剪得到有效区域,可加快显示速度Z-Buffer算法在象素级上以近物取代远物。形体在屏幕上的出现顺序是无关紧要的。这种取代方法实现起来远比总体排序灵活简单,有利于硬件实现。然而Z-Buffer算法存在缺点:占用空间大,没有利用图形的相关性与连续性。Z-Buffer算法以算法简单著称,但也以占空间大而闻名。Z-Buffer算法需要开一个与图象大小相等的缓存数组ZB,可一次性显示。当然,也可只用一个深度缓存变量zb,但需逐点计算显示,显示效率低下。

B)扫描线Z-buffer算法

如何减少Z-buffer的缓冲内存,并利用相关性提高点与多边形的包含性测试和深度计算速度,就得到扫描线Z-buffer算法。从最上扫描线开始向下对每条扫描线作处理。对每条扫描线来说,把相应的帧缓冲器单元置成底色,在z缓冲器中存放z的极小值。与Z-buffer算法相比,扫描线Z-buffer将整个绘图窗口内的消隐问题分解到一条条扫描线上解决,使所需的Z缓冲器大大减少。对每个多边形检查它在oxy平面上的投影和当前扫描线是否相交(如右上图),若不相交则跳过该多边形;若相交则扫描线和多边形边界交点一定成对出现,对每对交点间的象素计算多边形所在平面对应点的深度(即z值),并和z缓冲器中相应深度值比较。对所有多边形和帧缓冲器每一行都作上述处理。利用多边形Y桶分类、活化边表处理相邻扫描线和象素的连贯性,提高算法效率。交线C)区间扫描线算法

扫描线z缓冲器算法将消隐问题分散到每一条扫描线上去解决,这样问题变得较简单了。但在每个象素处计算多边形z值的工作量仍是很大。实际上每条扫描线被各多边形边界在oxy平面上的投影分割成为数不多的区间(如右图),每一个区间上只显示一个面。因此,只要在区间上任一点处,找出在该处z值最大的一个面,这个区间上的每个象素就用这个面的颜色来显示。这就是所谓区间扫描线算法。区间扫描线算法使得在一条扫描线上每个区间只计算一次深度值,不需要Z缓冲器。它是把当前扫描线与各多边形在投影平面的投影的交点进行排序后,使扫描线分为若干子区间。因此,只要在该区间任一点处找出在该处z值最大的一个面,这个区间上的每一个象素就用这个面的颜色来显示。当然,现在计算机的硬件发展很快,缓存数组所耗空间已不是障碍。Phong模型的区间扫描线绘制算法示例

1.简单效果的浓淡图生成2.一般性效果图形生成3.真实感效果图生成(*)

1)全局关照模型

2)光线跟踪

3)辐射度算法4.纹理映射10、三维形体的真实感显示1)整体光照明模型及真实感显示简单光照明模型和局部光照明模型,虽然可以产生物体的真实感图象,但它们都只是处理光源直接照射物体表面的光强计算,不能很好的模拟光的折射、反射和阴影等,也不能用来表示物体间的相互光照明影响。而基于简单光照明模型的光透射模型,虽然可以模拟光的折射,但是这种折射的计算范围很小,不能很好的模拟多个透明体之间的复杂光照明现象。对于上述的这些问题,就必须要有一个更精确的光照明模型。整体光照明模型就是这样的一种模型,它是相对于局部光照明模型而言的。在现有的整体光照明模型中,主要有光线跟踪和辐射度两种绘制方法。2)光线跟踪算法的基本思想

光线跟踪算法是真实感图形学中的主要算法之一,算法具有原理简单、实现方便和能够生成各种逼真的视觉效果等优点。在真实感图形学对光线跟踪算法的研究中,Whitted提出了第一个整体光照模型,并给出一般性光线跟踪算法的范例,综合考虑了光的反射、折射透射、阴影等。光线跟综过程示意图

最基本的光线跟踪算法是跟踪镜面反射和折射。从光源发出的光遇到物体的表面,发生反射和折射,光就改变方向,沿着反射方向和折射方向继续前进,直到遇到新的物体。但是光源发出光线,经反射与折射,只有很少部分可以进入人的眼睛。因此实际光线跟踪算法的跟踪方向与光传播的方向是相反的,而是视线跟踪。由视点与象素(x,y)发出一根射线,与第一个物体相交后,在其反射与折射方向上进行跟踪,如图所示。

此时,光线在离视点最近的景物表面交点处的走向有以下三种可能:

1)当前交点所在的景物表面为理想漫射面。跟踪结束。

2)当前所在的景物表面为理想镜面.光线沿其镜面反射方向继续跟踪。

3)当前交点所在的景物表面为规则透射面.光线沿其规则透射方向继续跟踪。显然,上述过程是一递归跟踪过程。对每一根穿过屏幕象素中心的光线的跟踪构成了一棵二义树。虽然光线在景物间的反射和折射可以无限地进行下,但在实际计算时不可能做无休止的光线跟踪,因而需要给出光线跟踪的终判条件。如设定跟踪层数,光亮度小于给定值等条件。光线跟踪算法-算法描述设置视点,投影平面以及窗口的参数;For(窗口内的每一条扫描线)for(扫描线上的每一个像素){确定从视点指向像素中心的光线ray;像素的颜色=RayTracing(ray,1);}ColorRayTracing(Rayray,intdepth){求ray与物体表面最近的交点P;if(有交点){用局部光照明模型计算P点的Ic;color=Ic;if(depth<给定的最大跟踪层次){计算ray的反射光线;Is=RayTracing(反射光线,depth+1);if(物体是透明的){计算ray的透射光线;It=RayTracing(透射光线,depth+1);}color=Ic+Is+It;}}elsecolor=black;returncolor;}3)辐射度方法辐射度方法是继光线跟踪算法后,真实感图形绘制技术的一个重要进展。光线跟踪算法成功地模拟了景物表面间的镜面反射、规则透射及阴影等整体光照效果。由于光线跟踪算法的采样特性和局部光照模型的不完善性,该方法难于模拟景物表面之间的多重漫反射效果,因而不能反映色彩渗透现象。将热辐射工程中的辐射度方法引入到计算机图形学中,用辐射度方法成功地模拟了理想漫反射表面间的多重漫反射效果。

经过十多年的发展,辐射度方法模拟的场景越来越复杂,图形效果越来越真实。与前面介绍的光照模型与绘制方法有所不同,辐射度方法基于物理学的能量平衡原理,它采用数值求解技术来近似每一个景物表面的辐射度分布。

在图形绘制场景中,景物表面的辐射度分布与视点选取无关,辐射度方法是一个视点独立(Viewindependent)的算法。由于其视点无关性,使之可广泛应用于虚拟环境的漫游(walkthrough)系统中。

1.简单效果的浓淡图生成2.一般性效果图形生成3.真实感效果图生成(*)

1)全局光照模型

2)光线跟踪

3)辐射度算法4.纹理映射10、三维形体的真实感显示二维纹理映射实质上是从二维纹理平面到三维景物表面的一个映射(如右图)。通常,二维纹理在一个纹理空间(s,t)坐标系内的矩形区域中用光强度值来定义,其中每一点处,均定义有一灰度值或颜色值。而场景中的物体表面则在景物空间(u,v)坐标系中定义的,投影平面上的象素点是在图象空间内的直角坐标系xoy中定义的。1)二维纹理映射在绘制时,应用纹理映射方法可以方便地确定景物表面上任一可见点P处在纹理空间中的对应位置(s,t);而(s,t)处所定义的纹理值或颜色值即描述了景物表面在P处的某种纹理属性。把该点处的纹理颜色值作为漫反射系数代入光照模型(

温馨提示

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

评论

0/150

提交评论