正在加载图片...
±丌 l→Ⅳ ±丌 III-I n2 (-) IⅣ (+-) (++) h2 ⅣV→I ±丌 ⅣV→ll ⅣV→Ⅲ ⅣV→Ⅳ 计算多边形Rk在点(i,j)处的深度 ax+b+z+a=0设多边形Pk的平面方程为 若C≠0,则把(I,j)代入方程,就可得深度值 ai+bi+d depth- 若c=0,则说明多边形Ⅳ的法向与z轴垂直,Ⅳ在X0Y面上的投影为一条直线。在 Zbuffer消隐算法 中可以不考虑这种多边形。 273.3扫描线 Z-buffer算法 对Z- buffer算法,如利用相关性提高点与多边形的包含性测试和深度计算的速度,就得到扫描线 Z- buffer算法。 算法的主要思想 在处理当前扫描线时,开一个一维数组作为当前扫描线的Z- uffer e首先找出与当前扫描线相关的 多边形,以及每个多边形中相关的边对。对每一个边对之间的小区间上的各象素,计算深度,并与 Z- buffer中的值比较,找出各象素处可见平面,计算颜色,写帧缓存。对深度计算,采用増量算法。 2.数据结构 多边形Y表。实际上是一个指针数组。将所有多边形存在多边形Y表中,根据多边形顶点中最小的 y坐标,插入多边形Y表中的相应位置。多边形Y表中只保存多边形的序号和其顶点的最大y坐标。根 据序号可以从定义多边形的数据结构中取多边形信息:多边形所在面的方程f=ax+by+cz+d的系数 a,b,C,d、多边形的边、顶点的坐标、颜色等 5|∧ 4∧ 3 PⅠYmax囚 01234567 图2.7.16待消隐对象与多边形y表 活化多边形表AP:与当前扫描线相交的多边形存在APT中,APT是一个动态的链表。(- +) (+ - )   II→ IV (- -) (+ + )   III→ I (- -) (- + ) - /2 III→ II (- -) (- - ) 0 III→ III (- -) (+ - )  /2 III→ IV (+ -) (+ + )  /2 IV→ I (+ -) (- + )   IV→ II (+ -) (- - ) - /2 IV→ III (+ -) (+ - ) 0 IV→ IV 计算多边形 Pk 在点(i,j)处的深度 设多边形 Pk 的平面方程为: 若 C≠0,则把(I,j)代入方程,就可得深度值 若 c=0,则说明多边形 Pk 的法向与 z 轴垂直,Pk 在 XOY 面上的投影为一条直线。在 Zbuffer 消隐算法 中可以不考虑这种多边形。 2.7.3.3 扫描线 Z-buffer 算法 对 Z-buffer 算法,如利用相关性提高点与多边形的包含性测试和深度计算的速度,就得到扫描线 Z-buffer 算法。 1. 算法的主要思想 在处理当前扫描线时,开一个一维数组作为当前扫描线的 Z-buffer。首先找出与当前扫描线相关的 多边形,以及每个多边形中相关的边对。对每一个边对之间的小区间上的各象素,计算深度,并与 Z-buffer 中的值比较,找出各象素处可见平面,计算颜色,写帧缓存。对深度计算,采用增量算法。 2. 数据结构 多边形 Y 表。 实际上是一个指针数组。将所有多边形存在多边形 Y 表中,根据多边形顶点中最小的 y 坐标,插入多边形 Y 表中的相应位置。多边形 Y 表中只保存多边形的序号和其顶点的最大 y 坐标。根 据序号可以从定义多边形的数据结构中取多边形信息:多边形所在面的方程 f=ax+by+cz+d 的系数 a,b,c,d、多边形的边、顶点的坐标、颜色等。 图 2.7.16 待消隐对象与 多边形 y 表 活化多边形表 APT:与当前扫描线相交的多边形存在 APT 中,APT 是一个动态的链表
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有