《精》计算机图形学简明教程_第7章.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
场景可见部分的判断过程称为可见线判定或可见面判定,也可称为隐藏线消除或隐藏面消除。 物体的边界盒是指能够包含该物体的一个简单的几何形状, 如矩形,圆,长方体等。 A边界盒不相交:在Oxy平面投影的边界盒,两个边界盒不 相交,所以两个多边形不相交。 B 边界盒相交:相交的情况可分为两种,投影相交或投影 不相交。无论哪种情况都需要做进一步的 处理,以判断两物体的投影是否相交。 用边界盒技术判断两条直线是否相交。 用球代替长方体作为边界盒可以简化判断直线同边界盒是否相交的计算过程,即若边界球的球心到直线的距离大于球的半径,那么直线与边界球不相交,也就与球内的物体不相交。一个有效的确定边界球的方法是取球的中心为: 1、后向面 多面体表面多变形的法向可分为两种,一种是指向多面体的外部,我们称之为外法向,一种指向多面体的内部,我们称之为内法向。 必然有一些多边形表面的外法向指向与观察者相背离的方向,这些多边形完全被多面体上其它 多边形遮挡。这些被遮挡的多边形 称为后向面。 首先消除掉这些面,去除后向面的过 程称为后向面消除。 1)首先对多边形的顶点进行排序:设多边形F的顶点为 v1,v2,…,vL顶点 的坐标为 。次序如图所示 实际上是一个指针数组 ,每个筒的深度和显示屏幕 行数相同。 将所有多边形存在多边形Y筒中,根据多边形顶点 中Y坐标最大值,插入多边形Y表中的相应位置,多 边形Y表中保存多边形的序号和其顶点的最大y坐 标。 边的上端点x坐标的值;该投影和相邻的两条扫描线交点的x坐标的差Δx;和该边在oxy平面上的投影相交的扫描线条数Δy;该边所属多边形的编号IP 记录在oxy平面上的投影和当前考虑的扫描线相交的多边形,如:当扫描线对应y=10或11时,多边形活化表只有一个多边形。当y=8时多边形活化表如图。表中的Δy值(扫描线的条数)是已经过修改的。(由上到下扫描,故△y=5,和△y=7) 扫描线z缓冲器算法 将z缓冲器的单元数置为和一条扫描线上的像素数目相同。 从最上面的一条扫描线开始工作,向下对每一条扫描线作 如下处理: 把相应的帧缓冲器单元置成底色,在z缓冲器中存放 z的极小值。 对每个多边形检查它在平面上的投影和当前的扫描 线是否相交。 step1 step2 step2 相交的判断 3 6 7 8 11 10 11 8 7 1 3 Ⅰ Ⅱ 要消隐的物体 x y o 1 2 投影和当前的扫描线若不相交,则不考虑该多边形。 如果相交,对每对交点中间的像素p,计算它在多边形上对应点的深度(即z值),并和z缓冲器中相应单元存放的深度值z’作比较。若zz’,则z缓冲器中z’的要被z代替,帧缓冲器相应单元的内容也要换成点p的属性。 此时,I多边形与扫描线相交,而II没有相交则不做考虑 step2 相交的判断-提高算法效率 与多边形扫描转换中扫描线算法数据结构和算法类似。 多边形Y筒 1/7 10 7 2 8 2 1 2 边Y筒 step2 相交的判断-提高算法效率 多边形活化表 边活化表 step2 数据结构的具体实现-建立一个多边形Y筒 step2 数据结构的具体实现-建立一个多边形Y筒 多边形Y筒要记录多边形所在平面方程ax+by+cz+d=0系数a,b,c和d, 还要记录和该多边形在oxy平面上的投影相交的扫描线的条数Δy, 以及多边形的属性colour和编号IP。 9-1=8 11-3=8 3 6 7 8 11 10 11 8 7 1 3 Ⅰ Ⅱ 要消隐的物体 x y o step2 数据结构的具体实现-建立一个边Y筒 3 6 7 8 11 10 11 9 8 7 1 3 Ⅰ Ⅱ 图 7.15 要消隐的物体 x o 1/7 10 7 2 8 2 1 2 step2 数据结构的具体实现-建立一个多边形活化表 3 6 7 8 11 10 11 9 8 7 1 3 Ⅰ Ⅱ 图 7.15 要消隐的物体 x o 8-3=5 8-1=7 step2 数据结构的具体实现-建立一个边活化表 xl 左交点的x坐标值 Δxl 左交点所在边和两相邻扫描线交点的x坐标之差 Δyl 以和左交点所在边相交的扫描线条数为初值,以后每处理一条扫描线减1(如6-3=3,6-1=5) xr 右交点的x坐标值 Δxr 右交点所在边和两相邻扫描线交点的x坐标之差 以和右交点所在边相交的扫描线条数为初值,以后每处理一条扫描线减1(如6-3=3,6-1=5) Δyr step2

文档评论(0)

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

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

1亿VIP精品文档

相关文档