- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
第八章消隐技术
1.理解并掌握消隐的基本概念、消隐算法中常用的处理技术及提高消隐算法效率的常用方法。2.掌握基本的消隐算法。难点:消隐算法的理解和掌握本章重点
8.1基本概念一.为什么要消隐因为计算机图形处理的过程中,不会自动消去隐藏部分,相反会将所有的线和面都显示出来。问题:①对于线画图形会出现多义性。对于光栅扫描着色的面图形则会导致图形错误。②要增强图形的真实感必须进行消隐处理。
二.消隐的分类消除隐藏线对于采用物体的棱线或轮廓线表示的线画图形,应消去物体本身看不见的棱线和轮廓线部分,以及因物体间的互相遮挡而被隐藏的棱线和轮廓线。消除隐藏面对于采用光栅扫描着色方法(即采用物体表面不同的明暗度)绘制的图形,应消除物体上看不见的面以及因物体间的互相遮挡而被隐藏的面。与此相对应,消隐的算法也可分为两种:
第一种方法是以场景中的物体为处理单元,将一个物体与其余的k-1个物体逐一比较,仅显示它可见的表面以达到消隐的目的。此类算法通常用于消除隐藏线。假定场景中有k个物体,平均每个物体的表面由h个多边形构成,其计算复杂度为O((kh)2)。算法描述如下:for(场景中的每一个物体){将该物体与场景中的其它物体进行比较,确定其表面的可见部分;显示该物体表面的可见部分;}
第二种方法是以窗口内的每个像素为处理单元,确定在每1一个像素处,场景中的物体哪一个距离观察点最近(可见的),2从而用它的颜色来显示该像素。此类算法通常用于消除隐藏面。3若显示区域中有m×n个像素,则其计算复杂度为O(mnkh)。4算法描述如下:5for(窗口内的每一个像素)6{确定距观察点最近的物体,以该物体表面的颜色来显示像素;7}8
三.消隐算法中常用的处理技术1.排序确定物体间遮挡关系的要素:视点位置视线方向按观察方向上离视点(投影参考点)的远近(通常用z值来表示)排序。2.测试用以判断点与面、线与面、面与面之间的关系。u(x)v(y)n(z)视点z值
包含测试:测试空间点的投影是否在某个空间多边形的投影内,若在,则可能存在遮挡关系;若不在,则不存在遮挡关系。测试方法:从空间点的投影开始向与-y轴平行的方向作射线,计算该射线与空间多边形的投影的交点个数,若为奇数,则点的投影在多边形的投影内;若为偶数,则点的投影不在多边形的投影内。xy特殊情况左闭右开
重叠测试:测试两个空间多边形的投影是否重叠,若重叠,则可能存在遮挡关系;若不重叠,则不存在遮挡关系。测试方法:用包围框方法来测试。
利用相关性(连贯性)物体的相关性:若物体A与物体B是完全相互分离的,消隐时只需比较A、B两物体之间的遮挡关系,而不需对其表面多边形逐一进行测试。面的相关性:一个面内的各种属性值(坐标值、灰度值等)四.提高消隐算法效率的常用方法01区域相关性:一个区域是指屏幕上一组相邻的像素,它们通常属于同一个可见面。区域相关性表现在一条扫描线上时,即为扫描线上的每个区间内只有一个面可见。一般都是缓慢变化的,可采用简单增量方式进行计算。02
扫描线相关性:在相邻的两条扫描线上,可见面的分布情况相似。深度相关性:物体的同一表面上的相邻部分深度是相近的。包围盒技术用于对物体间的某些关系进行比较和测试,从而可避免盲目的求交运算,减少计算量,提高效率。二维图形-----包围框(重叠测试);三维物体-----包围盒、包围球。
3.背面剔除一个平面多面体的表面由若干个平面多边形构成,若一个多边形表面的外法线方向与投影方向(观察方向)的夹角为钝角,则该面为前向面;若其夹角为锐角,则为后向面或背面。4.活化表技术(activelist)设置活化表,用于存放与当前的处理相关的信息,从而可最大限度地缩小处理范围,提高算法的效率。投影方向ABCD
8.2深度缓存算法(Z—Buffer算法)1.Z—Buffer用于存放与屏幕上像素点对应的物体上点的深度值。xyz视线方向视点位置屏幕像素F—BufferZ—Buffer投影面
基本思路:对于显示屏上的每一个象素,记录下位于该象素内最靠近观察者的那个景物面的深度坐标,同时相应记录下用来显示该景物面的颜色(或灰度),那么所有记录下的这些象素所对应的颜色就可以形成最后要输出的图形。Z-Buffer中保存与屏幕上象素点对应的物体上点的深度值,F-Buffer中存放对应象素点的颜色(或灰度)。
2.算法2.算法初始化:ZB(i,j)=机器最大值;FB(i,j)=背景色。for(j=1;j=n;j++)
文档评论(0)