面消隐 面消隐算法的分类 提高消隐算法效率的常见方法 画家算法 Z缓冲器算法 扫描线Z缓冲器算法 区域子分算法 光线投射算法
面消隐 • 面消隐算法的分类 • 提高消隐算法效率的常见方法 • 画家算法 • Z缓冲器算法 • 扫描线Z缓冲器算法 • 区域子分算法 • 光线投射算法
9.2.1面消隐算法的分类 消隐算法的分类 第一类(图像空间的消隐算法):以窗口内的每个像 素为处理单元;如Z一 buffer、扫描线、 Warnock算法 for(窗口内的每一个像素 {确定距视点最近的物体,以该物体表面的颜色来显示像素} 第二类(物体空间的消隐算法):以场景中的物体为 处理单元;如光线投射算法 for(场景中的每一个物体) {将其与场景中的其它物体比较,确定其表面的可见部分; 显示该物体表面的可见部分;
9.2.1 面消隐算法的分类 • 消隐算法的分类 第一类(图像空间的消隐算法):以窗口内的每个像 素为处理单元;如Z-buffer、扫描线、Warnock算法 for (窗口内的每一个像素) { 确定距视点最近的物体,以该物体表面的颜色来显示像素} 第二类(物体空间的消隐算法):以场景中的物体为 处理单元;如光线投射算法 for (场景中的每一个物体) { 将其与场景中的其它物体比较,确定其表面的可见部分; 显示该物体表面的可见部分; }
9.2.2面消隐算法的分类 第一类(图像空间的消隐算法):以窗口内 的每个像素为处理单元 for(窗口内的每一个像素) {确定距视点最近的物体,以该物体表面的颜色来 显示像素} 假设场景中有k个物体,平均每个物体表 面由h个多边形构成,显示区域中有mxn 个像素,则: 算法的复杂度为:O(mnkh)
9.2.2面消隐算法的分类 第一类(图像空间的消隐算法):以窗口内 的每个像素为处理单元; for (窗口内的每一个像素) { 确定距视点最近的物体,以该物体表面的颜色来 显示像素} • 假设:场景中有k个物体,平均每个物体表 面由h个多边形构成,显示区域中有m x n 个像素,则: 算法的复杂度为:O(mnkh)
面消隐算法的分类 第二类(物体空间的消隐算法):以场景中的物 体为处理单元; for(场景中的每一个物体) {将其与场景中的其它物体比较,确定其表面的 可见部分; 显示该物体表面的可见部分; 假设场景中有k个物体,平均每个物体表面由h个 多边形构成,显示区域中有mxn个像素,则 算法的复杂度为:O(kh)*(kh)
面消隐算法的分类 第二类(物体空间的消隐算法 ):以场景中的物 体为处理单元; for (场景中的每一个物体) { 将其与场景中的其它物体比较,确定其表面的 可见部分; 显示该物体表面的可见部分; } 假设场景中有k个物体,平均每个物体表面由h个 多边形构成,显示区域中有m x n个像素,则: 算法的复杂度为:O((kh)*(kh))
9.3提高消隐算法效率的常见 方法 利用连贯性 将透视投影转换成平行投影 包围盒技术 背面剔除 空间分割技术 ·物体分层表示
9.3 提高消隐算法效率的常见 方法 • 利用连贯性 • 将透视投影转换成平行投影 • 包围盒技术 • 背面剔除 • 空间分割技术 • 物体分层表示