- 1、本文档共60页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第10章 隐藏面的消除 (Hidden-Surface Removal) 第10章 隐藏面的消除 基本概念 提高消隐算法效率的常用方法 画家算法 Z缓冲器算法 扫描线Z缓冲器算法 扫描线算法 光线投射算法 OpenGL相关函数 本章目标 消隐的基本概念 重点掌握Z缓冲器(Buffer)消隐算法 学会使用OpenGL的函数 10.1 基本概念 问题 投影变换失去了深度信息,往往导致图形的二义性及失去遮挡关系 要消除二义性和保持遮挡关系,就必须在绘制(投影)时消除被遮挡的不可见的线或面,习惯上称作消除隐藏线和隐藏面,简称为消隐 10.1 基本概念 消隐的对象 三维物体 三维体的表示主要采用边界(多边形)表示 消隐结果 与观察物体有关,也与视点位置和方向有关 10.1 基本概念 消隐分类 消除隐藏面:确定可见面(消除不可见面)——表面表示物体(本章讨论) 消除隐藏线:消除不可见线——线框表示物体 10.1 基本概念 面消隐算法分类 投影窗口内的像素为处理单元。——确定最近点 for (窗口内的每一个像素) { 确定距视点最近的物体,以该物体表面的颜色来显示像素 } 10.1 基本概念 面消隐算法分类(续) 场景中的物体为处理单元。——物体上的面是否最近 第10章 隐藏面的消除 基本概念 提高消隐算法效率的常用方法 画家算法 Z缓冲器算法 扫描线Z缓冲器算法 扫描线算法 光线投射算法 OpenGL相关函数 10.2 提高消隐算法效率的常用方法 主要技术 1. 利用连贯性 相邻物体的属性之间有一定的连贯性,其属性值通常是平缓过渡的,如颜色值、空间位置关系等 包括: 物体连贯性 面的连贯性 区域连贯性 扫描线连贯性 深度连贯性 10.2 提高消隐算法效率的常用方法 (1)物体连贯性:如果物体 A 与物体 B 是完全相互分离的,则在消隐时,只需比较A、B 两物体之间的遮挡关系,无须对它们的表面多边形逐一进行测试。例如,若 A 距视点较 B 远,则在测试 B 上的表面的可见性时,无须考虑 A 的表面 (2)面的连贯性:一张面内的各种属性值一般都是缓慢变化的,允许采用增量形式对其进行计算 10.2 提高消隐算法效率的常用方法 (3)区域连贯性:区域指屏幕上一组相邻的像素,它们通常为同一个可见面所占据,可见性相同。区域连贯性表现在一条扫描线上时,即为扫描线上的每个区间内只有一个面可见 (4)扫描线的连贯性:相邻两条扫描线上,可见面的分布情况相似 (5)深度连贯性:同一表面上的相邻部分深度是相近的,而占据屏幕上同一区域的不同表面的深度不同。这样在判断表面间的遮挡关系时,只需取其上一点计算出深度值,比较该深度值便能得出结果 10.2 提高消隐算法效率的常用方法 2. 透视投影转换为平行投影 消隐在投影前完成 物体间的遮挡关系与投影中心相关 物体间的遮挡关系与投影方式相关 10.2 提高消隐算法效率的常用方法 3. 包围盒技术 定义:一个形体的包围盒指的是包围它的简单形体 两个条件 包围盒充分紧密包围着形体 对其的测试比较简单 主要包围盒 长方体 正方体 球 10.2 提高消隐算法效率的常用方法 作用—避免盲目求交 例如:两个空间多边形A、B在投影平面上的投影分别为A’,B’ ,因为A’ 、B’ 的矩形包围盒不相交,则A’、B’ 不相交,无须进行遮挡测试。 如果包围盒相交,需进一步测试。右下图(a)包围盒相交,投影也相交;(b)包围盒相交,投影不相交 一般情况下,判断两物体是否遮挡时,前一种情况大量存在,避免了物体间的复杂相交测试。 10.2 提高消隐算法效率的常用方法 4. 背面剔除 外法向:规定每个多边形的外法向都是指向物体外部的 前向面:若多边形的外法向与投影方向(观察方向)的夹角为钝角,称为前向面 后向面:若多边形的外法向与投影方向(观察方向)的夹角为锐角,称为后向面(背面) 10.2 提高消隐算法效率的常用方法 剔除依据:背面总是被前向面所遮挡,从而不可见 10.2 提高消隐算法效率的常用方法 5. 空间分割技术 遮挡判断依据:场景中的物体,它们的投影在投影平面上是否有重叠部分?(是否存在相互遮挡的可能?)对于根本不存在相互遮挡关系的物体,应避免这种不必要的测试 原因:物体在场景中分散,有些物体的投影相距甚远,不会存在遮挡关系 方法:将投影平面上的窗口分成若干小区域;为每个小区域建立相关物体表,表中物体的投影于该区域有相交部分;则在小区域中判断那个物体可见时,只要对该区域的相关物体表中的物体进行比较 10.2 提高消隐算法效率的常用方法 6. 物体的分层表示 表示形式:模型变换中的树形表示方式
文档评论(0)