计算机图形学第5讲图形消隐详解.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* (C)若Q的所有顶点位于 P 所在平面的可见的一侧,则P, Q关系正确 (D)若 P 的所有顶点位于 Q 所在平面的不可见的一侧 ,则P, Q关系正确 画家算法 * 问题 不能处理多边形循环遮挡和多边形相互穿透 解决方法:分割 画家算法 画家算法 * * 又称 Z-Buffer算法(深度缓存 depth-buffer) 组成: 帧缓冲器 -- 保存各像素颜色值 Z 缓冲器 -- 保存各像素处物体深度值 Z缓冲区算法 Z 缓冲器中的单元与帧缓冲器中的单元一一对应 Z缓冲区算法 深度缓存 depth-buffer * * 算法 (1)先将 Z -Buffer中个单元的初始值置为最小 最小值代表无穷远 (2)多边形扫描转换中,当要改变某个像素的颜色值时,首先检查当前多边形的深度值是否大于该像素原来的深度值 如果大于 说明当前多边形更靠近观察点,用它的颜色替换像素原来的颜色;同时保存深度值 否则 在当前像素处,当前多边形被前面所绘制的多边形遮挡了,像素的颜色值不改变 Z缓冲区算法 * 算法伪码 { 帧缓存全置为背景色; 深度缓存全置为最小 Z 值; for(每一个多边形) { for(该多边形所覆盖的每个像素(x, y) ) { 计算该多边形在该像素的深度值 Z(x, y); if ( Z(x, y)大于Z缓存在(x, y)的值) { 把 Z(x, y)存入 Z 缓存中(x, y)处; 把多边形在(x, y)处的颜色值存入帧缓存的(x, y)处; } } } } Z缓冲区算法 * 特点 Z-Buffer算法是所有图像空间算法中最简单的一种隐藏面消除算法。在像素级上以近物取代远物,与形体在屏幕上的出现顺序无关。 优点 简单稳定,利于硬件实现 缺点 需要一个额外的 Z -Buffer,占用一定存储空间 每个多边形占据的每个像素处都要计算深度值,计算量大 Z缓冲区算法 Z缓冲区算法 改进的Z缓冲区算法 只用一个深度变量,无需深度缓存图像 阅读 点在多边形内 * 扫描线Z缓冲区算法 由来 一般Z 缓冲器算法中所需要的 Z 缓冲器容量较大 扫描线Z缓冲器 一般Z 缓冲器算法未利用连续性 计算深度 多边形包含性测试 多边形扫描转换 扫描线算法 避免包含性测试 深度计算(增量算法) 降低深度缓存空间 * 扫描线Z缓冲区算法 主要思想 开一个一维数组作为当前扫描线的Z-buffer 找出与当前扫描线相关的多边形,及每个多边形中相关的边对 计算边对之间的深度 增量算法 若当前扫描像素可见 计算像素颜色,写帧缓存 更新深度缓存 * 扫描线Z缓冲区算法 数据结构(加速结构) 单个多边形扫描转换算法 边表(新边表、活性边表) 扫描线Z-Buffer算法(多个多边形) 边表 活化边对表(AET) 加入右边对信息,考虑扫描区间 加入深度及其增量信息,用于增量算法 活化多边形表 考虑多个多边形 多边形Y表 存储多边形扫描线最大Y坐标 * 扫描线Z缓冲区算法 算法步骤 与扫描线算法相似 不同之处 考虑多个多边形 多边形外循环 在每次循环结束前更新活化多边形表 考虑深度信息 在扫描每一对边中的像素时,用增量算法计算深度 更新深度缓存 * 扫描线Z缓冲区算法 特点 将整个绘图窗口内的消隐问题分解到一条条扫描线上解决,使所需的Z缓冲器大大减少 计算深度值时,利用了面连贯性,只用了一个加法 每个像素: 计算N次深度值 N为投影到该像素的多边形的个数 * 区间扫描线算法 进一步利用扫描线上的区间连贯性 每个扫描线区间只计算一次深度值 无需Z-Buffer 思想 要绘制深度最大多边形 扫描线的上深度最大多边形在区间上是连贯的 每个区间:找出深度最大的面 区间的划分:由扫描线与多边形边界的交点确定 * 区间扫描线算法 如何获得区间上最大深度的面? 区间上没有任何多边形:用背景色显示。 区间上只有一个多边形:用对应多边形在该处的颜色显示 区间上存在两个或两个以上的多边形? 比较区间上采样点的深度 * 区间扫描线算法 如何获得区间上最大深度的面? 区间上存在两个或两个以上的多边形? 若允许多边形相互贯穿 求两个多边形所在平面的交线 求扫描线与交线投影的交点 通过该交点将区间进一步细分 * 区间扫描线算法 特点: 利用区间连贯性 避免了每个像素上的多次深度计算 通用性、可扩展性好 可扩展应用到任意曲面体的消隐。 * Warnock算法 John Edwa

文档评论(0)

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

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

1亿VIP精品文档

相关文档