- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第八章 消 隐 技 术;8.1 基本概念
一.为什么要消隐
因为计算机图形处理的过程中,不会自动消去隐藏部分,相反会将所有的线和面都显示出来。
问题:
① 对于线画图形会出现多义性。
对于光栅扫描着色的面图形则会导致图形错误。
② 要增强图形的真实感必须进行消隐处理。;二. 消隐的分类
1.消除隐藏线
对于采用物体的棱线或轮廓线表示的线画图形,应消去物体本身看不见的棱线和轮廓线部分,以及因物体间的互相遮挡而被隐藏的棱线和轮廓线。
2.消除隐藏面
对于采用光栅扫描着色方法(即采用物体表面不同的明暗度)绘制的图形,应消除物体上看不见的面以及因物体间的互相遮挡而被隐藏的面。
与此相对应,消隐的算法也可分为两种:; 第一种方法是以场景中的物体为处理单元,将一个物体与
其余的 k-1 个物体逐一比较,仅显示它可见的表面以达到消
隐的目的。此类算法通常用于消除隐藏线。
假定场景中有 k 个物体,平均每个物体的表面由 h 个多边形构成,其计算复杂度为 O((kh)2)。
算法描述如下:
for (场景中的每一个物体)
{ 将该物体与场景中的其它物体进行比较,确定其表面的可
见部分;
显示该物体表面的可见部分;
}; 第二种方法是以窗口内的每个像素为处理单元,确定在每
一个像素处,场景中的物体哪一个距离观察点最近(可见
的),从而用它的颜色来显示该像素。此类算法通常用于消除
隐藏面。
若显示区域中有 m×n 个像素,则其计算复杂度为O(mnkh)。
算法描述如下:
for (窗口内的每一个像素)
{确定距观察点最近的物体,以该物体表面的颜色来显示像素;
};三.消隐算法中常用的处理技术
1. 排序
确定物体间遮挡关系的要素:
视点位置
视线方向
按观察方向上离视点(投影参考点)
的远近(通常用 z 值来表示)排序。
2. 测试
用以判断点与面、线与面、面与面之间的关系。
;包含测试:
测试空间点的投影是否在某个空间多边形的投影内,若在,则可能存在遮挡关系;若不在,则不存在遮挡关系。
测试方法:
从空间点的投影开始向与 -y 轴平行的方向作射线,计算
该射线与空间多边形的投影的交点个数,若为奇数,则点的投
影在多边形的投影内;若为偶数,则点的投影不在多边形的投
影内。;重叠测试:
测试两个空间多边形的投影是否重叠,若重叠,则可能存
在遮挡关系;若不重叠,则不存在遮挡关系。
测试方法: ;3. 背面剔除
一个平面多面体的表面由若干个
平面多边形构成,若一个多边形表面
的外法线方向与投影方向(观察方向)
的夹角为钝角,则该面为前向面;若
其夹角为锐角,则为后向面或背面。
剔除依据: 物体表面是封闭的,背面总是被前向面所遮挡,从而始终是不可见的。
;4. 将透视投影转换成平行投影
消隐与透视关系密切,体现有:
1)消隐必须在投影之前完成;
2)物体之间的遮挡关系与投影中心(视点)的选
取有关;
3)物体之间的遮挡关系与投影方式有关;5. 空间分割技术
依据:场景中的物体,它们的投影在投影平面上是否有重叠部分?(是否存在相互遮挡的可能?)对于根本不存在相互遮挡关系的物体,应避免这种不必要的测试。
方法:将投影平面上的窗口分成若干小区域;为每个小区域建立相关物体表,表中物体的投影于该区域有相交部分;则在小区域中判断那个物体可见时,只要对该区域的相关物体表中的物体进行比较即可。;6. 复杂度比较:
不妨假定每个小区域的相关物体表中平均有h个物体,场景中有k个物体,由于物体在场景中的分布是分散的,显然h远小于k。根据第二种消隐方法所述,其算法复杂度为O(h*h),远小于O(k*k)。;7. 物体分层表示
表示形式:模型变换中的树形表示方式
原理:减少场景中物体的个数,从而降低算法复杂度。
方法: 将父节点所代表的物体看成子节点所代表物体的包围盒,当两个父节点之间不存在遮挡关系时,就没有必要对两者的子节点做进一步测试。
父节点之间的遮挡关系可以用它们之间的包围盒进行预
原创力文档


文档评论(0)