




如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
会计学7.1概述当我们观察空间任何一个不透明的物体时,只能看到该物体上朝向我们的那部分表面,其余的表面由于被物体所遮挡我们看不到。如果把可见不可见的线都用一种线型表示出来,不仅表示不清,很混乱,而且还会产生“二义性”。如图7.1所示的物体(组合体)在消除隐藏线之前,显然可以有四种不同的理解。其中(a)是未消隐的原图,(b)、(c)、(d)和(e)表示四种可能的物体。未经消隐的图形可能的四种形体隐藏线和隐藏面形体之间互相遮挡的隐藏线当我们显示线条图或用笔式绘图仪或其它线画设备绘制线条图形时,要解决的主要是消除隐藏线的问题。而当用光栅扫描显示器显示物体的明暗图形时,就必须要解决消除隐藏面的问题。真实感图形(物体的相互遮挡)消隐与消隐对象有关,也与观察者的位置有关从另一个角度观察1.物体空间的消隐算法2.图象空间的消隐算法一般来说,当k<mn时,物体空间算法的计算量比图象空间小,从理论上来说,大多数算法应在物体空间实现。然而,由于光栅扫描过程中易于利用画面的连贯性,故图象空间算法的效率往往更高,而且也相对简单。但物体空间算法比图象空间算法精确。7.2消隐算法常用的几种几何计算方法7.2.1平面多边形的外法矢量如图7.4中的法矢。这种算法虽然简单,但当多边形为凹多边形时,则可能出现错误,即所求的多边形法矢量指向体内。这时可采用如下的计算方法。设n={A,B,C},而非平面但接近平面的多边形的最佳逼近平面的法矢量也可用此算法求出。为避免在程序中出现两种计算平面外矢量的方法,建议凸多边形也采用该算法计算外法矢量。多边形所在平面的方程可写成7.2.2深度检验7.2.3排序7.2.4求交点、交线平面方程的交点也可此方法,但代入后所得的方程为7.2.5背面剔除当cos≥0时,即0≤≤/2时,平面朝前,为可见,应画出。7.3深度(z)缓冲器算法深度缓冲器算法的基本思想深度缓冲器算法原理对于右手坐标系系统,z值最大的点应是可见的;左手坐标系统,z值最小的点应是可见的。下面以左手系为例。深度缓冲器算法有两个缓冲器:深度缓冲器和帧缓冲器。对应两个数组:深度数组depth(x,y)和属性数组intensity(x,y)。前者存放着图象空间每个可见象素的z坐标,后者用来存储图象空间每个象素的属性(光强或颜色)值。初始时,深度缓冲器所有单元均置为最大值,帧缓冲器各单元均置为背景色。然后逐个处理多边形表中的各面片,每次扫描一行。计算该行各象素点(x,y)所对应的深度值,并将其与深度缓冲器中该象素单元所存储的深度值depth(x,y)进行比较,若intensity(x,y)=I(x,y)沿扫描线计算深度值/即对于某一个面片,a/c是常数,故沿扫描线的后续点的深度值,可由上式仅执行一次加法计算即可求出。计算每个面片左边界的深度值所有多边形处理完毕,则把帧缓冲器intensity(x,y)向显示缓冲器输出,即得消隐后的图形(图象)。由此可以看出,深度缓冲器算法比较简单。它的主要缺点是,深度数组和属性数组需要占很大的内存,虽然属性数组可以由显示缓冲器代替,但仅深度数组占用的内存也相当大了。例如,对于一个800×600分辨率则需要480000个单元的缓冲器,如每个单元需要4个字节,则需要1.92兆字节。一个减少存储需求的方案是,每次只对场景的一部分进行处理,这样只需要一个较小的深度数组(缓冲器)。在处理完一部分之后,该数组再用于下一步部分的处理。深度缓冲器算法原理7.3扫描线深度缓冲器算法在逐个考察扫描线上一对交点之间的象素时,每一象素处的深度与深度缓冲器在该位置上原存储的深度值进行比较,若象素深度值小于深度缓冲器中的原有值,则该象素可见,多边形在此位置上的属性写入帧缓冲器的对应象素中,同时更新深度缓冲器上的储存值。见式(7.10)和(7.11)。当画面中所有的多边形都处理完毕时,该扫描线帧缓冲器中的内容即为画面在此扫描线的消隐结果。当所有的扫描线都处理完毕后,即得整个画面的消隐图形。在具体处理时,若每条扫描线对所有的多边形都检查是否与该扫描线相交,则效率很低。为此,采用第三章3.4介绍的活化边表的一种变化形式,即采用y桶、活化多边形表和活化边表,以提高算法的效率。从这个意义上说,扫描线深度缓冲器算法是多边形扫描线算法的推广。活化多边形表和活化边表都是链表,具体操作见第六章6.6。扫描线深度缓冲器算法的步骤活化边表含有每一多边形边对的下列信息:yr穿过右边的扫描线条数; zl当前扫描线与左边交点的深度。2.隐藏面的消除(5)从活化边表中提取多边形边对进行处理将计算的z值继续按式(7.12)和式(7.13)进行处理;也可以只按式(7.12)处理,同时将该象素写入显示缓冲器,即按该象素的光强或颜色画出该象素,这时不必建立帧缓冲器。在每个多边形边对中,yl和yr各

骑着****猪猪
实名认证
内容提供者


最近下载