1、机械CAD,1,3.7图形变换,无论是用于子图形装配、定位、定向,还是用于图形观察,都需要对图形进行变换操作。这是计算机绘图优越于手工绘图的一个原因。图形变换分为线形变换和非线形变换两大类。,机械CAD,2,线性变换主要有平移、旋转、比例变换,主要用于统一世界坐标系WCS下的定位定向建模操作和改换视点、视向的不同观察坐标系下的观察投影变换,一般没有降维现象。线性变换具有保点、保形、保线的优点,且除透视投影变换外平行线仍变为平行线、交点仍变换交点。,机械CAD,3,非线性变换利用非线性函数,实现图形几何信息和外观属性信息的特技处理,如透视变换(有降维、灭点现象),如电视广告艺术中的魔幻变换(车变
2、动物、流动化及时间反演变换)。非线性变换技术能够创造出更多虚幻的效果,其变换函数为坐标的非线性函数,如多项式、三角函数、指数函数等等,在图像、动画处理软件中广为应用。分形几何中曼氏图从本质上来说也是一种非线性变换。,机械CAD,4,常用非线性变换有: 时域和空间领域的FFT变换。把2D图像转化为2D空间频率集,如余弦变换、小波变换,用于图像压缩。 滤波、锐化变换。如取中值、平均值、差分值等变换,常用于图像去污及平衡背景。 插值变换。依据指定关键帧图,对中间过渡状态进行线性、非线性插值,常用于动画制作。 映射变换。如把矩形参数网格映射曲面网、三角网,如平面镜、凹凸镜图像生成和纹理映射。 复数变换
3、。利用复变函数把(xy)映成(uv)。常用各种保角映射。,机械CAD,5,图形线性变换可以分两种情况。 一种情况是几何变换,坐标系固定不变,只是物体方位、大小发生变化。例如在三维CAD中,从UCS建模坐标系(局部用户坐标系)到WCS世界坐标系(全局坐标系)的变换,实现零件与零件组合(并、差)或零件装配到另外一个零件上的定位操作。 另一种情况是观察变换,物体固定不变,只是坐标系发生变化。例如三维CAD中,从WCS世界坐标系到VCS观察坐标系的变换,实现空间不同角度视察同一个物体。 这两种变换在数学上是互逆的。,机械CAD,6,3.7.1 几何变换,二维空间中用矢量 表示点的坐标或X YT三维空间
4、中用矢量 表示点的坐标或X Y ZT几何变换往往通过相应的矩阵运算来实现。,机械CAD,7,3.7.1.1 二维图形的几何变换,1 平移变换,(x, y),(x, y),(dx, dy),x,y,机械CAD,8,2. 比例缩放,(x, y),(x, y),x,y,机械CAD,9,3. 旋转,x,y,f,q,(x, y),(x, y),机械CAD,10,机械CAD,11,4. 对称,1)对x轴,机械CAD,12,2) 对y轴3) 原点4) 450线5) -450线,机械CAD,13,5. 错切,机械CAD,14,二维变换的矩阵表示,为了得到统一的表达式,引入齐次坐标系的概念。用n+1维向量来表达
5、一个n维向量,如(x y h)表达二维点(x y)。 优点: 1)可以统一几何变换表达式,并且完成复合运算。 2)可以表示无穷远点,有利于表示三维图形的透视变换。,机械CAD,15,机械CAD,16,机械CAD,17,复合变换,复合变换是指对图形进行一次以上的变换,变换的结果是每次的变换矩阵相乘。任何一组变换都可以表示成一个复合变换矩阵,只需要计算每一个单独变换矩阵,并求解出乘积;从另一个方面讲,任何一个复杂的几何变换都可以看作基本几何变换的组合形式,也叫复合变换一般情况下,当我们需要对一个图形对象进行较复杂的变换时,我们并不直接去计算这个变换,而是首先将其分解成多个基本变换,再依次用它们作用
6、于图形。这种变换分解,再合成的办法看起来有些麻烦,但是对用户来说更直接,更容易想象。,机械CAD,18,1 复合平移,复合平移,是指图形经过两次或以上次的平移。下面是点经过两次连续的平移变换后,其变换矩阵如下:,机械CAD,19,2 复合比例,复合平移,是指经过两个连续比例变换后,产生如下的复合变换:,机械CAD,20,3 复合旋转,复合旋转,是指经过两个连续旋转变换后,产生如下的复合变换:,机械CAD,21,在进行复合变换时,通常把复合变换分解成几个简单的几何变换,表示成几个矩阵相乘的形式,因此需要注意矩阵相乘的顺序。由于矩阵乘法不满足交换律,所以在复合几何变换中,矩阵相乘的顺序不可以交换。
7、但是,在一些特殊情况下,可以满足矩阵交换律,如两次连续的平移变换,两次连续的比例变换,两次连续的旋转变换等等;另外,旋转和等比例变换也是可以交换的。,机械CAD,22,4 绕任意点P(xp,yp)旋转变换,将旋转中心平移到坐标原点,其变换矩阵为:,绕坐标原点旋转,其变换矩阵为:,将旋转中心平移回原位置,其变换矩阵为:,x,q,(x, y),(x, y),(xp, yp),y,机械CAD,23,则总的组合变换矩阵为:,机械CAD,24,5 对任意点进行缩放变换,机械CAD,25,?对任意直线的对称变换,机械CAD,26,3.7.1.2 三维图形几何变换,机械CAD,27,三维基本变换矩阵,机械C
8、AD,28,机械CAD,29,三维基本变换,三维基本几何变换都是相对于坐标原点和坐标轴进行的几何变换 假设三维形体变换前一点为p(x,y,z),变换后为p(x,y,z)。,机械CAD,30,1. 平移变换,机械CAD,31,2. 比例变换 (1)局部比例变换,机械CAD,32,(2)整体比例变换,机械CAD,33,3. 旋转变换,机械CAD,34,(1)绕z轴旋转,机械CAD,35,(2)绕x轴旋转,机械CAD,36,(3)绕y轴旋转,机械CAD,37,4. 对称变换 (1)关于坐标平面对称 关于xy平面进行对称变换的矩阵计算形式为:,机械CAD,38,关于yz平面的对称变换为:,机械CAD,
9、39,关于zx平面的对称变换为:,机械CAD,40,(2)关于坐标轴对称变换 关于x轴进行对称变换的矩阵计算形式为:,机械CAD,41,关于y轴的对称变换为:,机械CAD,42,关于z轴的对称变换为:,机械CAD,43,5. 错切变换,机械CAD,44,(1)沿x方向错切,机械CAD,45,(2)沿y方向错切,机械CAD,46,(3)沿z方向错切,机械CAD,47,6 三维组合变换,三维组合变换是指图形作一次以上的变换,变换结果是每次变换矩阵相乘。,机械CAD,48,相对任一参考点的三维变换,相对于参考点F(xf,yf,zf)作比例、旋转、错切等变换的过程分为以下三步: (1)将参考点F移至坐
10、标原点 (2)针对原点进行二维几何变换 (3)进行反平移,机械CAD,49,例:相对于F(xf,yf,zf)点进行比例变换,机械CAD,50,3.7.2 观察变换,在进行三维实体建模的过程中不仅要大量地在各个用户坐标系和世界坐标系之间进行切换,而且同时还要不断的改变视向。 在绘图过程中,可以按如下的方法来设置观察坐标系。把坐标系的原点设在观察点(即视点)处,让坐标系的一根坐标轴从原点出发,顺着观察方向指向远方。那么该坐标轴上的坐标就反映了空间立体的观察深度大小,该轴即为Z深度坐标轴。然后让另外两根坐标轴中的一根自该原点水平向右(X轴),另一根向上(Y轴)。,机械CAD,51,窗口-视区变换,在
11、计算机图形学中,将在用户坐标系中需要进行观察和处理的一个坐标区域称为窗口区,简称窗口(Window);将窗口映射到显示设备上的坐标区域称为视图区,简称视图(Viewport)。,机械CAD,52,机械CAD,53,因此,窗口是在用户坐标系中定义的,而视区是在设备坐标系(屏幕坐标系)中定义的。窗口定义了要显示什么,而视区定义在何处显示。,通常的窗口和视区都取为边与坐标轴平行的矩形。其它形状的窗口和视区,如多边形和圆形的窗口和视区有时也会采用,但其处理更为复杂。,窗口和视区分别处在不同的坐标系内,它们所用的长度单位及大小、位置等均不同。因此,要将窗口内的图形在视区中显示出来,必须经过将窗口到视区的
12、变换(Window-Viewport Transformation)处理,这种变换就是观察变换(Viewing Transformation)。,机械CAD,54,为了全部、如实地在视区中显示出窗口内的图形对象,就必须求出图形在窗口和视区间的映射关系。也就是说,需要根据用户所定义的参数,找到窗口和视区之间的坐标对应关系。,假设在观察坐标系下窗口区的左下角坐标为(wxl,wyb),右上角坐标为(wxr,wyt)。视区中的左下角坐标为(vxl,vyb),右上角坐标为(vxr,vyt)。,机械CAD,55,由图可知:,机械CAD,56,将窗口内的点(xw,yw)映射到相对应的视区内的点(xv,yv)
13、。,机械CAD,57,若:,则:,机械CAD,58,由此可见,窗口视图变换是比例变换和平移变换的组合变换。先进行平移变换,将窗口左下角坐标移到用户坐标原点,接着进行比例变换,使窗口中各点比例变换到设备坐标系(屏幕)中,最后再作平移变换,使原点移到视图左下角。,注意:为了使经过窗口视图变换后的图形在视图区中输出时不产生失真,在定义窗口和视图时,必须保证窗口区和视图区高度和宽度之间的比例相同。,机械CAD,59,实际上,由于窗口不一定取为矩形,即便取为矩形,矩形边也不一定平行于坐标轴,这时相对应的观察变换就会变得比较复杂。,机械CAD,60,为了方便计算,引入观察坐标系(View Coordina
14、te)和规格化设备坐标系(Normalized Device Coordinate) 。,机械CAD,61,所谓观察坐标系是依据窗口的方向和形状在用户坐标平面中定义的直角坐标系;规格化设备坐标系也是直角坐标系,它是将二维的设备坐标系规格化到(0,0)到(1,1)的坐标范围内形成。引入了观察坐标系和规格化设备坐标系后,观察变换分为如下图所示的几个步骤,通常称为二维观察流程。,机械CAD,62,首先,在用户坐标系中生成图形;其次,将用户坐标系下的图形描述变换到观察坐标系下,即进行坐标系间的变换;然后,在观察坐标系下对窗口进行裁剪;裁剪之后进行窗口到视区的变换,即将观察坐标系中描述的窗口内容变换到规
15、格化设备坐标系的视区中;最后,将视区中的图形内容变换到设备坐标系中进行显示。,机械CAD,63,3.7.3 动画显示,无论采用什么样的具体算法(包括软件和硬件方式),动画显示的基本原理都是一样的,即按照时序逻辑,在屏幕上交替显示和擦除图像(一幅图像称为一个关键帧)。只要擦除和显示关键帧的时间足够短,电影为每秒24帧,就会因人眼的视觉暂留效应而得到动画效果。,机械CAD,64,动画显示过程可以分为两个基本步骤,清除视频缓冲区(清屏)与在视频缓冲区绘制关键帧(显示)。这两个步骤都需要时间,动画的各种显示技术都围绕这两个时间开展工作,以获得满足要求的显示性能。,机械CAD,65,首先,动画显示要满足
16、帧速要求。帧速是每秒中播放的关键帧的数目,一般要求不低于24fps,这是电影的标准播放速度。低于这个帧速,会在视觉上引起闪烁的不适感。如果用时间来衡量,则要求清屏时间和显示时间之和不得大1/24秒。,机械CAD,66,其次,动画显示对关键帧画面有完整性要求。比如,虽然帧速能满足要求,但是绘制时间较之清屏时间要大得多。这样,每次在显示新的一帧时,屏幕将迅速被清掉(清屏时间的长短一般由显示系统的硬件刷新频率决定,可以看成是一个不变的常数),而完成全部关键帧的绘制需要很长的时间,实际上动画是边绘制边显示的。其结果是在1/24秒的大部分时间内看到的将是擦除的背景和不完全的帧画面,特别是帧画面的最后部分
17、可能一幌而过,根本来不及看清楚。动画显示要求消除这种帧画面不完整的现象。,机械CAD,67,1. 双缓冲机制,双缓冲机制就是为显示器建立两个视频缓冲区,一个用于在后台刷新屏幕,一个用于在前台绘制关键帧画面。当需要更新关键帧时,就切换两个缓冲区,将原来作刷新用的缓冲区用于绘制新的关键帧,同时将原来作绘制用的缓冲区用刷新显示。 采用这样的双缓冲机制,可以克服前面所说的关键帧画面不完整的现象,因为关键帧画面只是在全部绘制以后才提交显示,而且也可以提高帧速,因为刷新和绘制操作是同时进行的,从而可以为绘制赢得更多的时间。,机械CAD,68,2. 延迟刷新,为了保持动画显示的平滑性,对于能够快速绘制出的关
18、键帧,往往需要加入一定的延时,然后再放到视频缓冲区中进行刷新显示。延时的长短要由程序中计算量最大的帧的绘制时间决定。延时显示虽然导致总体的帧速在一定程度上降低了,但得到一个快慢一致的均匀的帧速,从而满足了动画显示的平滑性要求。,机械CAD,69,3. 提高写入时间,虽然关键帧的写入时间主要是由硬件决定,但在编写软件时,仍然要注意一些问题。比如尽管几乎所有编程系统都提供对像素进行读写的函数,但对于关键帧画面以位图形式进行的应用,尽量不要逐像素进行读写画面,而应该利用编程系统提供的视频缓冲区像素块的读写函数进行将像素存取。因为像素块操作函数经过了优化,这样的操作显然比逐像素读写要快许多倍,从而可以
19、提高帧速以及克服帧画面的不完整性。,机械CAD,70,阿凡达电影里动画渲染需要的硬盘存储空间就超过1PB,500块2TB硬盘搭建这套存储系统。整部电影大约 3 PB 的数据存放在 BlueArc 和 NetApp 的存储上,数据传输走光纤通道。电影完成时一帧的数据是 12 MB,一秒钟 24 帧,每分钟的数据就有 17.28 GB,而整部 AVATAR 长达 160 多分钟。,机械CAD,71,维塔数字公司参与特技制作的电影目录The Lovely Bones Avatar District 9 The Day The Earth Stood Still Jumper Enchanted Ki
20、ng Kong Lord of the Rings(1、2、3) The Water Horse: Legend of the Deep Fantastic Four: Rise of the Silver Surfer Bridge to Terabithia Eragon X-Men: The Last Stand I, Robot,机械CAD,72,2008年Weta数据中心重新装配了10000平方米的机房,填满了惠普BL2x220c刀片式服务器,总计拥有4万多个处理器和104TB RAM,通过光纤连接读写大约3PB的数据。多重10G网络连接紧密的包裹起上述装备。 为保持机房平稳运转,W
21、eta数据中心装配了强制水冷设备,提升地板增强散热,但也只是勉强抵挡为阿凡达这样的电影运算时散发出的强大热力。每年因为调整一度室温,他们可以节省几万美元。,机械CAD,73,将真实演员的表情自然转移到完全由计算机创造的数码人物的脸上是实现的关键,而核心技术就是形变捕捉和形变转移。形变捕捉就是在真实演员脸上控制表情的关键点上做上特殊标记,然后演员去演绎这个角色,其中演员每一个表情变化都被计算机传感器精确的捕捉了下来,作为数码人物表情的基础。接下来的表情转移就是用计算机去解一个最优化问题。首先在数码人物的脸上会有对应真实演员数目相同的关键点,成一一映射关系。而优化的目标函数就是真实演员脸部局部形变
22、与数码人物脸部形变的误差,以及从每一帧到下一帧变化的误差。最优化函数的求解可以通过最小二乘法来实现,最后实际上就是解一个方程组。,机械CAD,74,3.8 图形显示,把计算机存储的数字化图形信息显示出来,画在显示器或绘图机上,或输入数控机床进行加工制作,是计算机图形学研究的一个重要内容。计算机存储的图形信息有几何拓扑信息、外观属性信息、附着物理信息及标识管理信息等四大类。图形显示问题实质是以上4大类信息的可视化问题。,机械CAD,75,3.8.1 线框显示,线框模型显示是不能令人满意的,虽然线可绘成有粗细(线宽)、间隔(线型)和色彩区别,但对于3D实体而言,线框模型显示存在理解的歧义性(凹凸感
23、、方位感)。,机械CAD,76,3.8.2 消隐处理,人不能一眼看到一个三维物体的全部表面。从一个视点去观察一个三维物体,必然只能看到该物体表面上的部分点、线、面,而其余部分则被这些可见部分遮挡住。如果观察的是若干个三维物体,则物体之间还可能彼此遮挡而部分不可见。因此,如果想有真实感地显示三维物体,必须在视点确定之后,将对象表面上不可见的点、线、面消去。执行这一功能的算法,称为消隐算法。消隐算法是将物体的表面分解为一组空间多边形,研究多边形之间的遮挡关系。从应用的角度看,有两类消隐问题:线消隐(Hidden-line),它用于线框图;面消隐(Hidden-surface),它用于表面填色。,机
24、械CAD,77,1. 对象空间算法,考虑由k个三维不透明多边形构成的场景每个多边形认为是单独的一个对象:两两考虑对象,检测相互之间的位置 最糟糕的情形:n个多边形复杂度为O(n2),机械CAD,78,画家算法,“画家算法”表示头脑简单的画家首先绘制距离较远的场景,然后用绘制距离较近的场景覆盖较远的部分。画家算法首先将场景中的多边形根据深度进行排序,然后按照顺序进行描绘。这种方法通常会将不可见的部分覆盖,这样就可以解决可见性问题。,首先绘制远山,然后绘制较近的草地,最后绘制场景中最近的树木等,机械CAD,79,画家算法,把多边形沿从后到前的顺序显示出来,从而被遮住的多边形在显示处被重新激活,机械
25、CAD,80,深度排序,需要首先对多边形进行排序排序的复杂度为O(nlog n)并不是所有的多边形都完全在其它多边形的前面或后面。进行排序时,先处理简单情形,再处理困难情形,机械CAD,81,无法处理,机械CAD,82,背面剔除,面是可见的,如果9090 等价于cos0或者v n 0,机械CAD,83,2. 图像空间算法,对每条投影线(对于n m分辨率的帧缓冲区,共有nm条投影线),找到k个多边形中最近的那个,复杂度O(nmk)。,机械CAD,84,z缓冲区算法,应用一个称为z缓冲区或者深度缓冲区的地方存贮在每个像素,到目前为止找到的最近对象的深度。但显示每个多边形时,把它的深度与z缓冲区中存
26、贮的深度进行比较。如果新值小的话,把新的亮度值放到颜色缓冲区中并且用新深度更新z缓冲区。,机械CAD,85,点消隐 线消隐 面消隐,机械CAD,86,3.8.3 着色处理,着色处理是在消隐显示基础上增强真实感的图形显示方法。最简单的单色填色就是把面内对应像素点赋予相应的面色,其本质上是区域填充问题,可以用平面扫描线算法和种子连通域算法等技术。另一种是图案填色,此时面对应的像素点需与图案进行坐标匹配(纹理变换),再取出对应图案点色彩填色。复杂的着色问题是对于面的各个顶点赋予不同的色彩值,采用双线性插值技术求出面内部各点颜色值。,机械CAD,87,3.8.4 光照处理,光照处理是在给定环境光源(背
27、景光、聚光,平行光,点光)和物体本身光特性参数(漫反射光、镜面高光,折射光、透射光)的情况下,按照PHONG、WARN光照模型和光线跟踪算法,经过复杂的光照计算,生成景像和阴影。这种技术可以获得与照片相媲美的真实感图形,但是以时间消耗为代价的,常用于设计结果的最后处理和宣传展示以及电影电视数字特技制作。 AutoCAD,机械CAD,88,3.8.5 剪裁处理,图形显示最终完成还须进行图形剪裁和视窗变换,实质是解决显示介质的范围有限。如CRT分辨率为640x480,绘图显示区有界而物体的尺度、细节无限的问题。这就要求指定感兴趣的物体窗口和显示视区进行视窗变换。为了不显示窗口以外的图形,减少无效计
28、算,需要进行剪裁。,机械CAD,89,直线段的裁剪,直线段是组成一切其他图形的基础,任何图形,一般都能用不同直线段组合形成。 直线段和剪裁窗口的可能关系: 完全落在窗口内; 完全落在窗口外; 与窗口边界相交,机械CAD,90,结论:对于任意一条直线段,它要么被完全排斥在窗口之外,要么在窗口内留下一个可见段,并且只能有一个可见段。,因为一条直线段可以由它的两个端点来唯一的确定,所以,要确定一条直线段上位于窗口以内的可见段,仅需求得它的两个可见端点就可以了。,机械CAD,91,Cohen-Sutherland算法四位编码:上下右左,哪位为1表明端点在窗口哪侧。算法步骤如下: 1)对直线两端点编码
29、2)若直线两端点编码均为0000,则属于情况b输出可见线段,退出。 3)若线段两端点编码位逻辑与不为0000,则两端点在同一侧,属于情况a,不可见,退出。 4)顺序检测端点码位,若某位不为0,则把线段与该位对应的窗口边线(Hor、ver)求交,转步骤(1)。,机械CAD,92,3.8.6 3D图形处理流程,1 几何处理阶段在电脑内建立3D图形的几何模型,并进行必要的效果处理。这个阶段的3D图形是数字代码,虽然已经作出了完整的特征描述,但不是可视化的。 主要以浮点运算为主,由CPU处理。1)物理运算描述形状特征和运动特征。第一步就是建立三维坐标系,第二步把要描述的物理特征转化成数据坐标形式,形成
30、一个由多边形构成的物理模型。为了简化处理,往往把多边形转化成相应的三角形。,机械CAD,93,在所有程序员和设计师进行各种3D对象设计时,他们使用了和真实世界完全相同的坐标体系(也称作世界坐标)。这样做是为了制作出来的3D图形能够方便的从任意角度观察。但是要将这样的3D世界直接搬到本来就是平面的屏幕上的话,你看到的将会是一堆杂乱无章的色块。为了在屏幕上正确的表现3D对象与对象之间的相互关系和纵深,我们必须将世界坐标转换为能准确展现3D物体纵深关系的另外一种坐标,也就是屏幕坐标。,机械CAD,94,这张图表示了程序输入GPU中的顶点数据,你可以看到整个汽车是透明无遮挡且杂乱无章的,机械CAD,9
31、5,2)几何转换完成物体在不同视点下几何坐标的转换。在CAD中这样的转换并不是一劳永逸的。一旦视点转换,所有图形的坐标也必须重新计算以便让你看到3D对象的“前后左右”。同时3D游戏中的角色的移动和地形的每次变化也必须重新计算新的坐标位置。由于整个Transform基本都是浮点运算,因此会极大的消耗CPU这类通用处理器的资源导致整个3D软件的运行缓慢。而GPU拥有专门的逻辑来进行Transform计算,所以效率和速度都远超过CPU。,机械CAD,96,GPU与CPU,由于3D游戏对于GPU运算能力的渴求永无止境,GPU也正变得越来越庞大复杂,其规模甚至超过了同时代的CPU。在2002年,Inte
32、l奔腾4处理器一共有5500万个晶体管,而与它同时期的ATi Radeon 9700显卡核心芯片具备1.1亿个晶体管!目前能买到的民用最高端处理器,Intel Core i7 980,也就是6个物理核心,12个线逻辑核心,11.7亿个晶体管,内存带宽也不过最大25.6GB/S。而与之相比,Fermi芯片(GPU)具备30亿个晶体管 ,512个计算核心,超过200GB/S的带宽!,机械CAD,97,根据NV提供的数据,基于Fermi架构的Tesla C2050/C2070单颗芯片能达到500-600GigaFlops(一个GigaFlops等于每秒钟10亿次的浮点运算)以上的双精度浮点运算能力。
33、相比之下,当年在那场著名对决中击败人类棋王卡斯帕罗夫的IBM 深蓝超级计算机,也不过只有11.38GigaFlops而已。,机械CAD,98,曙光“星云”由曙光公司天津产业基地研制生产,其系统峰值为每秒3000万亿次,是中国第一台、世界第三台实测双精度浮点计算超过千万亿次的超级计算机。在2010年5月31日发布的第35届全球超级计算机500强排名中,名列第二位。2010年06月02日 新华网,机械CAD,99,机械CAD,100,3)照明处理根据光源的性质和角度,计算物体的光效。4)三角形设定将3D图形的各个空间面转换成相应视角下的2D几何图形,机械CAD,101,2 光栅处理阶段完成由数字几
34、何模型向屏幕显示的实际3D图像的转化,并针对图像视觉效果作必要的处理和修正。此时的3D图形已经可见。3D图像处理的全过程就像根据口供给罪犯画像,几何处理阶段相当于证人在描述嫌疑人特征,而光栅处理阶段则是按照描述勾绘出具体的样貌。主要以整数运算为主,由3D图形卡处理。1)可见性判断确定物体的遮挡关系,机械CAD,102,从线框图中我们可以看到此时的汽车并没有被计算相互遮挡关系,机械CAD,103,在日常生活中物体总是相互遮挡的,我们只能看到眼前的那个物体,而无法穿透前面那个物体看到在其背后的东西。3D世界同样需要遵循这个原则,在完成坐标转换之后,遮挡剔除系统还要对这些顶点进行对比从而确定哪些顶点
35、不被显示,而哪些顶点是必须显示的。通过遮挡剔除计算,上面汽车图形中另外一边的2个轮子顶点将会被标示为不可见。,机械CAD,104,2)纹理映射赋予模型以不同的材质,机械CAD,105,3)着色渲染把在几何处理阶段照明处理中得到的光影数据像素化4)平滑处理消除由于屏幕显示效果不佳造成的图像失真。,机械CAD,106,在重新计算顶点坐标和确定遮挡(Clipping)之后,汽车已经初具外形,机械CAD,107,3.8.7 可视化显示,在完成几何拓扑信息显示时,有时还需要完成物理信息显示。这就是科学计算可视化CV问题。按照物理信息附着的几何对象进行分类,可以分为1D线、2D面、3D体可视化问题;按照物
36、理量性质分类,可以分为标量(强度、能量、平均应力)、矢量(位移、速度、加速度、压力、流量)和张量(应力)可视化问题。,机械CAD,108,1)1D对象物理信息可视化。对于标量可视化,一种处理方法是可以组合成点列形式绘制成曲线,此时把物理量视作y几何坐标量。曲线形式可以有线型、线宽、色彩区别。曲线可绘制连续折线形式外,也可绘成阶梯线段、多点记号及填充图、直方图、分布图。另一种处理方法是以把物理量映射成色彩量,予以色条显示,也可映射成圆点大小、线条粗细、网格密度形式显示。对于矢量可视化,可以按分量分别显示,也可绘制箭头图(长度与方向)显示。对于张量可视化,一般简化成分量或平均值显示。,机械CAD,
37、109,2)2D对象物理信息可视化。可以采用相似处理策略,把标量、矢量分量、张量合成量处理成高一维的几何量,显示曲面图形;也可以显示色彩、箭头、线宽粗细图、等值线图、等值着色图和流线图(流线切线方向与稀密代表矢量大小、方向及变化率)。,机械CAD,110,3)3D对象物理信息可视化。对于标量信息,可以显示3D填色图和等值线图,对于内部物理信息表述可采用剖切图方式显示。对于矢量信息,可以显示三维箭头图、流线图、流管图、流带图等等。对于张量可以显示成扭曲簧管箭头图。基本思想是利用代表图符,图符的大小、粗细、扭动均用于指代物理量大小、方向及扭向。,机械CAD,111,4) 4D对象物理信息可视化。可
38、把其中一维处理成时间维,采用动画、变形方式显示。,机械CAD,112,3.9 图形库,OpenGLOpenGL是在SGI等多家世界闻名的计算机公司的倡导下,以SGI的GL三维图形库为基础制定的一个通用共享的开放式三维图形标准。 目前,包括Microsoft、SGI、IBM、SUN、HP等大公司都采用了OpenGL做为三维图形标准,许多软件厂商也纷纷以OpenGL为基础开发出自己的产品。 其中比较著名的产品包括:动画制作软件Softimage和3D Studio MAX、仿真软件Open Inventor、VR软件World Tool Kit、CAM软件Pro/Engineer、GIS软件ARC
39、/INFO等等。,机械CAD,113,OpenGL的优越性,独立于窗口系统和操作系统 以它为基础开发的应用程序可以十分方便地在各种平台间移植使用简便,效率高,机械CAD,114,OpenGL图形库的功能,一共有100多个函数。 建模功能。除了提供基本的点、线、多边形的绘制函数外,还提供了复杂的三维物体(球、锥、多面体、茶壶等)以及复杂曲线和曲面(如Bezier、NURBS等曲线或曲面)绘制函数。 变换功能。基本几何变换和投影变换 颜色模式设置 光照和材质设置 纹理映射功能 位图显示和图像增强 双缓存(Double Buffering)动画,机械CAD,115,毕业设计,机械CAD,116,机械
40、CAD,117,2. DirectX,DirectX是一种应用程序接口(API),它可让以windows为平台的游戏或多媒体程序获得更高的执行效率,加强3d图形和声音效果,并提供设计人员一个共同的硬件驱动标准,让游戏开发者不必为每一品牌的硬件来写不同的驱动程序,也降低用户安装及设置硬件的复杂度。DirectX是由很多API组成的,按照性质分类,可以分为四大部分,显示部分、声音部分、输入部分和网络部分。,机械CAD,118,基于COM标准设计,包含许多组件 每一个组件服务于图形、声音、输入、网络等特定需求 DirectX Audio DirectX Graphics DirectInput Di
41、rectPlay DirectShow,机械CAD,119,3. Java3D,美国Sun公司推出的用于处理、控制和绘制三维场景的编程接口,能支持 三维物体生成(或载入其他软件生成的三维物体) 光照 纹理映射 透明效果 雾化效果 动画 物体变形 立体图像 碰撞检测 用户与三维场景交互 ,机械CAD,120,用Java 3D编写的程序可运行于不同的平台和Internet之上 对OpenGL和DirectX等进行了有效封装,机械CAD,121,毕业设计,机械CAD,122,机械CAD,123,机械CAD,124,4. 三维几何造型引擎,ACIS Parasolid,机械CAD,125,3.10 计
42、算机图形学逆问题,图形图像学逆问题研究一直是一个研究热点和难点,正问题指实现3D建模到生成2D图形、图像、视图再标注尺寸过程,这是一种降维过程。逆问题正好相反,是一种升维过程。,机械CAD,126,1. 鼠标定位,鼠标只能输入相对(x y)坐标即CRT显示的坐标,三维模型又需要(x,y,z)三个坐标。常用的交互处理技术是指定一个工作平面和当前有效可选集,并采用预显、加亮、三维球等技术,实质是以2D输入来确定受限3D量。 3D鼠标。,机械CAD,127,2. 尺寸驱动,设计技术人员期望用手勾画出图形轮廓并标上尺寸后,计算机就能自动识别作图思路及潜在的定性约束,如平行、垂直、水平、竖直、相切、相交
43、等,并自动予以变换驱动,并能对非法情况例如尺寸欠约束与过约束、封闭与否等予以处理。 计算机二维绘图的理想状态是实现随意的草图勾画和计算机自动理解定性拓扑约束。增加定量尺寸约束后实现自动求解,从而满足参数化系列化设计的工程目标。,机械CAD,128,常见约束的数学方程描述,机械CAD,129,机械CAD,130,机械CAD,131,3. 图像矢量化,扫描仪和数码相机拍摄的2D图像文件矢量化很有价值。对于黑白图像点阵文件,进行轮廓抽取,实现图形分析、图形识别及尺寸驱动。其技术难点在于达到100准确率、定性定量约束的校正与识别、对于近水平直线、近圆曲线、近相交和虚实线的正确理解,以及尺寸标注、BOM
44、文字数字信息的抽取问题。图像文件矢量化是图像识别与图形理解的关键性基础工作。,机械CAD,132,4. 三维重构,三维重构是一种挑战性研究工作,应用潜力巨大。简单而言就是利用获得的多幅2D的图形或图像文件,重构现实空间的3D对象并作智能判断。 1)已知工程三视图或双眼视图等,模拟实现工程图技术人员读图思维,重构3D实体过程。难点在于处理隐藏线、面。,机械CAD,133,2)利用多角度拍摄的图像序列(已知相机位置等)。难点在于相机校正及图像内外关节点(轮廓线、面识别)。现有成熟技术仍处于点图像重构识别。 3)利用曲面的点集信息(三坐标测量仪或激光测距仪获得)进行曲面器件测绘和三维地形重构。难点在
45、于特殊情况如悬崖峭壁及深堑、凹部处理。,机械CAD,134,5. 内外识别,一种是知道边界值,重构内部分布。如机械零件故障诊断,x射线、超声波(B超)、CT、MRI及二相流图像重构。这种依据边界信息推理各种物理现象内部的情况,在医学、机械学及地下工程学等领域,寻找病因及故障源及结构缺陷及矿藏分布非常有用。现在技术水平尚处在平面问题阶段。对于3D实体的内部分布重构,尚采用2D层析迭合生成模式,如数字化人体重构。至于进一步的图像智能识别与理解,现在基本依赖人的肉眼和经验。,机械CAD,135,6. 三维空间布局及运动规划,已知初始状态和最终状态及一些约束条件,寻求最佳驱动方案和布局方案,实现可视化的路径规划和布局调度,在工程和生产中应用广泛,如下料排样、机器人控制驱动、运输战场合理调度等等。现在对于平面情况研究比较成熟,对于空间情况仍是一个研究难点。,