13-消隐算法.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
13-消隐算法

9.Visible-Surface Detection Methods 目的:通过检测可见面,消除隐藏线和隐藏面,以在二维平面上显示具有真实感图形。 消除隐藏线和隐藏面,是计算机图形学中比较因难但又是十分关键的一个问题。消隐算法是决定相对于空间给定位置的观察者,哪些线、表面或物体是可见的,哪些是不可见的。本章主要展示和计论一些最常用的隐藏线和隐藏面的消隐方法及技术。 Main Topics Classification of Visible-Surface Detection Methods Back-Face Detection Depth-Buffer Method A-Buffer Method Scan-Line Method Depth-Sorting Method BSP-Tree Method Area-Subdivision Method Octree Methods Ray-Casting Method Curved-Surfaces WireFrame Visiblity Method OpenGL Visibility-Detection Functions Basic Concepts 投影变换失去了深度信息,往往导致图形的二义性 要消除二义性,就必须在绘制时消除被遮挡的不可见的线或面,习惯上称作消除隐藏线和隐藏面,简称为消隐。 经过消隐得到的投影图称为物体的真实图形。 9.1 Classification 到目前为止,已经提出了很多有效的消隐算法,这些算法可以依据算法实现时所在的坐标系或空间进行分类,一般可分成两大类 (1)对象空间算法(object-space methods);在对象定义时所处的坐标系中实现。这种方法把物体和物体的某些部分彼此比较,通过有关几何运算,以确定哪些线或表面是不可见的.然后仅显示可见线,以此实现消隐,这种算法精度较高,生成的图形可以放大多倍而仍然令人满意,适用于精密的工程应用领域 (2)图像空间算法(image-space methods);在显示图形的屏幕座标系中实现。这种方法是对投影平面或显示屏幕上的每一个像素位置逐点地检测其可见性。这种算法比较粗糙.而且按图像空间算法得到的画面在放大后往往不能令人满意。但这种算法计算效率比较高,因为在光栅扫描过程中可以充分利用画面的连贯性等性质。因此.有许多方法是在图像空间中实现的 两个方法一般都利用排序和连贯性来提高算法性能,排序主要用在深度比较,而连贯性利用图形的规则性,如Scan-Line。 9.2 Back-Face Detection A Simple and Fast Object-Space Methods Inside-Outside Test Plane equation,Ax+By+Cz+D=0 点在平面内Ax+By+Cz+D0;点在平面外Ax+By+Cz+D0 Back-Face V.N0 如果V(观察者在Z轴,且观察射线与Z平行),则V=(0,0,Vz) V.N=VzC;我们只考虑平面法向量N的C分量的符号 考虑如图,如果C小于0,则为Back-Face. 9.3 Depth-Buffer Method Z缓冲区算法或称深度缓冲区算法 所有图像空间消隐算法个原理最简单的一种, 是由catmull在1975年提出的,适用于正投影时的消隐处理 基本思想是.对于显示屏上的每个像素.记录下位于此像素上最靠近观察者的一个对象的深度,通过深度的比较来决定该对象可见或不可见。为此.我们不仅有存储每一像素点亮度或色彩的帧缓冲器frame,还要设置一个用于存储每一像素点所显示对象深度的缓冲区,称为Z缓冲区或深度缓冲区。可见,深度缓冲区是帧缓冲区的简单推广。假定显示器的分辨率是M×N,则两个缓冲区的大小均为M×N,但每个像素位置所需用的字节数可以不同,根据实际情况来确定,如深度缓冲区每位的字节数根据z坐标的大小或精度来确定。因此,如果我们仍然假定视点在右手坐标系z轴正向无穷远处,则用深度缓冲区算法来实现消隐的基本过程如下: (1)将帧缓冲区置为背景值,深度缓冲区置为最小的深度值。即对所有的(x,y),0=x=M-1,0=y=N-l,令frame(x,y)=背景值.zbuffer(x,y)=最小的z (2)对要显示的物体、作预先指定的观察变换,使物体表面上的任一点.总和某个像素位置(x v y)相对应,而且总可以知道该点对应的深度z(x,y)。逐个以任意次序、对物体表面上的每一点,完成以下任务 a.假定当前所讨论的点对应像素位置为(x.y),因此,可以确定该点的深度z(x,y),该点的色彩或灰度I(x.y) b.如果z(x,y)zbuffer(x,y),那么将z(x,y)置入zbuffer(

文档评论(0)

zhuwenmeijiale + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:7065136142000003

1亿VIP精品文档

相关文档