- 1、本文档共54页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
cad计算机辅助设计技术第9章:虚拟产品造型
第9章 虚拟产品造型的理论基础;CAD造型技术发展的一个新方向是虚拟产品造型。传统产品设计中,常需要制作产品零件模型来检查设计效果。如采用虚拟产品技术,用计算机生成真实感图形,就可以方便地在屏幕上以各种角度显示产品的真实视图,并直接对外形进行交互式的修改,这种技术可以代替实物模型的制作。;三维形体;9.2 图形消隐技术;面的可见性是相对于观察位置而言的,不是绝对的。;9.2.2 深度比较;深度比较算法:
(1)对于在xy平面上的正交平行投射,如果x1=x2, y1=y2,则 P1和P2在同一投影线上。在这种情况下,深度比较归结为比较z1和z2。如果z1z2,则P1遮挡P2。
(2)对于透视投影,计算更为复杂(见习题9-1)。但这一困难可通过以下方法加以克服:;如果原物体位于规范化的透视投影空间中,则规范化的变换矩阵NTp可将规范化的投影观察体变换为单位;1;如果显示设备具有显示坐标H×V,则应用比例变换矩阵SH,V,1可将规范化的显示空间;为显示变换(display transform)。; 对以下消隐算法,我们总是在显示空间处理平行投影。消隐算法可分为两大类。
(1) 物体空间的消隐算法
物体空间是指物体所在的空间,即规范化投影空间或显示空间。物空间消隐算法是通过三维空间物体的有关几何元素进行比较,确定可见的线(面)和隐藏的线(面),然后绘出可见的线(面)而略去隐藏的线(面)来实现消隐。
算法特点:精度高,不受显示器分辨率的影响,但计算时间与物体的复杂度有关。; (2) 图像空间的消隐算法
图像空间是相对于物体空间而言的,在消隐算法中,图像空间就是屏幕坐标空间。一般地,空间被消隐的对象可看作是由若干个多边形面片组成的集合,图像空间的消隐算法对每个像素进行判断,根据在图像像素点上各投影之间的关系确定哪些线(面)在该像素上显示,从而实现消隐。
算法特点:只能以与显示器分辨率相适应的精度来完成,使得这种方法不够精确。
一般地,大多数隐藏面消除算法用像空间法,而大多数隐藏线消除算法用物空间法。;1. 消隐算法中的基本测试方法 ;最小最大测试方法可分以下步骤完成:
(1)多边形外接矩形的相交检测
多边形外接矩形指的是以多边形所有顶点x值的最小值xmin、最大值xmax为左、右边,以y值的最小值ymin、最大值ymax为下、上边的矩形。如下图所示,多边形包含在其外接矩形之内。若此两个多边形不相交,则此两多边形不可能重叠。矩形不相交的检测,只要满足下列条件之一,则不可能相交:;多边形之间的相交检测
当多边形外接矩形相交时,要判定多边形是否重叠,需要对各边进行求交运算。在对边做求交运算之前,还可以使用边的外接矩形相交检测来排除大量不相交的情况。
在下图中,只有c 边和g 边以及f 边和g 边的外接矩形相交,两个多边形之间其他边均不可能相交。 判定c 和g 或者f和g 是否相交,需要通过线段求交运算来实现。;设线段1的端点为p11(x11,y11)和p12(x12,y12),则其参数方程为:;设;2. 深度缓存算法——Z-Buffer算法
检测可见面的一种常见的图像空间方法是深度缓存法(depth-buffer method)。如下图,在屏幕观察坐标系中,Z轴方向为观察方向,过屏幕上任意像素点P(i,j)做平行于Z 轴的射线R, 该射线与物体的表面相交于某些点,这种方法通过比较这些交点处的深度值(即Z坐标值)来确定物体表面之间的遮挡关系。如下图中P1点遮挡P2点。;深度缓存消隐算法需要比较每个像素点上相应物体表面点的Z值。因此,它需要一个与屏幕上像素个数一样的缓存,用于存放物体表面点的深度信息。由于每点的深度信息是由该点处的Z坐标值确定的,因此这种方法也称为z-缓存方法(z-buffer method)。
该算法通常用于仅包含多边形表面的物体,因为在这种情况下深度值能够快速计算,相应地Z-buffer算法易于实现。这种方法也能够应用于非平面表面的物体。;算法过程如下:
(1)对景物中的每个多边形,找到当多边形投影到平面屏幕时位于多边形内或边界上的所有像素(i, j) ;(注:可利用多边形扫描算法。)
(2)在每个像素(i, j)处计算多边形的深度Z,并与Z缓存区相应单元的当前值比较,如果前者小于后者,则用Z值更新Z缓存区的相应单元,同时用该点处的光亮度值更新帧缓存区的相应单元。
(3)当所有的多边形被处理完毕,帧缓存区中保留的是已消隐的最终结果。
;深度缓存算法Zbuffer() :
{ //初始化深度缓存ZB和帧缓存FB.
ZB(i,j)=1(即显示空间中的最大z值);
FB(i,j)=背景色. i=0,1,…,H-1;j=
文档评论(0)