CAD(计算机辅助设计技术)第9章虚拟产品造型.ppt_第1页
CAD(计算机辅助设计技术)第9章虚拟产品造型.ppt_第2页
CAD(计算机辅助设计技术)第9章虚拟产品造型.ppt_第3页
CAD(计算机辅助设计技术)第9章虚拟产品造型.ppt_第4页
CAD(计算机辅助设计技术)第9章虚拟产品造型.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第9章 虚拟产品造型的理论基础,9.1 简介 9.2 图形消隐技术 9.3 光照模型 9.4 多边形表示物体的光滑明暗处理 9.5 高度真实感图形的生成技术 9.6 需要补充说明的问题,CAD造型技术发展的一个新方向是虚拟产品造型。传统产品设计中,常需要制作产品零件模型来检查设计效果。如采用虚拟产品技术,用计算机生成真实感图形,就可以方便地在屏幕上以各种角度显示产品的真实视图,并直接对外形进行交互式的修改,这种技术可以代替实物模型的制作。,9.1 简介,三种表现形体的方式: 线框图、消隐图和真实感图。,三维形体,观察空间的定义及转换,三维裁剪,投影,线框图,消隐,投影,消隐图,消隐,光照效果生

2、成,投影,真实感图,9.2 图形消隐技术,图形消隐的必要性:,消隐与消隐图、,立方体的线框图,从右上方观察,从左下方观察,线消隐与面消隐:,9.2.1 引言,面的可见性是相对于观察位置而言的,不是绝对的。,A,B,C,D,V1,V2,V3,观察点的位置影响可见性,9.2.2 深度比较,以下假定消隐算法都是在规范化观察坐标系中进行的,即所有坐标(x,y,z)都是在规范化观察坐标系中定义的。 任何表面消隐算法必须从透视投影的投影中心或沿着平行投影的投影方向确定哪些边和哪些面是可见的。即沿着每条投影线确定最近的可见边与可见面。 可见性问题可归结为:给定两点P1(x1,y1,z1)和P2(x2,y2,

3、z2),一个点是否遮挡另一点?这可通过以下两步进行解答: (1) P1和P2是否在同一投影线上? (2) 若不是,则任何一个都不遮挡另一个。如果是,通过深度比较可确定哪个点在另一个点的前面。,深度比较算法: (1)对于在xy平面上的正交平行投射,如果x1=x2, y1=y2,则 P1和P2在同一投影线上。在这种情况下,深度比较归结为比较z1和z2。如果z1z2,则P1遮挡P2。 (2)对于透视投影,计算更为复杂(见习题9-1)。但这一困难可通过以下方法加以克服:,P2(x2,y2,z2),P1(x1,y1,z1),y,x,z,C,P2(x2,y2,z2),P1(x1,y1,z1),y,x,z,

4、正交平行投影,透视投影,如果原物体位于规范化的透视投影空间中,则规范化的变换矩阵NTp可将规范化的投影观察体变换为单位,立方体:,。我们称该立方体,为规范化显示空间(normalized display space)。,f: 前截面的位置,重要性质: (1)该变换保持线、面与深度关系。 (2)被变换物体的平行投射等价于原物体的透视投射。,1,f,y=z,前截面,x=z,x=-z,y=-z,投影中心,x,z,y,1,1,1,前截面,后截面,x,y,z,NTp变换,如果显示设备具有显示坐标HV,则应用比例变换矩阵SH,V,1可将规范化的显示空间,变换成区域,。该区域称,为显示空间(display

5、space)。,SH,V,1变换,1,1,1,前截面,后截面,x,y,z,前截面,后截面,H,V,1,x,y,z,为显示变换(display transform)。,称,规范化透视投影空间,NT p,规范化显示空间,SH,V,1,显示空间,三维裁剪,SH,V,1,显示空间,规范化平行投影空间,三维裁剪,对以下消隐算法,我们总是在显示空间处理平行投影。消隐算法可分为两大类。 (1) 物体空间的消隐算法 物体空间是指物体所在的空间,即规范化投影空间或显示空间。物空间消隐算法是通过三维空间物体的有关几何元素进行比较,确定可见的线(面)和隐藏的线(面),然后绘出可见的线(面)而略去隐藏的线(面)来实现

6、消隐。 算法特点:精度高,不受显示器分辨率的影响,但计算时间与物体的复杂度有关。,9.2.3 消隐算法,(2) 图像空间的消隐算法 图像空间是相对于物体空间而言的,在消隐算法中,图像空间就是屏幕坐标空间。一般地,空间被消隐的对象可看作是由若干个多边形面片组成的集合,图像空间的消隐算法对每个像素进行判断,根据在图像像素点上各投影之间的关系确定哪些线(面)在该像素上显示,从而实现消隐。 算法特点:只能以与显示器分辨率相适应的精度来完成,使得这种方法不够精确。 一般地,大多数隐藏面消除算法用像空间法,而大多数隐藏线消除算法用物空间法。,1. 消隐算法中的基本测试方法,基本测试方法包括: 最小最大测试

7、 这种测试也叫重叠测试或边界盒测试,用来检查两个多边形是否重叠。 包含性测试 检查一个给定点是否位于给定的多边形或多面体内。 深度测试 用来测定一个物体遮挡另外物体的基本方法。 可见性测试 用来确定景物中潜在的可见部分。,最小最大测试方法可分以下步骤完成: (1)多边形外接矩形的相交检测 多边形外接矩形指的是以多边形所有顶点x值的最小值xmin、最大值xmax为左、右边,以y值的最小值ymin、最大值ymax为下、上边的矩形。如下图所示,多边形包含在其外接矩形之内。若此两个多边形不相交,则此两多边形不可能重叠。矩形不相交的检测,只要满足下列条件之一,则不可能相交:,A,B,多边形之间的相交检测

8、 当多边形外接矩形相交时,要判定多边形是否重叠,需要对各边进行求交运算。在对边做求交运算之前,还可以使用边的外接矩形相交检测来排除大量不相交的情况。 在下图中,只有c 边和g 边以及f 边和g 边的外接矩形相交,两个多边形之间其他边均不可能相交。 判定c 和g 或者f和g 是否相交,需要通过线段求交运算来实现。,i,j,h,g,c,d,e,f,线段的外接矩形,设线段1的端点为p11(x11,y11)和p12(x12,y12),则其参数方程为:,设线段2的端点为p21(x21,y21)和p22(x22,y22),则其参数方程为:,P11,P12,P21,P22,P11,P12,P21,P22,(

9、a)交点在线段内,(b)交点在线段外,设,则直线相交的条件为:,参数t1和t2为:,根据这两个参数是否都在0与1之间确定交点是否在线段的内部。,2. 深度缓存算法Z-Buffer算法 检测可见面的一种常见的图像空间方法是深度缓存法(depth-buffer method)。如下图,在屏幕观察坐标系中,Z轴方向为观察方向,过屏幕上任意像素点P(i,j)做平行于Z 轴的射线R, 该射线与物体的表面相交于某些点,这种方法通过比较这些交点处的深度值(即Z坐标值)来确定物体表面之间的遮挡关系。如下图中P1点遮挡P2点。,显示空间中的物体,R,H,i,O,V,x,y,z,j,P(i,j),P1,P2,屏幕

10、(投影平面),屏幕观察坐标系,深度缓存消隐算法需要比较每个像素点上相应物体表面点的Z值。因此,它需要一个与屏幕上像素个数一样的缓存,用于存放物体表面点的深度信息。由于每点的深度信息是由该点处的Z坐标值确定的,因此这种方法也称为z-缓存方法(z-buffer method)。 该算法通常用于仅包含多边形表面的物体,因为在这种情况下深度值能够快速计算,相应地Z-buffer算法易于实现。这种方法也能够应用于非平面表面的物体。,算法过程如下: (1)对景物中的每个多边形,找到当多边形投影到平面屏幕时位于多边形内或边界上的所有像素(i, j) ;(注:可利用多边形扫描算法。) (2)在每个像素(i,

11、j)处计算多边形的深度Z,并与Z缓存区相应单元的当前值比较,如果前者小于后者,则用Z值更新Z缓存区的相应单元,同时用该点处的光亮度值更新帧缓存区的相应单元。 (3)当所有的多边形被处理完毕,帧缓存区中保留的是已消隐的最终结果。,深度缓存算法Zbuffer() : /初始化深度缓存ZB和帧缓存FB. ZB(i,j)=1(即显示空间中的最大z值); FB(i,j)=背景色. i=0,1,H-1;j=0,1,V-1 for(每一个多边形) / 扫描转换该多边形 for(该多边形所覆盖的每个像素(i,j) 计算多边形在该像素的深度值z(i,j); if(z(i,j)ZB(i,j) ZB(i,j)= z

12、(i,j); FB(i,j)=多边形在(i,j)处的亮度值. , 当所有多边形表面处理完后,深度缓存包含了所有可见表面的深度值,而帧缓存FB(i, j)包含的是那些表面相应的亮度值。将FB(i, j)的值送到显示器就能得到消隐后的三维图形的投影图。 该算法的最大优点是其简单性,它不需要在 x,y,z方向上进行任何排序,另一个优点是便于硬件实现。 其代价是需要增加一个与帧缓存大小相同的深度缓存。,算法的优化: (1) 对每个多边形,确定y 坐标的范围,从顶部扫描线到底部扫描线顺次处理该多边形。 (2) 利用同一扫描线上深度值的相关性计算深度值。 多边形表面上点 (i,j ) 的深度值可通过平面方

13、程计算如下:,x,y,i,i+1,j,top scan line,假设扫描线y=j+1与多边形左边的交点为(x j+1,j+1),该点处的深度值为z (x j+1,j+1),则下一条扫描线y=j与该多边形左边的交点为(x j,j),其中,可以算出,,如果处理的是垂直边,它的斜率是无穷的,则递归计算公式为:,(3) 利用边的相关性计算深度值,x,y,xj,j,j+1,top scan line,xj+1,讨论 一般地,深度缓存消隐算法指我们上面所描述的方法,其基本处理过程是: 对物体中每个多边形表面,可结合扫描线算法对其覆盖像素区域中的每个像素进行深度比较等处理。 现介绍一种方法,试比较这两种方

14、法的异同: 设显示屏幕分辨率为HV,有L个多边形,则Z-buffer算法可用如下伪语言描述: for(j=0,jV,j+) for(i=0,iH,i+) /初始化深度缓存ZB和帧缓存FB, ZB(i,j)=1(即显示空间中的最大z 值);,FB(i,j)=背景色 For(j=0,jV,j+) /可看成为第j个扫描线 for(i=0,iH,i+) for(k=0,kL,k+) if(像素点位于多边形k在XOY的投影区内) 计算多边形k在该点的深度值z(i,j); if(z(i,j)ZB(i,j) ZB(i,j)= z(i,j); FB(i,j)=第k个多边形在(i,j)处的亮度值 ,3. 扫描线

15、算法简介 扫描线通常指屏幕上的一行像素。扫描线算法是每次只对一条扫描线进行消隐处理的一种最简单的算法。其思路是,在一系列测试过程中,找到过像素点投影线最先相交的形体表面点的光亮度,作为像素值。 与Z缓存算法不同的是,扫描线算法只设置一行像素点的帧缓存和Z缓存,因此它的测试顺序只能按扫描线逐行进行,每生成一行消隐后的像素数据就显示一行或存储一行。,9.3 光照模型,9.3.1 简介 在消隐算法中,多边形的颜色是如何得到的? 最简单的两种方法是: (1)当像素点是多边形的边界时,用前景色;当像素点在多边形的内部时,用背景色。由此可得到消隐后的线框图。 (2)预先给每个多边形赋予一种颜色,这样可得到

16、一幅彩色填充图。 但多边形之间及多边形内部没有均匀的颜色过渡。,为进一步增强图形的真实感,要使计算机生成的图形具有以下特点: (1)反映物体表面颜色与亮度的细微变化; (2)反映物体表面的质感; (3)充分体现物体之间的遮挡关系; (4)能模拟透明物体的透明效果。,影响物体外观的因素: (1)几何形状; (2)表面特性,如材料的粗糙度、表面颜色和纹理等; (3)照射物体的光源; (4)物体与光源的相对位置; (5)物体周围的环境。,用计算机在图形设备上生成连续色调的真实感图形必须完成四个基本任务。第一,用数学方法建立所需三维场景的几何描述,并将它们输入到计算机;第二,将三维几何描述转换为二维透

17、视图;第三,确定场景中的所有可见面; 第四,计算场景中可见面的颜色,严格地说,就是根据基于光学物理的光照模型计算可见面投射到观察者眼中的光亮度大小和色彩分量,并将它转换成适合图形设备的颜色值,从而确定投影画面上每一像素的颜色,最后生成图形。,屏幕,像素,景物,可见点,观察者,当光照射到一个物体表面上时,会出现三种情况。首先,光可以通过物体表面向空间反射,产生反射光;其次,对于透明体,光可以穿透该物体并从另一端射出,产生透射光;最后,部分光将被物体吸收而转换成热。在上述三部分光中,仅仅是透射光和反射光能够进入人眼产生视觉效果。因此,物体表面的反射光和透射光决定了物体呈现的颜色。物体表面向空间给定

18、方向辐射的光亮度可应用光照模型进行计算。 这里我们重点讨论不包括透射光的简单光照明模型。该模型仅考虑光源照射在物体表面产生的反射光,所生成的图形可以模拟出不透明物体表面的明暗过渡,具有一定的真实感效果。,9.3.2 Phong模型 这里将给出一个简单但实用的光照明模型。假设物体不透明,光源为点光源,且环境由白光照明,那么,物体表面呈现的颜色仅由其反射光决定。 通常,人们将反射光考虑成三个分量的组合。这三个分量分别是环境反射、漫反射和镜面反射。 环境反射分量假定入射光均匀地从周围环境入射至景物表面并等量地向各个方向反射出去,而漫反射分量和镜面反射分量则表示特定光源照射在景物表 面上产生的反射光。

19、,问题:从视点V 观察物体表面上的点Q,Q点的颜色是什么?亦即Q点沿向量V 的方向反射到我们眼中的光的颜色是什么? 漫反射: 来自点光源的光能沿各个方向均匀反射。 我们希望漫反射光是入射角 的函数,角度越小,反射的能量越多。 可用朗伯余弦定理来计算漫反射光的光亮度。即对于一个漫反射体,表面的反射光亮度和光源入射角(入射光线和表面法向量的夹角)的余弦成正比。,Q,N,L,R,V,View Point,表面法向,反射方向,镜面反射: 用于模拟物体的 高光性质。若物体表面是理想的镜面,则镜面反射光遵守光的反射定律,因此反射光仅沿着R方向反射。 对于一般的光滑表面,其镜面反射光分布于表面镜面反射方向的

20、周围,如在以R为中心的锥形体内分布。实用时,常采用余弦函数的幂次 来模拟一般光滑表面的镜面反射光的空间分布。 其中自然数k 提供了一种简单的方式模拟物体的光洁度(shininess),k 也称为镜面反射光的会聚系数。,Q,N,L,R,V,View Point,表面法向,反射方向,环境反射:物体表面除受特定光源照射外,还受到从周围环境来的反射光(如来自地面、天空、墙壁的反射光)的照射。由于假设环境光是沿各个方向均匀反射的,故可用一常数来表示。 如前所述,表面反射光可认为是环境反射、漫反射、镜面反射三分量的组合。对于一特定的物体表面,这三种分量所占的比例具有一定的值。令ka,kd,ks分别表示环境

21、反射、漫反射、镜面反射分量的比例系数,则一个实用的光照明模型(Phong模型)可表示如下:,其中,Ia表示环境光光亮度;Ip表示点光源的光亮度;,反射系数,分别表示物体表面反射环境,光、产生漫反射和镜面反射的能力。,如果L,N,R和V 都是单位向量,则,当场景中存在两个或更多的光源时,光亮度计算公式为:,这些公式通常与RGB颜色模型一起使用。 所以光亮度表示为RGB颜色分量,如I=(Ir,Ig,Ib)。反射系数也是三维向量。例如,当用白光照射时,kd=(0.7,0.7,0.3)定义了 一个呈黄色的表面。环境反射系数ka可简单地取为kd。ks的三个分量通常取等值,以使高光处的颜色与光源本身的颜色

22、相同。亦即,用镜面反射产生的高光点模拟光源的颜色,而通过设置漫反射系数kd的RGB的三个分量的值改变物体的颜色。,对于白色光源,单个点光源的计算公式为:,在实际应用中,由于计算R与V的内积不方便(见本章选做题),常用N与H的内积来代替。这里H为沿L和V的角平分线的单位向量,可理解为朝观察方向产生镜面反射的虚拟表面的法向量,如下图所示。,N,L,H,V,L与V的角平分向量H,Phong模型的特点: 它是模拟物体表面反射光的一个非常高效的方法,在实 际中获得了广泛的应用。 它是一个经验模型, 尽管它遵从了一些物理定律, 但大 部分是基于对客观现象的观察。 它是一个局部光照模型,因为它仅考虑了光源直

23、接照射 在景物表面上产生的反射光能。,9.4 多边形表示物体的光滑明暗处理 本节考虑光照模型在绘制标准图形时的应用,其中标准图形是指由多边形表面构成的图形。 标准图形通常是曲面体的多边形网格逼近,但它本身也可以是一个多面体,而非曲面体的逼近。 通常将扫描线算法与光照模型相结合,以如下两种方法之一绘制多边形表面: 每个多边形内部都用单个光亮度填充,不同的多边形可以采用不同的颜色。 每个多边形表面上每点的光亮度值通过插值方案获得。,9.4.1 常量光亮度明暗法(Constant-intensity Shading) 在这种方法中,对每个多边形计算其中一个点的光亮度,然后将该多边形表面上每个点用相同

24、的光亮度值显示。这种方法可用于快速显示曲面体的外观。 当光源和视点离物体足够远时,常量明暗法可产生好的显示效果。 这种方法的缺点是相邻多边形表面之间光亮度和颜色的不连续性,此外就是高光问题:若所计算的那点不在高光处,则难以生成高光效果;而若刚好取到高光点,则又会使这个效果失真。,9.4.2 Gouraud明暗处理技术 基本思想: 对离散的光亮度采样做双线性插值以获得一连续的光亮度函数。 基本目标:用于解决多边形之间亮度和色彩的光滑过渡问题。 具体方法: 对每个多边形表面进行以下计算: (1) 计算每个多边形的法向; (2) 由与多边形顶点相邻的所有多边形的法向量求平均并单位化, 得到每个顶点的

25、平均单位法向量; (3) 应用光照模型计算每个多边形顶点处的光亮度; (4) 利用双线性插值,求出多边形内部各点的光亮度。, 插值算法 双线性插值过程可以与扫描线消隐算法结合起来,先由顶点的亮度值线性插值出各边的光亮度值,然后由各边的光亮度值线性插值出多边形内各点的亮度值。,V,N1,N2,N3,N4,NV,顶点处法向量的确定,顶点处法向量的确定,1,2,3,4,5,P,x,y,利用相关性提高计算效率: 1. 利用扫描线之间的相关性,I1,y,I2,扫描线,I,I,x,x+1,y-1,若,则,2. 利用同一扫描线上像素间的相关性,若,则,1,2,3,4,5,P,xp,P,xp+1,算法特点:

26、(1)克服了多边形填充算法存在的多边形之间亮度的不连续过渡以及多边形域内亮度单一的问题; (2)与直接用Phong光照模型计算表面上每点的光亮度相比,计算速度大大提高; (3)高光效果不理想,主要表现在高光域的形状不够完整; (4)没有完全消除马赫带效应。所谓马赫带效应是指肉眼感觉到的亮度变化比实际的亮度变化要大,亦即光亮度变化率不连续的边界呈现亮带或黑带。,9.4.3 Phong明暗处理技术 如前所述,尽管Gouraud明暗处理简单易行,但它不能正确模拟高光,还会产生马赫带效应等问题。克服这些缺点的另一种方法是采用Phong明暗处理。 基本思想: 对离散的法向量采样作双线性插值,构造一个连续

27、的法向量函数,将这一法向量插值函数代入光亮度计算公式,即得到一个非线性的光亮度插值公式。,V1,V2,V3,N1,N2,N3,Nb,Np,Na,a,p,b,扫描线,算法特点: 大大减少了马赫带效应,产生出真实的高光效果;但计算量较大。,9.5 高度真实感图形的生成技术 1. 光透射模型,模拟透明体在光照下的透明效果。 如右图, 若A为透明体, 则P点向观察者发出的光亮度除了光源在P点的反射光能外,还包括物体B上Q点传送到P点的透射光亮度。,P,A,B,Q,一般地,把模拟直接光照的模型称为局部光照模型,它由环境光、漫反射光、镜面反射光和透射光四部分组成。,2. 整体光照模型,B,A,V,如右图所示,设B是镜面物体,在视点V 所见到的物体表面A点的亮度,一部分是从光源直接照射到A点,经漫反射和镜面反射到达A点的光强;另一部分是物体表面上B点对光源的反射光,再经A点反射到B的光强。,一般地, 局部光照模型与整体光照模型结合起来,就可以全面反映物体表面上点的光强。,光线跟踪算法 光线跟踪是一种高度真实感图形绘制技术。其巨大潜力在于它能够模仿自然界中光的传播,并在景物空间求解;其主要缺点是计算量大。 4. 阴影生成 阴影是指景物中那些没有被光源直接照射到的暗区。 在计算机生成的真实感

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论