第十一讲面消隐 ?基本概念 ?提高消隐算法效率的常见方法 ?画家算法 ?乙缓冲器算法 ?扫描线Z缓冲器算法 ?区域子分算法 ?光线投射算法
第十一讲 面消隐 ?基本概念 ?提高消隐算法效率的常见方法 ?画家算法 ?Z缓冲器算法 ?扫描线Z缓冲器算法 ?区域子分算法 ?光线投射算法
基本概念 生真实感的方法之 反映三维场景中的相互遮挡关系 ●面消隐与线消隐 表面模型与线框模型 物体表面:平面与曲面 面消隐对象:由平面多边形构成的多面体
基本概念 产生真实感的方法之一: 反映三维场景中的相互遮挡关系 面消隐与线消隐 表面模型与线框模型 物体表面:平面与曲面 面消隐对象: 由平面多边形构成的多面体
基本概念 ●消隐算法的分类 1)类:以窗口内的每个像素为处理单元 for(窗口内的每一个像素) 确定距视点最近的物体,以该物体表面的颜色来显示像 素} 2)类:以场景中的物体为处理单元; for(场景中的每一个物体) 将其与场景中的其它物体比较,确定其表面的可见部分 显示该物体表面的可见部分;
基本概念 消隐算法的分类 1)类:以窗口内的每个像素为处理单元; for (窗口内的每一个像素) { 确定距视点最近的物体,以该物体表面的颜色来显示像 素} 2)类:以场景中的物体为处理单元; for (场景中的每一个物体) { 将其与场景中的其它物体比较,确定其表面的可见部分; 显示该物体表面的可见部分; }
基本概念 算法复杂度 假设场景中有k个物体,平均每个物体表 面由h个多边形构成,显示区域中有mxn 个像素,则 第一种算法的复杂度为:O(mnkh) 第二种算法的复杂度为:O(kh)*(kh)
基本概念 算法复杂度 假设场景中有k个物体,平均每个物体表 面由h个多边形构成,显示区域中有m x n 个像素,则: 第一种算法的复杂度为:O(mnkh) 第二种算法的复杂度为:O((kh)*(kh))
提高消隐算法效率的常见方法 ●利用连贯性 将透视投影转换成平行投影 ●包围盒技术 背面剔除 ●空间分割技术 ●物体分层表示
提高消隐算法效率的常见方法 利用连贯性 将透视投影转换成平行投影 包围盒技术 背面剔除 空间分割技术 物体分层表示
提高消隐算法效率的常见方法 ●利用连贯性 物体连贯性 面的连贯性 区域连贯性 扫描线的连贯性 深度连贯性
提高消隐算法效率的常见方法 1 利用连贯性 物体连贯性 面的连贯性 区域连贯性 扫描线的连贯性 深度连贯性
提高消隐算法效率的常见方法 将透视投影转换成平行投影 消隐与透视关系密切,体现有: 1)消隐必须在投影之前完成; 2)物体之间的遮挡关系与投影中心(视点)的选 取有关; 3)物体之间的遮挡关系与投影方式有关
提高消隐算法效率的常见方法 2 将透视投影转换成平行投影 消隐与透视关系密切,体现有: 1)消隐必须在投影之前完成; 2)物体之间的遮挡关系与投影中心(视点)的选 取有关; 3)物体之间的遮挡关系与投影方式有关
提高消隐算法效率的常见方法 3 图123加入面消隐步骤的三维图形显示 流程图p285(参见图830p162) 图124先将透视投影转换成平行投影,南 后再消隐p285(参见图833p167) (避免除法,提高了效率)
提高消隐算法效率的常见方法 3 图12.3 加入面消隐步骤的三维图形显示 流程图 p285 (参见图8.30 p162) 图12.4 先将透视投影转换成平行投影,南 后再消隐 p285 (参见图8.33 p167)。 (避免除法,提高了效率)
提高消隐算法效率的常见方法 包围盒技术 定义:一个形体的包围盒指的是包围它的简单形体。 比如, 该技术常用于:避免有目的求交测试 各种物体间的比较等 个好的包围盒要具有两个条件: 包围和充分紧密包围着形体; 对其的测试比较简单 例:使用矩形包围合及长方体包围合来提高算法效 率
提高消隐算法效率的常见方法 4 包围盒技术 定义:一个形体的包围盒指的是包围它的简单形体。 比如,… 该技术常用于: 避免盲目的求交测试; 各种物体间的比较等。 一个好的包围盒要具有两个条件: 包围和充分紧密包围着形体; 对其的测试比较简单。 例:使用矩形包围合及长方体包围合来提高算法效 率…
提高消隐算法效率的常见方法 5 面剔除 外法向 外法向与投影方向(观察方向)的夹角 前向面与后向面(背面) 剔除依据:物体表面是封闭的,背面总是 被前向面所遮挡,从而始终是不可见的
提高消隐算法效率的常见方法 5 背面剔除 外法向 外法向与投影方向(观察方向)的夹角 前向面与后向面(背面) 剔除依据: 物体表面是封闭的,背面总是 被前向面所遮挡,从而始终是不可见的