- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
图形消隐 第一页,共五十五页。图形消隐基本概念提高消隐算法效率的常用方法画家算法Z缓冲器算法扫描线Z缓冲器算法OpenGL相关函数第二页,共五十五页。失去遮挡关系基本概念问题投影变换失去了深度信息,往往导致图形的二义性及失去遮挡关系第三页,共五十五页。基本概念要消除二义性和保持遮挡关系,就必须在绘制(投影)时消除被遮挡的不可见的线或面,习惯上称作消除隐藏线(Hidden Line Removal)消除隐藏面(Hidden Surface Removal) 简称为消隐第四页,共五十五页。基本概念消隐的对象三维物体三维体的表示主要采用边界(多边形)表示消隐结果与观察物体有关,也与视点位置和方向有关线框图 消隐图 真实感图形第五页,共五十五页。基本概念消隐分类消除隐藏线:消除不可见线——线框表示物体消除隐藏面:确定可见面(消除不可见面)——表面表示物体第六页,共五十五页。vnuyP0(x0,y0,z0)xz基本概念世界坐标系 用户用来定义图形的坐标系,主要用于计算机图形场景中所有图形对象的空间定位和定义。观察坐标系 可以在世界坐标系的任何位置、任何方向定义,通常以视点的位置为原点,通过用户指定的一个向上的观察向量来定义整个坐标系统。第七页,共五十五页。基本概念将世界坐标系中的三个坐标轴转换为与观察坐标系的三个坐标轴对应重合的逆变换平移变换,将观察参考点移到世界坐标系的原点处旋转变换,将u,v,n分别对应到x,y,z 即绕x轴旋转 角,绕y轴旋转 角,绕z轴旋转 角第八页,共五十五页。消除隐藏线体=n个面基本运算线线间求交运算线面间求交运算第九页,共五十五页。消除隐藏线平面对直线段的遮挡判断算法思路:先做简单判断,将计算量较大的判断留到后面做第十页,共五十五页。消除隐藏线(1)若线段的两端点及视点在给定平面的同侧,线段不被给定平面遮挡(2)若线段的投影与平面投影的包围盒无交,线段不被给定平面遮挡,转7?第十一页,共五十五页。消除隐藏线(3)求直线与相应无穷平面的交。若无交点,转4。否则,交点在线段内部或外部。若交点在线段内部,交点将线段分成两段,与视点同侧的一段不被遮挡,另一段在视点异侧,转4再判;若交点在线段外部,转4。P0第十二页,共五十五页。(4)求所剩线段的投影与平面边界投影的所有交点。若无交点,转5P0P1P2P4P3P5第十三页,共五十五页。(5)以上所求得的各交点将线段的投影分成若干段,求出第一段中点。(6)若第一段中点在平面的投影内,则相应的段被遮挡,否则不被遮挡;其他段的遮挡关系可依次交替取值进行判断。P0P1P2P4P3P5第十四页,共五十五页。消除隐藏线HiddenLineRemove(){ 坐标变换; for(对每个面Fj) for(Fj的每一条边Ei) 将二元组 Ei ,j压入堆栈 While(栈不空){ Ei ,j0 = 栈顶; for(j!= j0的每一个面Fj) { if ( Ei 被Fj 全部遮挡) {将Ei清空; break; } if ( Ei 被Fj 部分遮挡) { 从Ei中将被遮挡的部分裁掉; if(Ei被分成若干段) { 取其中的一段作为当前Ei 段; 将其它段及相应的j压栈; } } } if(Ei段不为空) 显示Ei ; }} While(栈不空){ Ei ,j0 = 栈顶; for(j!= j0的每一个面Fj) { if ( Ei 被Fj 全部遮挡) {将Ei清空; break; } if ( Ei 被Fj 部分遮挡) { 从Ei中将被遮挡的部分裁掉; if(Ei被分成若干段) { 取其中的一段作为当前Ei 段; 将其它段及相应的j压栈; } } } if(Ei段不为空) 显示Ei ; }求每条边上的遮挡简单的剔除分治策略第十五页,共五十五页。基本概念面消隐算法分类投影窗口内的像素为处理单元——确定最近点 for (窗口内的每一个像素) { 确定距视点最近的物体,以该物体表面的颜色来显示像素 }图像空间-image-space第十六页,共五十五页。基本概念面消隐算法分类(续)场景中的物体为处理单元——物体上的面是否最近for (场景中的每一个物体){ 将其与场景中的其它物体比较,确定其表面的可见部分; 显示该物体表面的可见部分;}物体空间-object-space第十七页,共五十五页。提高消隐算法效率的常用方法主要技术1. 利用连贯性(Spatial Coherence)相邻物体的属性之间有一定的连贯性,其属性值通常是平缓过渡的,如颜色值、空间位置关系等包括:物体连贯性面的连贯性区域连贯性扫描线连贯性深度连贯性第十八页,共五十五页。提高消隐算法效率的常用方法包围盒技术定义:一个形体的包围盒指的是包围它的简单形体两个条件
文档评论(0)