面消隐算法的分类 消隐算法的分类 第一类(图像空间的消隐算法):以窗口内的每个像 素为处理单元;如Z一 buffer、扫描线算法 for(窗口内的每一个像素) 确定距视点最近的物体,以该物体表面的颜色来显示像素} 第二类(物体空间的消隐算法):以场景中的物体为 处理单元;如光线投射算法 for(场景中的每一个物体) 将其与场景中的其它物体比较,确定其表面的可见部分; 显示该物体表面的可见部分; 2021/1/21 浙江大学计算机图形学
2021/1/21 浙江大学计算机图形学 6 面消隐算法的分类 ◼ 消隐算法的分类 第一类(图像空间的消隐算法):以窗口内的每个像 素为处理单元;如Z-buffer、扫描线算法 for (窗口内的每一个像素) { 确定距视点最近的物体,以该物体表面的颜色来显示像素} 第二类(物体空间的消隐算法):以场景中的物体为 处理单元;如光线投射算法 for (场景中的每一个物体) { 将其与场景中的其它物体比较,确定其表面的可见部分; 显示该物体表面的可见部分; }
面消隐算法的分类 第一类(图像空间的消隐算法):以窗口内 的每个像素为处理单元 for(窗口内的每一个像素) {确定距视点最近的物体,以该物体表面的颜色 来显示像素} 假设场景中有k个物体,平均每个物体表面 由h个多边形构成,显示区域中有mxn个 像素,则 算法的复杂度为:0(mnkh 2021/1/21 浙江大学计算机图形学 7
2021/1/21 浙江大学计算机图形学 7 面消隐算法的分类 第一类(图像空间的消隐算法):以窗口内 的每个像素为处理单元; for (窗口内的每一个像素) { 确定距视点最近的物体,以该物体表面的颜色 来显示像素} ◼ 假设场景中有k个物体,平均每个物体表面 由h个多边形构成,显示区域中有m x n个 像素,则: 算法的复杂度为:O(mnkh)
面消隐算法的分类 第二类(物体空间的消隐算法):以场景中的 物体为处理单元; for(场景中的每一个物体) 将其与场景中的其它物体比较,确定其表面的可见部 分 显示该物体表面的可见部分; 假设场景中有k个物体,平均每个物体表面由h个 多边形构成,显示区域中有mxn个像素,则: 算法的复杂度为:0(kh)*(kh)) 2021/1/21 浙江大学计算机图形学
2021/1/21 浙江大学计算机图形学 8 面消隐算法的分类 第二类(物体空间的消隐算法 ):以场景中的 物体为处理单元; for (场景中的每一个物体) { 将其与场景中的其它物体比较,确定其表面的可见部 分; 显示该物体表面的可见部分; } 假设场景中有k个物体,平均每个物体表面由h个 多边形构成,显示区域中有m x n个像素,则: 算法的复杂度为:O((kh)*(kh))
Z- Buffer算法 由来 帧缓冲器一保存各像素颜色值 Z缓冲器一-保存各像素处物体深度值 Z缓冲器中的单元与帧缓冲器中的单元 对应 屏幕 帧缓冲器 Z缓冲器 每个单元存放对应 每个单元存放对应 象素的颜色值 象素的深度值
2021/1/21 浙江大学计算机图形学 9 Z-Buffer算法 ◼ 由来: 帧缓冲器 – 保存各像素颜色值 Z缓冲器 --保存各像素处物体深度值 Z缓冲器中的单元与帧缓冲器中的单元一 一对应 屏幕 帧缓冲器 Z缓冲器 每个单元存放对应 象素的颜色值 每个单元存放对应 象素的深度值
Z- Buffer算法 思想:先将Z缓冲器中每个单元的初始值置为最 小值。当要改变某个像素的颜色值时,首先检 查当前多边形的深度值是否大于该像素原来的 深度值(保存在该像素所对应的Z缓冲器的单 元中),如果大于,说明当前多边形更靠近观 察点,用它的颜色替换像素原来的颜色;否则 说明在当前像素处,当前多边形被前面所绘制 的多边形遮挡了,是不可见的,像素的颜色值 不改变 2021/1/21 浙江大学计算机图形学
2021/1/21 浙江大学计算机图形学 10 Z-Buffer算法 思想:先将Z缓冲器中每个单元的初始值置为最 小值。当要改变某个像素的颜色值时,首先检 查当前多边形的深度值是否大于该像素原来的 深度值(保存在该像素所对应的Z缓冲器的单 元中),如果大于,说明当前多边形更靠近观 察点,用它的颜色替换像素原来的颜色;否则 说明在当前像素处,当前多边形被前面所绘制 的多边形遮挡了,是不可见的,像素的颜色值 不改变