当前位置:高等教育资讯网  >  中国高校课件下载中心  >  大学文库  >  浏览文档

吉林大学:《计算机图形学》课程电子教案(PPT课件)第七章 消除隐藏线和隐藏面的算法 第四节 z−缓冲算法 第五节 扫描线算法

资源类别:文库,文档格式:PPT,文档页数:13,文件大小:68KB,团购合买
点击下载完整版文档(PPT)

不明确问题检验方法 所有多边形按顶点最大z坐标值 排序后得到一个排序表,设P是排在 表中最后的那个多边形。 设Q是排在P前面并且z坐标范围 与其发生交迭的一个多边形,对Q与 P的次序关系进行检查

不明确问题检验方法 所有多边形按顶点最大z坐标值 排序后得到一个排序表,设P是排在 表中最后的那个多边形。 设Q是排在P前面并且z坐标范围 与其发生交迭的一个多边形,对Q与 P的次序关系进行检查

检查可以按下面列出的五个步 骤进行,每个步骤判断一种情况。 1.多边形的x坐标范围不相交迭,所以 多边形不相交迭。 2.多边形的y坐标范围不相交迭,所以 多边形不相交迭。 3.P整个在Q远离观察点的一侧。 4. Q整个在P的靠近观察点的一侧。 5.多边形在z=0平面上的投影本身不相 交迭

检查可以按下面列出的五个步 骤进行,每个步骤判断一种情况。 1.多边形的x坐标范围不相交迭,所以 多边形不相交迭。 2.多边形的y坐标范围不相交迭,所以 多边形不相交迭。 3. P整个在Q远离观察点的一侧。 4. Q整个在P的靠近观察点的一侧。 5. 多边形在z=0平面上的投影本身不相 交迭

Xy

如果所有这五步检查都为假,就假 定P是遮挡了Q,交换P和Q在排序表中 的位置。 如果仍做交换,算法会永远循环 下去而没有结果。 为了避免循环,可以做一个限制 当做过首次五步检查后,发生某个多 边形被移到排序表的末尾时,就立即 加上一个标记,以后就不能再做移动。 出现再次应该移动时,用一个多边形

如果所有这五步检查都为假,就假 定P是遮挡了Q,交换P和Q在排序表中 的位置。 如果仍做交换,算法会永远循环 下去而没有结果。 为了避免循环,可以做一个限制。 当做过首次五步检查后,发生某个多 边形被移到排序表的末尾时,就立即 加上一个标记,以后就不能再做移动。 出现再次应该移动时,用一个多边形

所在的平面,把另一个多边形剪裁分 为两个

所在的平面,把另一个多边形剪裁分 为两个。 P Q

第四节z-缓冲算法 z-缓冲算法(深度缓冲算法)是一种 最简单的图象空间算法。对每一个点,这 个算法不仅需要有一个更新缓冲器存储各 点的象素值,而且还需要有一个z-缓冲 存储器存储相应的z值。帧缓冲存储器初 始化为背景值,z缓冲存储器初始化为可 以表示的最大z值。对每一个多边形,不 必进行深度排序算法要求的初始排序,立 即就可以逐个进行扫描转换

第四节 z−缓冲算法 z−缓冲算法(深度缓冲算法)是一种 最简单的图象空间算法。对每一个点,这 个算法不仅需要有一个更新缓冲器存储各 点的象素值,而且还需要有一个z−缓冲 存储器存储相应的z值。帧缓冲存储器初 始化为背景值,z缓冲存储器初始化为可 以表示的最大z值。对每一个多边形,不 必进行深度排序算法要求的初始排序,立 即就可以逐个进行扫描转换

扫描转换时,对每个多边形内部的任意点 (x,y),实施如下步骤: 1.计算在点(x,y)处多边形的深度值z (x,y)。 2.如果计算所得的z(x,y)值,小于在z- 缓冲存储器中点(x,y)处记录的深度值,那么 就做: (1)把值z(x,y)送入z-缓冲存储器的点 处。 (2)把多边形在深度z(x,y)处应有的象素 值,送入更新缓冲存储器的点(X,y)处

扫描转换时,对每个多边形内部的任意点 (x,y),实施如下步骤: 1. 计算在点(x,y)处多边形的深度值z (x,y)。 2. 如果计算所得的z(x,y)值,小于在z− 缓冲存储器中点(xy)处记录的深度值,那么 就做: (1)把值z(x y)送入z−缓冲存储器的点 处。 (2)把多边形在深度z(xy)处应有的象素 值,送入更新缓冲存储器的点(x y)处

算法中深度计算,可通过多边形的 顶点坐标求出所在平面的方程,然后再 使用平面方程,对每个点(x,y),解出相 应的z。 对面方程Ax+By+Cz+D=0, 解出Z是: Z=-D-Ax-By C

算法中深度计算,可通过多边形的 顶点坐标求出所在平面的方程,然后再 使用平面方程,对每个点(xy),解出相 应的z。 对面方程 , 解出 是: A x+ B y+ C z+ D = 0 z C D A B Z − − X − Y =

设在点(x,y)处的深度值是z: -D-Ax-By=Z 则在点(x+△x,y)处的深度值就是 -D-A(x+Ax)-By_-D-Ax-By-AAx C =z1-

设在点(x,y)处的深度值是z1 : z1 C D A x B y = − − − 则在点(x+△x,y)处的深度值就是 Δ x C A z 1 Δ x C A C D A x B y C D A(x Δx) B y = − − − − − = − − + −

z-缓冲算法的工作流程: 帧缓冲区置成背景色; z-缓冲区置成最大z值; for(各个多边形) [扫描转换该多边形; for(计算多边形所覆盖的每个象素(x,y)) I i 计算多边形在该象素的深度值Z(x,y); if(Z(x,y)小于Z缓冲区中的(x,y)处的值) {把Z(x,y)存入Z缓冲区中的(x,y)处; 把多边形在(x,y)处的亮度值存入帧缓存 区的(x,y)处;}

z−缓冲算法的工作流程: 帧缓冲区置成背景色; 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)处;} } }

点击下载完整版文档(PPT)VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
共13页,试读已结束,阅读完整版请下载
相关文档

关于我们|帮助中心|下载说明|相关软件|意见反馈|联系我们

Copyright © 2008-现在 cucdc.com 高等教育资讯网 版权所有