第九章可见面的判定.pptVIP

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第九章可见面的判定

9.1 概述 9.2 可见面判别算法 按消隐对象分类 (a)线消隐 ?消隐对象是物体上的边,消除的是物体上不可见的边。 (b)面消隐 ?消隐对象是物体上的面,消除的是物体上不可见的面。 在线框显示模型中,用边界线表示有界平面,用边界线及若干参数曲线表示参数曲面,所以待显示的所有实体均为线。但线不可能对线有遮挡关系,只有面或体才有可能对线形成遮挡。故消隐算法要求造型系统中有面的信息。 线消隐中,最基本的运算为:判断面对线的遮挡关系。体也要分解为面,再判断面与线的遮挡关系。在遮挡判断中,要反复地进行线线、线面之间的求交运算。 在使用光栅图形显示器绘制物体的真实图形时,必须解决消除隐藏面的问题。 消隐的考虑—性能的提高 1、后向面 多面体表面多变形的法向可分为两种,一种是指向多面体的外部,我们称之为外法向,一种指向多面体的内部,我们称之为内法向。 必然有一些多边形表面的外法向指向与观察者相背离的方向,这些多边形完全被多面体上其它 多边形遮挡。这些被遮挡的多边形 称为后向面。 首先消除掉这些面,去除后向面的过 程称为后向面消除。 把n和k记作 则 设空间有一个四面体,顶点A,B,C,D的坐标依次是(0,0,0),(2,0,1),(4,0,0),(3,2,1)从z轴正向无穷远处观察,求各面的可见性 观察方向向量是k=(0,0,1), 处理场景时,根据是否直接对物体定义进行处理还是对物体的投影图像处理,分为物空间算法和像空间算法。 ?图象空间消隐算法以屏幕象素为采样单位,确定投影平面上对于每一象素的可见景物表面区域,并将其颜色作为该象素的显示颜色。 ?景物空间消隐算法直接在景物空间(观察坐标系)中,对各对象和各对象的各组成部分相互比较,确定视点可见的表面区域。 9.2 可见面判别算法 区域细分算法 z 缓冲器算法和扫描线算法 深度排序算法 光线投射算法 求出裁减多边形也就是内部表中第一个多边形,各顶点坐标的极小值Zmin; 求出内部多边形各顶点坐标z的极大值Zmaxi; 对那些满足ZminZmaxi的内部表中的多边形,便可认为它被裁减多边形所遮挡 若某一内部多边形不满足上式,则要从该两多边形相交的区域上取一点,做和z轴平行的线,求出该线和两个多边形所在平面的交点,根据交点的位置便可准确地确定哪一个多边形更靠近观察者。 z缓冲器是一组存贮单元 其单元个数和屏幕上象素的个数相同 也和帧缓冲器的单元个数相同,它们之间一一对应。 Z缓冲器算法描述 问题:如何加快计算采样点(x,y)的深度z(x,y)。 假定多边形的平面方程为:Ax+By+Cz+D=0。 如图: 所有扫描线,相邻点间的位移为1。 利用连贯性加速深度的计算: 一般,扫描线上的后继点的深度值,可由前面点的深度值使用一次加法计算获得。若已知某像素点(x,y)的对应深度值为z,则其相邻点(x+1,y)的深度值为: Z缓冲器算法是所有图像空间算法中最简单的一种隐藏面消除算法。它在象素级上以近物取代远物,与形体在屏幕上的出现顺序无关。 ?优点: 1)简单稳定,利于硬件实现 2)不需要整个场景的几何数据 ?缺点: 1)需要一个额外的Z缓冲器 2)在每个多边形占据的每个像素处都要计算深度值,计算量较大 对每个多边形检查它在oxy平面上的投影和当前扫描线是否相交? 若不相交,则不考虑该多边形。 如果相交,则扫描线和多边形边界的交点是成对地出现 对每对交点中间的象素计算多边形所在平面对应点的深度(即z值),并和z缓冲器中相应单元存放的深度值作比较。 若前者大于后者,则z缓冲器的相应单元内容要被求得的平面深度代替,帧缓冲器相应单元的内容也要换成该平面的属性。 对所有的多边形都作上述处理后,帧缓冲器中这一行的值便反应了消隐后的图形。 对帧缓冲器每一行的单元都填上相应内容后就得到了整个消隐后的图。 具体实现 只有z坐标值大于z缓冲器时才改变帧缓冲器的那一个单元的值,同时z缓冲器中相应单元的值也要改成这点的z坐标值。 如果这点的z坐标值小于z缓冲器中相应单元的值,则说明对应象素已显示了物体上一个点的属性,该点比要考虑的点更接近观察者。这样,无论帧缓冲器或z缓冲器相应单元的值均不应改变。 对显示物体的每一个面上的每一个点都做上述处理后,便可得到消除了隐藏面的图。 Zdepth [x][y]=z1 Frame [x][y]=green Zdepth [x][y]=z2 Frame [x][y]=blue 设置帧缓冲器为背景颜色(或光强度) 设置Z缓冲器为极小Z值 while 对每一个多边形 do begin ?????? while 对多边形中的每一个元素 do ??????

文档评论(0)

sheppha + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:5134022301000003

1亿VIP精品文档

相关文档