计算机图形学隐藏面的消除word版本.ppt

计算机图形学隐藏面的消除word版本.ppt

ID:59808276

大小:391.50 KB

页数:33页

时间:2020-11-25

计算机图形学隐藏面的消除word版本.ppt_第1页
计算机图形学隐藏面的消除word版本.ppt_第2页
计算机图形学隐藏面的消除word版本.ppt_第3页
计算机图形学隐藏面的消除word版本.ppt_第4页
计算机图形学隐藏面的消除word版本.ppt_第5页
资源描述:

《计算机图形学隐藏面的消除word版本.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、计算机图形学隐藏面的消除消隐算法及其分类人不能一眼看到一个三维物体的全部表面。从一个视点去观察一个三维物体时,必然只能看到该物体表面上的部分点、线、面,而其余部分则被这些可见部分遮挡住。如果观察的是若干个三维物体,则物体之间还可能彼此遮挡而部分不可见。消隐算法及其分类按照操作对象的不同表达,消隐算法可以分为两大类对象空间方法(ObjectSpaceMethods)图像空间方法(ImageSpaceMethods)对象空间方法和图像空间方法对象空间是对象三维空间,即对象被定义时所处的坐标空间。对象空间方法是对要显示的各个对象及对象的各个部分进行相互比较,分析对象的三维

2、特性之间的关系,以确定不可见的表面或者线条的方法。图像空间是对象投影后所在的二维空间,即设备坐标系图像空间方法是将对象投影后分解为像素,按照一定的规律,比较像素之间的深度(z)值,从而确定其是否可见的方法。消隐算法及其分类虽然各种消隐方法具体的实现方法不同,但这些方法中大都采用分类及连贯两种基本方法改进算法效率。分类方法主要用于深度比较,即按照景物中各个线、面、体与取景平面的距离分类,以决定取舍。连贯方法是指利用显示景物具有某些相关特性,可以用来简化计算。消隐算法及其分类从消隐对象角度来看,消隐算法可分为两类:线消隐和面消隐。线消隐的消隐对象是物体上的边,消除的是物

3、体上不可见的边。面消隐的消隐对象是物体上的面,消除的是物体上不可见的面。画家算法画家算法是把对象空间方法与图像空间方法结合在一起来消除隐藏面的方法。画家算法的原理:先把屏幕置成背景色,再把物体的各个面按其离视点的远近进行排序,离视点远者在表头,离视点近者在表尾,排序结果存在一张深度优先级表中。然后按照从表头到表尾的顺序逐个绘制各个面。由于后显示的图形取代先显示的画面,而后显示的图形所代表的面离视点更近,所以由远及近的绘制各面,就相当于消除隐藏面。该算法习惯上称为画家算法或深度排序算法。多边形的画家算法(1)以每一多边形的zmin作为排序关键码,建立初步的深度排序表,

4、表中第一个多边形是具有最小z值的多边形,记为P。设视点位于z轴方向的无穷远处,则P为离视点最远的多边形,表中第二个多边形标为Q。(2)检查表中每个多边形与P的关系。分为3种关系:多边形的画家算法a.多边形的画家算法b.多边形的画家算法c.所有测试失败:必须对两个多边形在Oxy平面上的投影作求交运算。计算时不必具体求出重叠部分,在交点处进行深度比较,只要能判断出前后顺序即可。深度缓冲算法Z缓冲区(Z-Buffer)算法。在这个算法里,不仅需要有帧缓存来存放每个像素的颜色值,还需要一个深度缓存来存放每个像素的深度值。深度缓冲算法Z缓冲器的深度值越大,说明该点越接近视点。

5、在把显示对象的每个面上每一点的属性(颜色或灰度)值填入帧缓冲器相应单元前,要把这点的z坐标值和Z缓冲器中相应单元的值进行比较。只有前者大于后者时才改变帧缓冲器的那一单元的值,同时Z缓冲器中相应单元的值也要改成这点的z坐标值。深度缓冲算法描述Z-Buffer算法(){帧缓存全置为背景色深度缓存全置为最小z值for(每一个多边形){扫描转换该多边形for(该多边形所覆盖的每个像素(x,y)){计算该多边形在该像素的深度值d(x,y);if(d(x,y)大于Z缓存在(x,y)的值){把d(x,y)存入Z缓存中(x,y)处把多边形在(x,y)处的颜色值存入帧缓存的(x,y)

6、处}}}深度缓冲算法该算法的最大优点在于简单。它可轻而易举地处理隐藏面以及显示复杂曲面之间的交线。画面可以任意复杂。由于画面元素可按任意次序写入帧缓冲器和Z缓冲器,故无需按深度优先级排序,可省去深度排序时间。扫描线算法如果只对一条扫描线进行Z缓冲器算法,则可以得到扫描线Z缓冲器算法。扫描线Z缓冲器算法做了两点改进。①将整个绘图窗口内的消隐问题分解到一条条扫描线上解决,使所需的Z缓冲器大大减少。②计算深度值时,利用了面连贯性,只用了一个加法。区间扫描线算法扫描线Z缓冲器中,被多个多边形覆盖的像素区处还要进行多次计算,计算量仍然很大。区间扫描线算法克服了这一缺陷,可利用

7、连贯性提高算法效率,使得在一条扫描线上每个区间只计算一次深度值,并且不需要Z缓冲器。它是把当前扫描线与各多边形在投影平面的投影的交点进行排序后,使扫描线分为若干子区间。区间扫描线算法可以将区间分为三类:①区间为空,区间[0,a1],此时只要按背景属性显示即可;②区间中只包含一个区段即一条交线或交线的一部分.如图中的区间[a1,a2]和[a3,a4],此时按该区段所在多边形的显示属性进行显示;③区间中有多条分别属于不同多边形的区段,如图中的区间[a2,a3],此时必须计算该区间中每个区段的深度,具有最大z值的区段为该区间中的可见段,按此可见段所在多边形的属性进行显

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。