1、n是研究怎样利用计算机表示、生成、处理是研究怎样利用计算机表示、生成、处理和显示图形的原理、算法、方法和技术的和显示图形的原理、算法、方法和技术的一门学科。一门学科。C.G.对非图形信息产生图形对非图形信息产生图形I.P.对图象采用增强、变换等技术进行处理对图象采用增强、变换等技术进行处理 增强增强(对比度对比度):对暴光过度或不足,以及:对暴光过度或不足,以及 模糊的图象进行处理。模糊的图象进行处理。 变变 换:一幅亮度范围宽的图象换:一幅亮度范围宽的图象两种亮两种亮 度的图象度的图象线条状图形线条状图形 P.R.对图象提取特征、予以分类对图象提取特征、予以分类 和描述关系,再进行模式匹配和
2、描述关系,再进行模式匹配描描描描描描 述述述述述述图图图图图图 像像像像像像设设计计 元部件:机械、电气、电子设备元部件:机械、电气、电子设备.系系统统 结构结构( (建筑物、汽车车身、飞机建筑物、汽车车身、飞机和船的外壳及内部结构和船的外壳及内部结构) )光学系统光学系统电话及计算机网络电话及计算机网络n1950年,第一台图形显示器作为美国麻省理年,第一台图形显示器作为美国麻省理工学院(工学院(MIT)旋风)旋风I号(号(Whirlwind I)计)计算机的附件诞生了。该显示器用一个类似算机的附件诞生了。该显示器用一个类似于示波器的于示波器的阴极射线管(阴极射线管(CRT)来显示一来显示一些
3、简单的图形。些简单的图形。n1958年美国年美国Calcomp公司由联机的数字记录公司由联机的数字记录仪发展成滚筒式绘图仪,仪发展成滚筒式绘图仪,GerBer公司把数公司把数控机床发展成为平板式绘图仪。控机床发展成为平板式绘图仪。n1962年,年,MIT林肯实验室的林肯实验室的Ivan E.Sutherland发表发表了一篇题为了一篇题为“Sketchpad:一个人机交互通信的图:一个人机交互通信的图形系统形系统”的博士论文,的博士论文, 首次使用首次使用“Computer Graphics”这个术语,证明了交互计算机图形学是这个术语,证明了交互计算机图形学是一个可行的、有用的研究领域一个可行
4、的、有用的研究领域n1964年年MIT的教授的教授Steven A. Coons提出了被后人提出了被后人称为超限插值的新思想,通过插值四条任意的边称为超限插值的新思想,通过插值四条任意的边界曲线来构造曲面。同在界曲线来构造曲面。同在60年代早期,法国雷诺年代早期,法国雷诺汽车公司的工程师汽车公司的工程师Pierre Bzier发展了一套发展了一套Bzier曲线、曲面的理论,成功地用于几何外形设计。曲线、曲面的理论,成功地用于几何外形设计。Coons方法和方法和Bzier方法是方法是CAGD最早的开创性工最早的开创性工作。作。n70年代是计算机图形学发展过程中一个重要的历年代是计算机图形学发展过
5、程中一个重要的历史时期。光栅显示器的产生,图形学进入了第一史时期。光栅显示器的产生,图形学进入了第一个兴盛的时期,并开始出现实用的个兴盛的时期,并开始出现实用的CAD图形系统图形系统n1977、1979年开始,计算机图形学标准制定,真年开始,计算机图形学标准制定,真实感图形学和实体造型技术的产生。实感图形学和实体造型技术的产生。n1970年年Bouknight提出了第一个光反射模型,提出了第一个光反射模型,1971年年Gourand提出提出“漫反射模型插值漫反射模型插值”的思想,被称为的思想,被称为Gourand明暗处理。明暗处理。r 1975年年Phong 提出了著名的简单提出了著名的简单光
6、照模型光照模型Phong模型。这些可以算是真实感图形学最模型。这些可以算是真实感图形学最早的开创性工作。早的开创性工作。n从从1973年开始,相继出现了英国剑桥大学年开始,相继出现了英国剑桥大学CAD小组的小组的Build系统、美国罗彻斯特大学的系统、美国罗彻斯特大学的PADL-1系统等实体造系统等实体造型系统。型系统。n1980年年Whitted提出了一个光透视模型提出了一个光透视模型Whitted模模型,并第一次给出光线跟踪算法的范例,实现型,并第一次给出光线跟踪算法的范例,实现Whitted模型。模型。n1984年,美国年,美国Cornell大学和日本广岛大学的学者大学和日本广岛大学的学
7、者分别将热辐射工程中的辐射度方法引入到计算机分别将热辐射工程中的辐射度方法引入到计算机图形学中,用辐射度方法成功地模拟了理想漫反图形学中,用辐射度方法成功地模拟了理想漫反射表面间的多重漫反射效果。射表面间的多重漫反射效果。n1986年,美国科学基金会(年,美国科学基金会(NSF)专门召开了一)专门召开了一次研讨会,次研讨会, 会上提出了会上提出了“科学计算可视化科学计算可视化(Visualization in Scientific Computing,简称为,简称为ViSC)”。nSIGGRAPH 会议,会议, “TheSpecial Interest Group on Computer Gr
8、aphicsand Interactive Techniques”ACM SIGGRAPH会议是计算机图形会议是计算机图形学最权威的国际会议,每年在美国召开,参加会学最权威的国际会议,每年在美国召开,参加会议的人在议的人在50,000人左右。世界上没有第二个领域人左右。世界上没有第二个领域每年召开如此规模巨大的专业会议,每年召开如此规模巨大的专业会议,SIGGRAPH会议很大程度上促进了图形学的发展。会议很大程度上促进了图形学的发展。n 1974 年在年在Colorado 大学召开了第一届大学召开了第一届SIGGRAPH 年会。年会。n因为每年只录取大约因为每年只录取大约50篇论文,在篇论文,
9、在Computer Graphics杂志上发表,因此论文的学术水平较高,杂志上发表,因此论文的学术水平较高,基本上代表了图形学的主流方向。基本上代表了图形学的主流方向。虚拟现实虚拟现实n虚拟现实技术就是利用计算机生成一个逼真的三维虚拟环虚拟现实技术就是利用计算机生成一个逼真的三维虚拟环境,通过自然技能使用传感设备与之相互作用的新技术。境,通过自然技能使用传感设备与之相互作用的新技术。n它与传统的模拟技术完全不同,是将模拟环境、视景系统和仿真它与传统的模拟技术完全不同,是将模拟环境、视景系统和仿真系统合三为一,利用头盔显示器、图形眼镜、数据服、立体声耳系统合三为一,利用头盔显示器、图形眼镜、数据
10、服、立体声耳机、数据手套及脚踏板等传感装置,把操作者与计算机生成的三机、数据手套及脚踏板等传感装置,把操作者与计算机生成的三维虚拟环境连结在一起。维虚拟环境连结在一起。n与传统计算机相比,虚拟现实系统具有三个重要特征:临与传统计算机相比,虚拟现实系统具有三个重要特征:临境性、交互性、想象性。境性、交互性、想象性。n虚拟现实建模语言虚拟现实建模语言VRML是描述虚拟环境中场景的一种标是描述虚拟环境中场景的一种标准,可以利用它在准,可以利用它在INTERNET建立交互式的三维多媒体建立交互式的三维多媒体环境。环境。nVRML的基本特征包括分布式、交互式、平台无关、三维、的基本特征包括分布式、交互式
11、、平台无关、三维、多媒体集成和逼真自然等,国际标准化组织多媒体集成和逼真自然等,国际标准化组织1998年年1月正月正式将其批准为国际标准。式将其批准为国际标准。计算机艺术计算机艺术n可用于美术创作的软件很多,如二维平面的画笔程序可用于美术创作的软件很多,如二维平面的画笔程序(如如CorelDraw,Photoshop,PaintShop)、专门的图表绘制软、专门的图表绘制软件件(如如Visio)、三维建模和渲染软件包、三维建模和渲染软件包(如如3DMAX,Maya)、以及一些专门生成动画的软件以及一些专门生成动画的软件(如如Alias,SoftImage)等。等。n这些软件不仅提供多种风格的画
12、笔、画刷,而且提供多种这些软件不仅提供多种风格的画笔、画刷,而且提供多种多样的纹理贴图,甚至能对图像进行雾化多样的纹理贴图,甚至能对图像进行雾化/变形等操作。变形等操作。很多功能是一个传统的艺术家无法实现也不可想象的。很多功能是一个传统的艺术家无法实现也不可想象的。n当然,传统艺术的一些效果也是上述软件所不能达到的。当然,传统艺术的一些效果也是上述软件所不能达到的。例如钢笔素描的效果,由于钢笔素描与传统的图形学绘制例如钢笔素描的效果,由于钢笔素描与传统的图形学绘制方法差别很大,所以研究起来难度也颇大,很多学者已在方法差别很大,所以研究起来难度也颇大,很多学者已在这方面做了卓有成效的工作,取得了
13、一定的成果。这方面做了卓有成效的工作,取得了一定的成果。图形用户接口图形用户接口n用户接口是人们使用计算机的第一观感。一个友好的图形用户接口是人们使用计算机的第一观感。一个友好的图形化的用户界面能够大大提高软件的易用性,在化的用户界面能够大大提高软件的易用性,在DOS时代,时代,计算机的易用性很差,编写一个图形化的界面要费去大量计算机的易用性很差,编写一个图形化的界面要费去大量的劳动,过去软件中有的劳动,过去软件中有60的程序是用来处理与用户接口的程序是用来处理与用户接口有关的问题和功能的。有关的问题和功能的。n进入进入80年代后,随着年代后,随着Xwindow标准的面世,苹果公司图形标准的面
14、世,苹果公司图形化操作系统的推出,化操作系统的推出, 特别是微软公司特别是微软公司Windows操作系统的操作系统的普及,标志着图形学已经全面融入计算机的方方面面。普及,标志着图形学已经全面融入计算机的方方面面。n目前几个大的软件公司都在研究下一代用户界面,开发面目前几个大的软件公司都在研究下一代用户界面,开发面向主流应用的自然、高效多通道的用户界面。研究多通道向主流应用的自然、高效多通道的用户界面。研究多通道语义模型、多通道整合算法及其软件结构和界面范式是当语义模型、多通道整合算法及其软件结构和界面范式是当前用户界面和接口方面研究的主流方向,而图形学在其中前用户界面和接口方面研究的主流方向,
15、而图形学在其中起主导作用。起主导作用。计算机图形学研究的基本问题计算机图形学研究的基本问题n图形描述图形描述n基本几何:直线、圆弧等;高级几何:曲线、曲面等基本几何:直线、圆弧等;高级几何:曲线、曲面等n图形变换图形变换n二、三维变换、三维到二维、观察流程、几何变换等二、三维变换、三维到二维、观察流程、几何变换等n图形运算图形运算n基本几何间的计算、裁剪、布尔运算等基本几何间的计算、裁剪、布尔运算等n图形显示图形显示/输出输出n基本图形生成算法、消隐、绘图、光照模型等基本图形生成算法、消隐、绘图、光照模型等n图形输入图形输入n交互技术、参数化设计、造型技术等交互技术、参数化设计、造型技术等n算
16、法和算法复杂性分析算法和算法复杂性分析n空间和时间等空间和时间等图形描述图形描述n一个物体的计算机描述叫做模型,它能被一个物体的计算机描述叫做模型,它能被计算机所懂得,并在一定的条件下(变换计算机所懂得,并在一定的条件下(变换和投影)被转换成相应的图形在显示屏幕和投影)被转换成相应的图形在显示屏幕或绘图机上输出;或绘图机上输出;n而图形是模型的一个具体可见像,是人们而图形是模型的一个具体可见像,是人们所看到的模型的表征。所看到的模型的表征。n在三维空间,描述的是几何形体和几何曲在三维空间,描述的是几何形体和几何曲面,只有在平面上,它才是人们通常所称面,只有在平面上,它才是人们通常所称的图形。的
17、图形。图形描述图形描述n几何形体以封闭的表面表示,一般为一个几何形体以封闭的表面表示,一般为一个由平面和曲面围成的多面体。由平面和曲面围成的多面体。n一个几何形体在空间上应是完备的一个几何形体在空间上应是完备的(几何性几何性和拓扑性和拓扑性),而且包含足够的用于推导的任,而且包含足够的用于推导的任何空间函数何空间函数(如直线方程、平面方程、曲面如直线方程、平面方程、曲面构造等构造等)以及进行各种形体运算与处理的信以及进行各种形体运算与处理的信息。息。图形描述图形描述n在多面体表示中,有关的基本元素(体、面、环、在多面体表示中,有关的基本元素(体、面、环、棱和顶点)的信息分为二大类:棱和顶点)的
18、信息分为二大类:n几何信息:用以确定每个分量在欧氏空间中的几何位几何信息:用以确定每个分量在欧氏空间中的几何位置置(如点坐标如点坐标)和描述和描述(如平面方程系数如平面方程系数);n拓扑信息:用来定义几何元素的数目及相互间的连接拓扑信息:用来定义几何元素的数目及相互间的连接关系。关系。n几何信息只考虑点、线和无限面。几何信息只考虑点、线和无限面。n拓扑信息将点看作顶点,将线限制为棱拓扑信息将点看作顶点,将线限制为棱(线段线段),由外环和内环定义出面和内孔。由外环和内环定义出面和内孔。n一个完全的三维几何体描述,几何信息和拓扑信一个完全的三维几何体描述,几何信息和拓扑信息两者都是必要的息两者都是
19、必要的图形描述图形描述n描述一个多面体各元素之间的拓扑关系可描述一个多面体各元素之间的拓扑关系可以互相推导。故理论上只需存储一种关系以互相推导。故理论上只需存储一种关系就行了,但由于关系的推导要付出代价,就行了,但由于关系的推导要付出代价,所以一般的系统常同时存储若于种拓扑关所以一般的系统常同时存储若于种拓扑关系。系。n这些拓扑关系,既要足够地表示出几何形这些拓扑关系,既要足够地表示出几何形体的构造,又要尽量压缩信息的存储量,体的构造,又要尽量压缩信息的存储量,且要便于检索和修改,而十分重要的是要且要便于检索和修改,而十分重要的是要便于计算机的自动生成。便于计算机的自动生成。图形描述图形描述n
20、对于曲表面的几何形体,需分别研究自由对于曲表面的几何形体,需分别研究自由曲线和自由曲面的建立;曲线和自由曲面的建立;n用于插值和数学放样的三次样条函数是应用于插值和数学放样的三次样条函数是应用得最早研究得最详尽的一种。用得最早研究得最详尽的一种。nBezier曲线和曲面与曲线和曲面与B样条曲线和曲面是在样条曲线和曲面是在计算机辅助几何设计应用最广的曲线和曲计算机辅助几何设计应用最广的曲线和曲面几何构型方法。面几何构型方法。n关于这些方面的研究,至今仍在继续发展关于这些方面的研究,至今仍在继续发展中。中。图形描述图形描述n平面上图形的描述是基于直线和圆弧的描平面上图形的描述是基于直线和圆弧的描述
21、。仅用这两种基本几何元素就可构成平述。仅用这两种基本几何元素就可构成平面上的任何图形。因而直线段和圆弧段也面上的任何图形。因而直线段和圆弧段也叫基本几何段,本课程将详加阐述。叫基本几何段,本课程将详加阐述。n数据结构技术在图形描述中起着关键的作数据结构技术在图形描述中起着关键的作用。线性链接表、树结构、堆栈、队列等用。线性链接表、树结构、堆栈、队列等将广泛应用于几何模型的描述、运算和显将广泛应用于几何模型的描述、运算和显示中。示中。图形输入图形输入n图形输入需要解决的问题是:图形输入需要解决的问题是:n交互输入的方法。交互输入的方法。n工程设计图纸直接输入(矢量识别)的方法。工程设计图纸直接输
22、入(矢量识别)的方法。n将自由手书的立体构造或三视图重构的方法。将自由手书的立体构造或三视图重构的方法。n计算机自动生成方法。计算机自动生成方法。n从物体的多幅深度图像重建三维几何模型。从物体的多幅深度图像重建三维几何模型。n通过三维激光扫描仪在物体表面测得一些离散通过三维激光扫描仪在物体表面测得一些离散点,再用重构算法生成网格模型等等。点,再用重构算法生成网格模型等等。图形输入图形输入n图形输入的常规方法是将事先写好的源程图形输入的常规方法是将事先写好的源程序序(指令指令)在屏幕上输入,即所谓的编程输入,在屏幕上输入,即所谓的编程输入,使得人、机之间的交互作用缓慢。使得人、机之间的交互作用缓
23、慢。n对于工程上常用的一类规格化图形,可以对于工程上常用的一类规格化图形,可以编制一个通用程序,采用格式数据输入的编制一个通用程序,采用格式数据输入的办法得到图形。办法得到图形。n但是在处理三维的,或是形状复杂的物体但是在处理三维的,或是形状复杂的物体时还有较多的困难,输入数据太多就是一时还有较多的困难,输入数据太多就是一个障碍。个障碍。图形输入图形输入n除了这种图形的直接输入之外,通过对基本体元除了这种图形的直接输入之外,通过对基本体元的构型产生新的、复杂的三维物体也是一种输入的构型产生新的、复杂的三维物体也是一种输入的手段,当然这需要涉及更多的研究。的手段,当然这需要涉及更多的研究。n从计
24、算机图形学的发展情况看,对图形输出的研从计算机图形学的发展情况看,对图形输出的研究多于对图形输入的研究,许多人往往被计算机究多于对图形输入的研究,许多人往往被计算机输出的美妙图形所迷惑,却看不到为得到这些图输出的美妙图形所迷惑,却看不到为得到这些图形所做的大量数据输入的准备工作。形所做的大量数据输入的准备工作。n图形输入的工作量和难度并不亚于几何算法和图图形输入的工作量和难度并不亚于几何算法和图形输出。形输出。n随着时间的推移,图形输入将越来越成为计算图随着时间的推移,图形输入将越来越成为计算图形学应用中的主要障碍。形学应用中的主要障碍。图形变换图形变换n一个图形系统需具有图形变换的功能。这一
25、个图形系统需具有图形变换的功能。这种变换包括二维变换、三维变换和三维向种变换包括二维变换、三维变换和三维向二维的变换三种。二维的变换三种。n对应于几何元素及其选定的坐标系来说,对应于几何元素及其选定的坐标系来说,则包括几何变换和坐标系变换两种。这些则包括几何变换和坐标系变换两种。这些变换系统称为图形变换。变换系统称为图形变换。n在构造、产生、处理和输出图形的各个环在构造、产生、处理和输出图形的各个环节,图形变换起着重要的作用。节,图形变换起着重要的作用。图形变换图形变换n人们可以直接定义一个几何图形或几何体,也可人们可以直接定义一个几何图形或几何体,也可通过对某些几何体的变换去构造新的几何体或
26、其通过对某些几何体的变换去构造新的几何体或其中的某个部份。这种变换可以是平移、放大中的某个部份。这种变换可以是平移、放大(缩缩小小)、旋转、反射、错切等。、旋转、反射、错切等。n一个三维场景通常就是由一些基本几何元素通过一个三维场景通常就是由一些基本几何元素通过上述操作构造的。例如,可以通过平移的办法装上述操作构造的。例如,可以通过平移的办法装配一幢建筑物的大部份窗子,这使得图形输入大配一幢建筑物的大部份窗子,这使得图形输入大为简化。为简化。n在进行图形处理的过程中,还可以放大一个图形在进行图形处理的过程中,还可以放大一个图形以便使其某一部份能更清楚地显示;缩小图形以以便使其某一部份能更清楚地
27、显示;缩小图形以便看到图形更多的部份。便看到图形更多的部份。图形变换图形变换n在显示或绘制一个环境的时候,需要将三在显示或绘制一个环境的时候,需要将三维信息映射到二维屏幕上。轴测投影、平维信息映射到二维屏幕上。轴测投影、平行投影和透视投影用于完成这项工作。行投影和透视投影用于完成这项工作。n在视点改变得非常快或物体相对运动的应在视点改变得非常快或物体相对运动的应用场合,变换必须反复运用。因此,找到用场合,变换必须反复运用。因此,找到一个有效的方法去实现图形变换是十分重一个有效的方法去实现图形变换是十分重要的。要的。图形变换图形变换n采用向量、矩阵和齐次坐标的形式去描述图形变采用向量、矩阵和齐次
28、坐标的形式去描述图形变换是一种比较好的办法,它允许将线性代数的一换是一种比较好的办法,它允许将线性代数的一些基本理论应用到图形变换中。些基本理论应用到图形变换中。n例如一个矩阵对应于一个变换,图形的连续变换可由例如一个矩阵对应于一个变换,图形的连续变换可由矩阵的相乘实现,而逆矩阵对应于一个逆变换。矩阵的相乘实现,而逆矩阵对应于一个逆变换。n所有的变换都基于点变换,例如对一条线段的变所有的变换都基于点变换,例如对一条线段的变换只需考虑其两个端点的变换就可以了。换只需考虑其两个端点的变换就可以了。n基本几何元素描述的变换也和点的变换有密切的基本几何元素描述的变换也和点的变换有密切的联系。联系。n例
29、如描述一条直线的方程系数在不同坐标下的关系也例如描述一条直线的方程系数在不同坐标下的关系也可由点变换的相应变换矩阵求得。可由点变换的相应变换矩阵求得。图形运算图形运算n在三维空间,图形的运算是一种几何形体的运算,它是在三维空间,图形的运算是一种几何形体的运算,它是CAGD的一个重要操作,这种操作通常叫做物体造型,或的一个重要操作,这种操作通常叫做物体造型,或几何造型。几何造型。n设计人员可通过修改立方体,圆柱体之类的基本体元来生设计人员可通过修改立方体,圆柱体之类的基本体元来生成形体。例如通过缩放,通过用集合论中的并、交、非、成形体。例如通过缩放,通过用集合论中的并、交、非、差等概念所进行的各
30、种布尔运算把一些基本物体体元组合差等概念所进行的各种布尔运算把一些基本物体体元组合起来。设计人员的职责是把各体元正确地定位下来,使得起来。设计人员的职责是把各体元正确地定位下来,使得这些运算能进行下去。这些运算能进行下去。n另一方面几何造型系统还负责估计各体元之间的相互作用,另一方面几何造型系统还负责估计各体元之间的相互作用,各种相交出现的位置以及它们之间的相互关系,以确保生各种相交出现的位置以及它们之间的相互关系,以确保生成法定的三维形体。系统还必须正确地、在计算机限制下成法定的三维形体。系统还必须正确地、在计算机限制下内尽可能精确地完成相交分析。内尽可能精确地完成相交分析。图形运算图形运算
31、n几何造型系统常处理一些比较简单的体元:立方几何造型系统常处理一些比较简单的体元:立方体、圆柱体、楔、嵌条,以直线或圆弧为边界的体、圆柱体、楔、嵌条,以直线或圆弧为边界的薄片等。薄片等。n所涉及的线和面在几何上是简单的直线、圆弧、平面所涉及的线和面在几何上是简单的直线、圆弧、平面和圆柱面,处理这些由一个正确的方式构造出来的物和圆柱面,处理这些由一个正确的方式构造出来的物体的相交,从概念上是比较容易的。体的相交,从概念上是比较容易的。n但主要困难在于:虽然几何简单,但多个元素的但主要困难在于:虽然几何简单,但多个元素的拼合却是复杂的。拼合却是复杂的。n故对于确实复杂的形体的组合问题,所需的几何算
32、法故对于确实复杂的形体的组合问题,所需的几何算法的效率就变得十分重要,需进行几何复杂性分析。的效率就变得十分重要,需进行几何复杂性分析。图形运算图形运算n几何造型系统较之早期图形系统的显著优越之处几何造型系统较之早期图形系统的显著优越之处在于:无需人为干预就能预定形体与执行一连串在于:无需人为干预就能预定形体与执行一连串运算。即具有高度自动化的图形定义或构造、产运算。即具有高度自动化的图形定义或构造、产生处理或演变功能。生处理或演变功能。n几何元素的定向在图形运算中起着相当大的作用。几何元素的定向在图形运算中起着相当大的作用。n例如平面图形的几何运算就是建立在以向量为基本几例如平面图形的几何运
33、算就是建立在以向量为基本几何元素的环的基础上实现的。何元素的环的基础上实现的。n直线和圆弧这两种基本几何段的相贯运算是平面直线和圆弧这两种基本几何段的相贯运算是平面图形运算的基础,保证这些算法的准确性,提高图形运算的基础,保证这些算法的准确性,提高这些算法的效率是计算机图形系统一项基础性的这些算法的效率是计算机图形系统一项基础性的工作。工作。图形输出图形输出n图形输出是人图形输出是人 机交互系统中人们能够得机交互系统中人们能够得到的最直观的结果。它直接向人们显示出到的最直观的结果。它直接向人们显示出计算机图形系统的效果。计算机图形系统的效果。n相对而言,图形输出计算机图学中研究得相对而言,图形
34、输出计算机图学中研究得最早、最深入、解决得最好的一部份工作。最早、最深入、解决得最好的一部份工作。图形输出图形输出n一个物体的制造者可以从一张多视图的图样里了一个物体的制造者可以从一张多视图的图样里了解到许多内容。因此,一个能在二维参考平面里解到许多内容。因此,一个能在二维参考平面里提供综合的,绘制直线和曲线的系统也就提供了提供综合的,绘制直线和曲线的系统也就提供了画出一个复杂而详细的图形或物体的基础。画出一个复杂而详细的图形或物体的基础。n但是,图形只是三维物体的某一个特定的不完整但是,图形只是三维物体的某一个特定的不完整的表示。而物体有一种图里没有的,与众不同的的表示。而物体有一种图里没有
35、的,与众不同的特性特性 完全的三维定义。人们可以随意地在三完全的三维定义。人们可以随意地在三维空间中把物体旋转和平移以及物体的综合,但维空间中把物体旋转和平移以及物体的综合,但一般不能用图形做到这一点。一般不能用图形做到这一点。图形输出图形输出n基本几何(点、直线、圆及圆弧等)和文字的光基本几何(点、直线、圆及圆弧等)和文字的光栅化显示,几何裁剪算法栅化显示,几何裁剪算法n基本几何的描述、相交算法,曲线拟合和双圆弧基本几何的描述、相交算法,曲线拟合和双圆弧逼近算法,动态显示的插值算法。逼近算法,动态显示的插值算法。n图形显示中的裁剪算法,通常称为窗口算法;图形显示中的裁剪算法,通常称为窗口算法
36、;n隐藏线、隐藏面消除算法。隐藏线、隐藏面消除算法。n光照模型及算法。光照模型及算法。n纹理贴图;纹理贴图;n大规模场景显示算法;大规模场景显示算法;n图形显示软件和打印机、绘图机等的图形输出后图形显示软件和打印机、绘图机等的图形输出后处理软件等等。处理软件等等。几何算法、几何复杂性和计算效率几何算法、几何复杂性和计算效率n一个动画程序,一个游戏程序,用户的起码要求一个动画程序,一个游戏程序,用户的起码要求是是“流畅流畅”;n支撑它的是几何算法,几何复杂性问题及计算的支撑它的是几何算法,几何复杂性问题及计算的效率。效率。n许多通过交互设计各种形体的系统,其成功的主许多通过交互设计各种形体的系统
37、,其成功的主要断依据是凭视觉。例如套料问题,这在造船、要断依据是凭视觉。例如套料问题,这在造船、服装等行业是极为有用的,然而至今存在的系统服装等行业是极为有用的,然而至今存在的系统还是由人机交互作用来完成。还是由人机交互作用来完成。n而几何造型系统在相交问题的正确算法和处理组而几何造型系统在相交问题的正确算法和处理组合比较复杂问题的能力,这种系统的发展表明,合比较复杂问题的能力,这种系统的发展表明,需要多多研究几何算法。需要多多研究几何算法。几何算法、几何复杂性和计算效率几何算法、几何复杂性和计算效率n几何相交问题在几何算法中占有较大的比重,在几何相交问题在几何算法中占有较大的比重,在平面上,
38、它处理直线和直线,圆弧和直线,圆弧平面上,它处理直线和直线,圆弧和直线,圆弧和圆弧等基本几何的相交,在三维空间则是处理和圆弧等基本几何的相交,在三维空间则是处理直线和平面,平面和平面的相互关系。直线和平面,平面和平面的相互关系。n但是,并不是所有的处理直线和直线的相交都是但是,并不是所有的处理直线和直线的相交都是简易的。简易的。n例如,考虑两个平面多边形相交的状态,按照例如,考虑两个平面多边形相交的状态,按照Shamos(1978)算法,如果这两个多边形是凸的,算法,如果这两个多边形是凸的,对于对于n条边的多边形可以用条边的多边形可以用O(n)的时间解决这个的时间解决这个问题。而对于两个任意非
39、凸多边形,为解决这个问题。而对于两个任意非凸多边形,为解决这个问题要花问题要花O(n2)的时间,可能形成达的时间,可能形成达n2/4个不相叠个不相叠的凸多边形。的凸多边形。几何算法、几何复杂性和计算效率几何算法、几何复杂性和计算效率n观察一个时间复杂性的例子:观察一个时间复杂性的例子:n问题:设给定问题:设给定n个已经排序的数的队列,现在要插入一个已经排序的数的队列,现在要插入一个新的数到这个队列中,并保持队列原有的次序,几个新的数到这个队列中,并保持队列原有的次序,几何复杂性为何复杂性为O(n)次主算。应用二分法,可降为次主算。应用二分法,可降为O(log2n)次。次。n如果不计检索到元素后
40、对其处理所花费的计算时间,如果不计检索到元素后对其处理所花费的计算时间,而只对而只对n的步数计算时间,那末当的步数计算时间,那末当n=60时:时:nn:610-5秒秒nN2:3610-4秒秒nN3:21610-3秒秒nN5:13分钟分钟n2n:366世纪世纪n3n:1.31013世纪世纪几何算法、几何复杂性和计算效率几何算法、几何复杂性和计算效率n降低几何复杂性是几何算法的一个努力目降低几何复杂性是几何算法的一个努力目标,它可以提高算法的效率。标,它可以提高算法的效率。n过去开发仅仅能过去开发仅仅能“工作工作”的算法就常常足的算法就常常足够了,即使在某些情况下效率低也无妨。够了,即使在某些情况
41、下效率低也无妨。n随着使用计算机进行几何设计的增加,以随着使用计算机进行几何设计的增加,以及要解决问题的范围之扩大,效率、精度及要解决问题的范围之扩大,效率、精度和正确性的问题就变得非常重要了。和正确性的问题就变得非常重要了。计算机图形学的相关开发技术计算机图形学的相关开发技术n计算机图形学经过几十年的发展,已经达计算机图形学经过几十年的发展,已经达到了比较高的水平,目前已有若干图形学到了比较高的水平,目前已有若干图形学软件开发技术。软件开发技术。n利用这些开发技术,编写图形程序就容易利用这些开发技术,编写图形程序就容易多了,不必从底层开始,而只需将精力集多了,不必从底层开始,而只需将精力集中
42、到图形程序本身上。中到图形程序本身上。OpenGLnOpenGL:OpenGL 是是OpenGraphicsLib的缩写,的缩写,是一套三维图形处理库,也是该领域的工业标准。是一套三维图形处理库,也是该领域的工业标准。OpenGL源于源于SGI公司为其图形工作站开发的公司为其图形工作站开发的IRIS GL,在跨平台移植过程中发展成为,在跨平台移植过程中发展成为OpenGL。nOpenGL被设计成独立于硬件,独立于窗口系统被设计成独立于硬件,独立于窗口系统的,在运行各种操作系统的各种计算机上都可用,的,在运行各种操作系统的各种计算机上都可用,并能在网络环境下以客户并能在网络环境下以客户/服务器模
43、式工作,是专服务器模式工作,是专业图形处理、科学计算等高端应用领域的标准图业图形处理、科学计算等高端应用领域的标准图形库。形库。nMicrosoft、SGI、IBM、DEC、SUN、HP等大公司都采等大公司都采用了用了OpenGL作为三维图形标准。作为三维图形标准。n许多软件厂商也纷纷以许多软件厂商也纷纷以OpenGL为基础开发出自己的产品,为基础开发出自己的产品,包括动画制作软件包括动画制作软件Soft Image和和3D Studio MAX、仿真软、仿真软件件Open Inventor、VR软件软件World Tool Kit、CAD软件软件Pro/Engineer、GIS软件软件ARC
44、/INFO等等。等等。nOpenGL实际上是一个开放的三维图形软件包,它独立于实际上是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植;分方便地在各种平台间移植;OpenGL与与C+紧密接合,紧密接合,便于实现图形的相关算法,并可保证算法的正确性和可靠便于实现图形的相关算法,并可保证算法的正确性和可靠性;性;OpenGL使用简便,效率高。使用简便,效率高。ACISnACIS是美国是美国Spatial Technology公司推出的三维几公司推出的三维几何引擎,为各种何引擎,为各种3D造
45、型应用的开发提供了几何造造型应用的开发提供了几何造型平台,目前的最高本版已经到了型平台,目前的最高本版已经到了R13。ACIS 能能够安装在多种平台上,包括够安装在多种平台上,包括Windows, Linux, Unix, Solaris, AIX等。等。nACIS采用了软件组件技术,用采用了软件组件技术,用C+技术构造,它技术构造,它包含一整套的包含一整套的C+类和函数,开发人员可以使用类和函数,开发人员可以使用这些类和函数构造一个面向终端用户的这些类和函数构造一个面向终端用户的2/3维软件维软件系统。系统。nACIS是一个基于边界表示法的造型引擎,集线框、是一个基于边界表示法的造型引擎,集
46、线框、曲面和实体造型于一体,并允许这三种表示共存曲面和实体造型于一体,并允许这三种表示共存于统一的数据结构中。于统一的数据结构中。ACISnACIS系统的造型方法有:系统的造型方法有:n覆盖技术覆盖技术(covering):覆盖一个由曲线组成的闭:覆盖一个由曲线组成的闭合区域的曲面合区域的曲面n放样技术放样技术(lofting):通过一系列的曲线和与这:通过一系列的曲线和与这些曲线相关联的曲面来构造新曲面的一种技术些曲线相关联的曲面来构造新曲面的一种技术n蒙面技术蒙面技术(skinning):在一系列曲线之间构造一:在一系列曲线之间构造一个曲面个曲面ACISn网格曲面网格曲面(net surf
47、aces):用一族曲线网来定:用一族曲线网来定义曲面的义曲面的u和和v参数方向,这为控制最终的参数方向,这为控制最终的曲面形状提供了很大的自由度曲面形状提供了很大的自由度n规则规则(law)和图和图(graph):提供规则类,直接:提供规则类,直接用数学方程定义实体中的边和面用数学方程定义实体中的边和面n扫掠扫掠(sweeping):通过扫描一个轮廓:通过扫描一个轮廓(profile)来生成实体(来生成实体(solidbody)或者薄片体)或者薄片体(sheet body)。ACIS有三种不同的扫掠操作:规则有三种不同的扫掠操作:规则扫掠、垂直扫掠以及刚性扫掠扫掠、垂直扫掠以及刚性扫掠Dire
48、ctXnDirectX是一种图形应用程序接口(是一种图形应用程序接口(API),它是),它是一个提高系统性能的加速软件,由微软公司创建一个提高系统性能的加速软件,由微软公司创建开发,微软将其定义为开发,微软将其定义为“硬件设备无关性硬件设备无关性”。nDirectX 就是一系列的就是一系列的DLL(Dynamic Link Lib),通过这些通过这些DLL,程序员可以在无视于设备差异的,程序员可以在无视于设备差异的情况下访问底层的硬件。情况下访问底层的硬件。nDirectX并不是一个单纯的图形并不是一个单纯的图形API,它是一个用,它是一个用途广泛的途广泛的API, 它包含有它包含有Direc
49、t Graphics(Direct 3D+Direct Draw)、Direct Input、DirectPlay、Direct Sound、Direct Show、DirectSetup和和Direct Media Objects等多个组件,它提供了一整套的多等多个组件,它提供了一整套的多媒体接口方案。媒体接口方案。DirectXnDirectX主要应用于游戏软件的开发。主要应用于游戏软件的开发。n微软公司给众多的软、硬件商家提供一个共同开微软公司给众多的软、硬件商家提供一个共同开发的标准平台发的标准平台(就是就是DirectX),大家都遵循这个标,大家都遵循这个标准,硬件制造商按照此标准研
50、发制造更好的产品,准,硬件制造商按照此标准研发制造更好的产品,游戏程序员根据这套标准开发游戏。游戏程序员根据这套标准开发游戏。n无论硬件是否支持某特殊效果,只要无论硬件是否支持某特殊效果,只要DirectX标准标准中有,程序员就可以把它写到游戏中,当这个游中有,程序员就可以把它写到游戏中,当这个游戏在硬件上运行,如果此硬件根据戏在硬件上运行,如果此硬件根据DirectX标准把标准把这个效果做到了此硬件驱动程序中,驱动程序驾这个效果做到了此硬件驱动程序中,驱动程序驾驭其硬件算出此效果,用户就可以欣赏到此效果。驭其硬件算出此效果,用户就可以欣赏到此效果。Java3DnJava3D API是是Sun