网站大量收购独家精品文档,联系QQ:2885784924

计算机图形学隐面算法分解.pptx

  1. 1、本文档共33页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
消除隐藏面 姓名:XX 专业:XXXX 导师:XX 教授 学号:XXXXXXXXX 消除隐藏面 隐面算法 用于消除物体上不可见的表面 主要针对表面模型,不仅要求画出物体的各个可见棱边,而且还要求填充各个表面 画家算法 Z缓冲区算法 扫描线算法 区域采样算法 在绘制物体真实图形时,总是在投影面取一组离散点,在各离散点解决消隐问题,以确定颜色、亮度,用于显示屏幕上的像素。 消除隐藏面 画家算法 画家算法 基本思想: 画家的作画时,先涂背景色,然后由远及近的将景物画上,顺序暗示出所画物体之间的相互遮挡关系。所以称为画家算法。 因此,画家算法又被称为深度排序算法或表优先级算法。 基本原理: 1)先把屏幕置成背景色; 2)将场景中的物体的各个面按其距观察点的远近进行排序,结果放在一张线性表中;(线性表构造:距观察点远的优先级低,放在表头;距观察点近的优先级高,放在表尾 )该表称为深度优先级表。 3)然后按照从远到近(从表头到表尾)的顺序逐个绘制物体表面。 消除隐藏面 画家算法 深度优先级表的建立 一、多边形优先级的考虑 首先对一个简单的画面,可以直接建立一个确定的深度优先表如图(a)所示。深度方向上无重叠。 当画面略微复杂一点,无法按简单的Z向排序建立确定的深度优先表,以确定每一个多边形的优先级,如图(b)所示 。深度方向上有重叠 R 消除隐藏面 画家算法 深度优先级表的建立 二、投影重叠判断: 测试按照难度递增顺序排列: 1. P和Q在oxy平面上投影的包围盒在x方向上不相交,图a; 2. P和Q在oxy平面上投影的包围盒在y方向上不相交,图b; 3. P在Q之后。P的各顶点均在Q的远离视点的一侧,图d; 4.Q在P之前。Q的各顶点均在P的靠近视点的一侧,图e; 5. P和Q在观察平面oxy上的投影不相交,图c; 上面5项只要有一项成立,P就不遮挡Q,不需要重新排序 消除隐藏面 画家算法 深度优先级表的建立 对于某一重叠表面,上述五项测试均不成立,则需在有序表中调换两个面的位置。 调换两个面的位置后,需要对调换过顺序的表面重复上述5项测试…… 消除隐藏面 画家算法 深度优先级表的建立 解决方法是沿多边形所在平面间的交线循环分割这些多边形。 无法直接建立正确的深度优先表 消除隐藏面 画家算法 排序计算量大; 多边形相交或循环重叠时,必须分割多边形。 画家算法的不足: 消除隐藏面 Z缓冲区算法 Z缓冲区算法 基本思想: 投影平面每个像素所对应的所有面片(平面或曲面)的深度进行比较,然后取离视线最近面片的属性值作为该像素的属性值。 Z缓冲器算法基本思想 消除隐藏面 Z缓冲区算法 实现方法 屏幕 消除隐藏面 Z缓冲区算法 算法描述: for ( v= 0;vvmax;v++) for (u= 0; uumax; u++) { 将帧缓冲器的第(u,v)单元置为背景色; 将Z缓冲器的第(u,v)单元置为最小深度值; } for (每个多边形) for (多边形在投影平面上的投影区域内的每个像素(u,v) ) { 计算多边形在当前像素(u,v)处的深度值d; if (d Z缓冲器的第(u,v)单元的值) { 置帧缓冲器的第(u,v)单元值为当前多边形颜色; 置Z缓冲器的第(u,v)单元值为d; } } 消除隐藏面 Z缓冲区算法 深度值的计算 若已知多边形的方程,则可用增量法计算扫描线每一个像素的深度。设平面方程为: 则多边形面上的点(x,y)所对应的深度值为: 消除隐藏面 Z缓冲区算法 深度值的计算 由于所有扫描线上相邻点间的水平间距为1个像素单位,扫描线行与行之间的垂直间距也为1。因此可以利用这种连贯性来简化计算过程,如图所示。 若已计算出(x,y)点的深度值为zi,沿x方向相邻连贯点(x+1,y)的深度值zi+1可由下式计算: 消除隐藏面 Z缓冲区算法 深度值的计算 沿多边形左边界递归计算边界上各点的坐标: m为该边的斜率,沿该边的深度也可以递归计算出来,即: 如果该边是一条垂直边界,则计算公式简化为: 消除隐藏面 Z

文档评论(0)

贪玩蓝月 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档