CG7真实感图形1课件

上传人:尘*** 文档编号:242938298 上传时间:2024-09-12 格式:PPT 页数:61 大小:250.50KB
返回 下载 相关 举报
CG7真实感图形1课件_第1页
第1页 / 共61页
CG7真实感图形1课件_第2页
第2页 / 共61页
CG7真实感图形1课件_第3页
第3页 / 共61页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第7章 真实感图形,在使用显示设备描绘三维物体的图形时,由于投影变换使图形失去了深度信息,往往导致图形的二义性,失去了立体感,7.1 消除隐藏线,任何一个空间物体,在空间的任一方向上,都只能看得见其中的一部分表面和轮廓线。其中有一部分表面和轮廓线背向观察者,不可见,在计算机图形学中称为,隐藏面和隐藏线,为了消去隐藏线,只要把表示三维物体的每一条线与每一个组成物体的不透明面进行遮蔽判断,把不可见线段或部分不可见线段与可见线段或部分可见线段区分开来,画出可见线段和线段的可见部分,不画或用虚线画不可见线段和线段的不可见部分,就得到经过消隐处理的线条图,消隐算法,按实现方式不同分为两大类:,景物空间,消隐算法,图像空间,消隐算法,7.1.1,平面体的消隐处理,平面体,平面体是由多个平面多边形构成的立体,一般分为凸多面体和凹多面体。,凸多面体的特点,凸多面体具备这样一个性质:连接形体上不同表面的任意两点的线段完全位于形体的内部,凸多面体由多个平面凸多边形组成,它的多边形表面要么完全可见,要么完全不可见。,凸多面体消隐处理,在消隐问题中,凸多面体是最简单和最基本的情形,其消隐算法的关键是测试其上哪些表面是可见的,哪些表面是不可见的。,凸多面体消隐处理的思想,利用表面外法线方向可测试物体表面的可见性,在此规定法线的方向由物体表面指向外部空间,将其称为外法线,法向向量N,视线向量V,法向向量N,法向向量N,90,90,A,B,C,D,E,F,X,Z,Y,N,S, 面,ABED,的外法线矢量, 面,ADFC,的外法线矢量, 面,BCFE,的外法线矢量,面,DEF,的外法线矢量, 面,ACB,的外法线矢量,其中面,DEF,与面,ACB,的外法线方向刚,好相反。,当已知各项点的三维坐标时,则可求出各,表面的外法线矢量。如表面,ABED,的外法线矢量的计算公式为:,其中,,根据上式可求出表面外法线矢量,N,的分量:,(,7-1,),表面上任一点到视点所形成的向量用,S,来表示,即视线向量:,(,7-2,),同一个表面各点的视线向量是有差异的。在实际过程中,可假设观察者处于很远位置,此时,视线向量相互平行,也即表面各点的视线向量均具有同一方向。,例如在图,7.2,所示的空间坐标系中,设定视线向量,S,平行于,Y,轴,此时有,S,=0, 1, 0,表面的外法线向量,N,和视线向量,S,之间的夹角,的大小可反映该法线所在表面的方位情况,由此可判断该表面的可见性。,A,B,C,D,E,F,X,Z,Y,N,S,当,0,90,时,即,cos,0,,表面面向观察者,这样的面称为朝前面,即为可见表面,当,90,18,0,时,则,cos,p,2,,则,P,和,Q,的包围盒在,x,方向分离,否则相互重叠,同样,只要将,x,改成,y,,就可得到,P,和,Q,的包围盒在,y,方向分离的判断条件,3,平面多边形位置检测,已知一平面,其方程为,Ax,十,By,十,Cz,D,= 0 (I),式中,A,,,B,,,C,,,D,为常数。,设有一平面,Ax,By,十,Cz,D,=,F,(II),显然这两个平面平行,当,F,0,时,平面(,II,)位于平面(,I,)的三个坐标轴正向一侧;,当,F,0,时,平面(,II,)位于平面(,I,)的三个坐标轴负向一侧。,于是得到,Ax,十,By,Cz,D,0,位于,Ax,By,Cz,D,= 0,的坐标轴正向一侧;,Ax,By,Cz,D,0,位于,Ax,By,Cz,D,= 0,的坐标轴负向一侧。,设视点位于,Z,轴负向的无穷远处,平面多边形,P,的方程为,Ax,By,十,Cz,D,= 0,若对于平面多边形,Q,的任一顶点(,x,q,,,y,q,,,z,q,)均有,Ax,q,By,q,Cz,q,D,z,min,(,p,),,则,p,不仅可能部分遮挡,q,,而且还可能部分地遮挡,Q,中任何具有,z,max,(,q,i,) ,z,min,(,p,),的平面多边形,q,i,。所有这样的平面多边形的集合记为,Q,。, 如果对下面所有检测问题的回答是肯定的,那么,p,不遮挡,Q,中任何多边形的任何部分,则,p,写入帧缓冲器:,对,Q,中每一,q,i,,第一步,检测,p,和,q,i,的包围盒是否在x方向分离?第二步,检测,p,和,q,i,的包围盒是否在,y,方向分离?第三步,检测,p,是否全部位于,q,i,所在平面的背离视点的一侧?第四步,检测,q,i,是否全部位于,p,所在平面的靠近视点的一侧?, 若对中的四步检测有部分,q,i,的回答是否定的,则,p,不能写入帧缓冲器,,p,可能与某些,q,i,有交叉,遮挡关系(如图7.13)。这时,可将,p,分割成两个以上部分并重新排序。,p,q,r,图,7.13,交叉覆盖平面多边形,2.去掉了,p,或分割了,p,之后的新S重新按1.进行处理。,随着S中未排序多边形个数的逐步减少和深度优先级表中多边形个数的增加,当S中多边形个数为0时循环结束。此时深度优先级表就建好了,画家算法基本步骤,生成深度优先级队列,据视点距离,远,的多边形优先级低,排在队列的前端,据视点距离,近,的多边形优先级高,排在队列的后端,从队列中依次取出多边形,,计算其表面光亮度,写入帧缓冲器,直到队列中所有多边形的光亮度都处理完毕,画家算法优点:,透明或半透明物体,图形的,动态显示,飞行训练模拟器中显示飞机着陆时的情景,场景中的物体是不变的,,只是视点在变化,只要事先把不同视点的景物的优先级队列算出,再实时地采用画家算法来显示图形,就可以实现图形的快速消隐与显示,7.2.3,深度缓冲器算法(,Z,缓冲区算法),Depthbuffer algorithm,图像空间消隐算法,1975,年,,Catmull,提出,Z,缓冲区算法,它的基本思路是:对于显示屏上的每一个像素,记录下位于该像素内最靠近观察者的那个景物面的深度坐标,同时相应记录下用来显示该景物面的颜色(或灰度),那么所有记录下的这些像素所对应的颜色就可以形成最后要输出的图形。,为了记录下深度和颜色这两个参数,就需要定义两个数组:,一个是深度数组-depthmn,另一个是颜色数组-colormn,深度缓冲器算法的基本步聚如下;,深度数组和颜色数组赋初值。,即对于显示屏上的全部像素,置,depth,i,j, =,max,;置,color,i,j, =,bkcolor,(背景色)。,对于景物中的每个多边形平面,计算出该多边形平面的投影所包含的全部像素的位置,然后对所包含的全部像素逐一做如下的两步工作:,A,计算出该多边形在对应于像素(,i,,,j,)处的深度坐标值,Z,;,B,比较此,Z,值和原先深度数组所记录的值,depth,i,j,的大小。,若,Z,depth,i,j,,用当前的,z,值去替换原先在,depth,i,j,中记录的值;然后置,color,i,j,为当前该多边形所表现的颜色值。,反之,若,z,depth,i,j,,两个数组存储的深度值和颜色值均不须改变。,for(场景中的每一个多边形),扫描转换该多边形;,for(多边形所覆盖的每一个像素点(x,y)),计算多边形在该像素点的深度值z(x,y);,if(z(x,y) Z-buf中对应此像素点(x,y)的z值),把多边形在(x,y)处的深度值z(x,y)存入深度数组;,把多边形在(x,y)处的亮度值存入颜色数组;,当所有的多边形都处理完后,帧缓冲器中的内容即,为消除隐藏面后的图像,深度缓冲器算法的优点,简单,无需对各景物表面片作深度预排序,易于硬件实现,图形工作站上配置由硬件实现的深度缓冲器算法,很多微型机上都装有基于深度缓冲器算法的图形加速卡,深度缓冲器算法的缺点,需要很大的存储空间,在处理透明和半透明等效果方面存在困难,并由此会产生巨大的处理时间开销,改进一:减少需要相对测试的多边形平面数,最小最大测试,不重叠,不可能互相遮蔽,测试无确定结果,对每条边进行,最小最大,测试,Xmin,Xmax,改进二:利用连贯性计算深度,水平方向,竖直方向,改进三:降低对存储空间的需求,图像空间划分为4、16甚至更多的子正方形或条状区域,在最小情况下,只对应一条扫描线的深度缓冲器,扫描线相关算法,7.2.4,扫描线算法,扫描线算法在实质上可以说是深度缓冲器算法的一种延伸。,假如我们在屏幕的分区中采用仅在,y,方向细分,而在,x,方向不分,那么整个显示屏幕将分成许多狭长的子区。,如果在,y,方向是以像素为单位细分,那么这样得到的每个子区就是一条线,我们称之为“扫描线”。,扫描线算法的基本思路是:当包含一条扫描线的水平平面(称为扫描线平面)与景物中的立体相交时,组成立体的诸表面就会与该扫描线平面相交而形成若干条截交线段,这些裁交线段把整条扫描线分割成一些间隔,x,y,z,扫描线,扫描线平面,1 2 3 4 5,x,z,图,7.16,扫描线算法,在扫描线上形成的间隔可以分为三类:,不包含任何截交线段的间隔。对于这类间隔,就以背景色来显示该区域。, 其中只包含有一条线段的间隔,很明显,由于位在这类间隔内的线段是唯一的,因此必然是可见的,于是在这类间隔内的区域就应显示该线段所在表面的颜色。,1 2 3 4 5,x,z,同时存在多条线段的间隔,在这种情况下,需要经过计算和比较,在众多的线段中找出距离视点最近的那条线段,也就是,Z,值最小的线段。然后在这类间隔的区域内,显示这条处于最前面的线段所在表面的颜色。,1 2 3 4 5,x,z,算法从上至下地逐条处理扫描线,判别完所有扫描线平面内线段的可见部分,并显示它们,则立体的隐藏面也就得到了处理。,7.2.5,区域细分算法,当窗口内只包含有一个多边形表面或者根本就不包含任何多边形表面的时候,那么决定该窗口内显示的颜色值是相当简单的。,但是当窗口内同时包含有几个相互交叉重叠的多边形表面时,输出情况的决定就变得相对地复杂。,区域细分算法的基本思路是:对图形显示屏幕采取递归细分的办法,以产生大小不等的窗口,使得落在该窗口内的图形变得相当简单以致于能够容易地决定其显示情况,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!