ch08——隐藏面和隐藏线的消除.ppt

  1. 1、本文档共61页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
ch08——隐藏面和隐藏线的消除,天天爱消除隐藏关,怎么消除隐藏,ps隐藏参考线快捷键,怎么隐藏无线网络,隐藏无线网络,怎么把无线网隐藏,妊娠线怎么消除,ps隐藏参考线,无线网怎么隐藏

第8章隐藏面和隐藏线的消除 隐藏面和隐藏线的消除是计算机图形学中的一个基本问题。 由于存在不透光的物体,因此阻挡了来自某些物体部分的光线到达观察者,这些物体部分成为隐藏部分,隐藏部分是不可见的。 为了使计算机生成的图能真实地反映这一情况,必须把隐藏的部分从图中消除。 如果不把隐藏的线或面消除,还可能发生对图的错误理解。 假定1: 隐藏线和隐藏面消除所讨论的对象是一个三维图形,消隐后要在二维空间中表示出来,因此消隐后显示的图形将和三维空间至二维空间的投影方式有关。 下面讨论消隐算法时,都假定投影平面就是oxy平面,投影方向为负z轴方向的垂直投影。 如果不是这种情况,可对消隐的对象先作变换,变成这种情况,然后再作消隐计算。 在投影平面就是oxy平面以及投影是透视时,可用变换(4.14)―(4.16)式。 投影是平行投影,但投影方向不是负z轴方向,则可用变换(4.21)―(4.23)式。 如果投影平面不是oxy平面,平行投影时则先要用变换(4.36)式,透视时先要用变换(4.33)式,式(4.33)中的常数A和B应满足式(4.17) 假定2: 本章说明的各种消隐方法都假定构成对象的不同面不能相互贯穿,见图8.1, 也不能有循环遮挡的情况,如果有这种情况,可把它们剖分成互不贯串和不循环遮挡的情况。 例如用图8.2(b)中的虚线便可把原来循环遮挡的三个平面,分割成不互相循环遮挡的四个面。 8.1 多面体的隐藏线消除 设有多个互不相交的多面体,对它们的消隐问题,和他们的显示方式有关。 讨论隐藏线消除问题,总假定它们是用线框方式来表示的。在这种方式下多面体用棱来表示。 这时隐藏线便是某些不可见的棱或棱的一部分。 如果能把各棱上可见和不可见部分的分界点找到,消隐问题也就迎刃而解了。 这些分界点都是多面体的各棱在oxy平面上投影间的交点,见图8.3。 这样,问题就转化成了在oxy平面上求很多直线的交点的计算。 8.1 多面体的隐藏线消除 在oxy平面上求很多直线的交点的计算。 如果消隐对象有N条棱,用两两求交的方法求所有交点的工作量为O(N2)。当N很大时,这个工作量是可观的。要提高算法的效率,就要设法减少求交的工作量。 实际上交点个数远小于O(N2),例如图8.3的多面体有15条边,如果不计棱端点处的交点,棱在oxy平面上的投影相互间只有5个交点。这说明有很多棱在oxy平面上的投影相互间并不相交。 问题在于如何能预先知道它们是不相交的,从而把它们排挤在求交计算之外。 8.1 多面体的隐藏线消除 减少求交计算的若干方法: 把后向面全部去掉 用边界盒排除不相交的线段求交。 在后向面被删除后,如果两个相邻的多边形的公共边都在两个多边形的凸包上,则这两个多边形不会发生一个遮挡另一个的现象。因而在考虑一个多边形的边的显示时,可以不考虑另一个多边形对它的影响。 8.1 多面体的隐藏线消除 去掉后向面 把内法线方向背向视点的面称为前向面, 如图8.3中的IJFGH,FABG,HCDI和IDEJ所在的面均为前向面。 其余的面称为后向面, 例如图8.3中JEAF和DEABC所在的面均为后向面, 后向面总是看不见的,不会仅由于后向面的遮挡,而使别的棱成为不可见, 因此可把后向面全部去掉,这不影响消隐结果。 8.1 多面体的隐藏线消除 设多边形F的顶点为v1,v2,…,vL,顶点vi的坐标为(xi yi zi)。 顶点的次序要求这样排列,使观察者在多面体外沿着v1→v2→v3…→vL走时,多边形的内部始终在它的右侧。 为了确定多边形的内法线方向,可以计算多边形在oxy平面上投影的有向面积。有向面积sp可如下计算 如果sp≥0,则F所在的面为后向面。 如果sp0,则F所在的面为前向面。 8.1 多面体的隐藏线消除 用边界盒排除不相交的线段求交 8.1 多面体的隐藏线消除 在后向面被删除后,如果两个相邻的多边形的公共边都在两个多边形的凸包上,则这两个多边形不会发生一个遮挡另一个的现象。 这时,在考虑一个多边形的边的显示时,可以不考虑另一个多边形对它的影响。 8.1 多面体的隐藏线消除 隐藏线消除实际计算过程 : 要对体一个一个来考虑,如考虑体A的显示时, 先确定可能遮挡A的那些体(包括体A本身), 对体A的每个多边形G,要找出可能遮挡它的所有多边形--这些多边形要从可能遮挡A的所有体的表面多边形中去找。 然后对多边形G的每一条边L找出可能遮挡它的所有多边形---这些多边形要从可能遮挡多边形G的所有多边形中去找。 (以上各步均采用边界盒方法) 找到所有可能遮挡边L的多边形后,便可求L和这些多边形的交点, 并决定L的可见部分。 8.1 多面体的隐藏线消除 设边L的二端点顶点是vi和vj,对边viv

文档评论(0)

gooddoc + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档