第九章消隐 消隐的分类 ·消除隐藏线 消除隐藏面 基本概念 提高消隐算法效率的常见方法 画家算法 Z缓冲区(Z- Buffer)算法 扫描线Z- buffer算法 扫描线算法 区域子分割算法 光线投射算法 浙江大学信息学院 计算机图形学
浙江大学信息学院 计算机图形学 第九章 消隐 • 消隐的分类 • 消除隐藏线 • 消除隐藏面 –基本概念 –提高消隐算法效率的常见方法 –画家算法 –Z缓冲区(Z-Buffer)算法 –扫描线Z-buffer算法 –扫描线算法 –区域子分割算法 –光线投射算法
基本概念 投影变换失去了深度信息,往往导致图形的 义性 要消除二义性,就必须在绘制时消除被遮挡的不可 见的线或面,习惯上称作消除隐藏线和隐藏面,简 称为消隐。 经过消隐得到的投影图称为物体的真实图形 长方体线框投影图的二义性 浙江大学信息学院 计算机图形学
浙江大学信息学院 计算机图形学 基本概念 • 投影变换失去了深度信息,往往导致图形的 二义性 • 要消除二义性,就必须在绘制时消除被遮挡的不可 见的线或面,习惯上称作消除隐藏线和隐藏面,简 称为消隐。 • 经过消隐得到的投影图称为物体的真实图形。 长方体线框投影图的二义性
基本概念 消隐的对象是三维物体。三维体的表示 主要有边界表示和CSG表示等。 ·消隐结果与观察物体有关,也与视点有关 线框图 消隐图 真实感图形 浙江大学信息学院 计算机图形学
浙江大学信息学院 计算机图形学 基本概念 • 消隐的对象是三维物体。三维体的表示 主要有边界表示和CSG表示等。 • 消隐结果与观察物体有关,也与视点有关。 线框图 消隐图 真实感图形
消隐的分类 按消隐对象分类 线消隐 消隐对象是物体上的边,消除的是物体上不可见的边 面消隐 消隐对象是物体上的面,消除的是物体上不可见的面 浙江大学信息学院 计算机图形学
浙江大学信息学院 计算机图形学 消隐的分类 • 按消隐对象分类 –线消隐 • 消隐对象是物体上的边,消除的是物体上不可见的边。 –面消隐 • 消隐对象是物体上的面,消除的是物体上不可见的面
消除隐藏线 对造型的要求 在线框显示模型中,要求造型系统中有面的 信息,最好有体的信息 坐标变换 将视点变换到Z轴的正无穷大处,视线方向 变为Z轴的负方向。 ·最基本的运算 判断面对线的遮挡关系.反复地进行线线 线面之间的求交运算 浙江大学信息学院 计算机图形学
浙江大学信息学院 计算机图形学 消除隐藏线 • 对造型的要求 –在线框显示模型中,要求造型系统中有面的 信息,最好有体的信息。 • 坐标变换 –将视点变换到Z轴的正无穷大处,视线方向 变为Z轴的负方向。 • 最基本的运算 –判断面对线的遮挡关系.反复地进行线线、 线面之间的求交运算
面消隐 面消隐算法的分类 提高消隐算法效率的常见方法 画家算法 Z缓冲器算法 扫描线Z缓冲器算法 区域子分算法 光线投射算法 浙江大学信息学院 计算机图形学
浙江大学信息学院 计算机图形学 面消隐 面消隐算法的分类 提高消隐算法效率的常见方法 画家算法 Z缓冲器算法 扫描线Z缓冲器算法 区域子分算法 光线投射算法
面消隐算法的分类 消隐算法的分类 第一类(图像空间的消隐算法):以窗口内的每个像 素为处理单元;如Z- buffer、扫描线、 Warnock算法 for(窗口内的每一个像素) 确定距视点最近的物体,以该物体表面的颜色来显示像素} 第二类(物体空间的消隐算法):以场景中的物体为 处理单元;如光线投射算法 for(场景中的每一个物体) {将其与场景中的其它物体比较,确定其表面的可见部分; 显示该物体表面的可见部分; 浙江大学信息学院 计算机图形学
浙江大学信息学院 计算机图形学 面消隐算法的分类 • 消隐算法的分类 第一类(图像空间的消隐算法):以窗口内的每个像 素为处理单元;如Z-buffer、扫描线、Warnock算法 for (窗口内的每一个像素) { 确定距视点最近的物体,以该物体表面的颜色来显示像素} 第二类(物体空间的消隐算法):以场景中的物体为 处理单元;如光线投射算法 for (场景中的每一个物体) { 将其与场景中的其它物体比较,确定其表面的可见部分; 显示该物体表面的可见部分; }
面消隐算法的分类 第一类(图像空间的消隐算法):以窗口内 的每个像素为处理单元; for(窗口内的每一个像素) 确定距视点最近的物体,以该物体表面的颜色 来显示像素} 假设场景中有k个物体,平均每个物体表面 由h个多边形构成,显示区域中有mxn个 像素,则: 算法的复杂度为:0(mkh) 浙江大学信息学院 计算机图形学
浙江大学信息学院 计算机图形学 面消隐算法的分类 第一类(图像空间的消隐算法):以窗口内 的每个像素为处理单元; for (窗口内的每一个像素) { 确定距视点最近的物体,以该物体表面的颜色 来显示像素} • 假设场景中有k个物体,平均每个物体表面 由h个多边形构成,显示区域中有m x n个 像素,则: 算法的复杂度为:O(mnkh)
面消隐算法的分类 第二类(物体空间的消隐算法):以场景中的 物体为处理单元; for(场景中的每一个物体) 将其与场景中的其它物体比较,确定其表面的可见部 分 显示该物体表面的可见部分; 假设场景中有k个物体,平均每个物体表面由h个 多边形构成,显示区域中有mxn个像素,则: 算法的复杂度为:0((kh)*(kh)) 浙江大学信息学院 计算机图形学
浙江大学信息学院 计算机图形学 面消隐算法的分类 第二类(物体空间的消隐算法 ):以场景中的 物体为处理单元; for (场景中的每一个物体) { 将其与场景中的其它物体比较,确定其表面的可见部 分; 显示该物体表面的可见部分; } 假设场景中有k个物体,平均每个物体表面由h个 多边形构成,显示区域中有m x n个像素,则: 算法的复杂度为:O((kh)*(kh))
提高消隐算法效率的常见方法 利用连贯性 ·将透视投影转换成平行投影 包围盒技术 背面剔除 ·空间分割技术 物体分层表示 浙江大学信息学院 计算机图形学
浙江大学信息学院 计算机图形学 提高消隐算法效率的常见方法 • 利用连贯性 • 将透视投影转换成平行投影 • 包围盒技术 • 背面剔除 • 空间分割技术 • 物体分层表示