2006-9-2李辉副教授计算机图形学Rayray@mail.buct.edu.cn第2页2020/1/20第1章概述内容计算机图形学的研究内容计算机图形学的发展历史计算机图形学的典型应用第3页2020/1/20第1章概述计算机图形学的研究内容计算机图形学(ComputerGraphics)与其它技术的关系–模式识别–图像处理–计算几何第4页2020/1/20第1章概述与其它技术的关系图像几何数据图像处理计算几何模式识别计算机图形学第5页2020/1/20第1章概述计算机图形学的概念简单地说,计算机图形学就是研究如何在计算机中表示图形、以及利用计算机进行图形的计算、处理和显示的相关原理与算法。图形–基于线条信息表示的–明暗图(真实感图形)图形与图像–界限越来越模糊。–图像纯指计算机内以位图形式存在的信息。–图形含有几何属性,由场景的几何模型和景物的物理属性共同组成。第6页2020/1/20第1章概述计算机图形学的发展历史20世纪50年代–1950年,第一台图形显示器作为美国麻省理工学院(MIT)旋风I号(WhirlwindI)计算机的附件诞生–1958年,美国Calcomp公司由联机的数字记录仪发展成滚筒式绘图仪,GerBer公司把数控机床发展成为平板式绘图仪–20世纪50年代末期,MIT的林肯实验室在“旋风”计算机上开发SAGE空中防御体系第7页2020/1/20第1章概述20世纪60年代–1962年,雷诺汽车公司的工程师PierreBézier提出Bézier曲线、曲面的理论–1963年,麻省理工学院的IvanE·Sutherland发表了“画板(Sketchpad):一个人机图形通信系统”的博士论文,标志着计算机图形学作为一个全新研究领域的起步–1964年,MIT的教授StevenA.Coons提出了超限插值的新思想,通过用小块曲面片组合来表示自由曲面,使曲面片边界上达到任意高阶连续的理论方法,称孔斯曲面。第8页2020/1/20第1章概述20世纪70年代–光栅图形学迅速发展•区域填充、裁剪、消隐等基本图形概念、及其相应算法纷纷诞生–图形软件标准化•1974年,ACMSIGGRAPH的与“与机器无关的图形技术”的工作会议•ACM成立图形标准化委员会,制定“核心图形系统”(CoreGraphicsSystem)•ISO发布CGI、CGM、GKS、PHIGS第9页2020/1/20第1章概述–真实感图形学•1970年,Bouknight提出了第一个光反射模型•1971年,Gourand提出“漫反射模型+插值”的思想,被称为Gourand明暗处理•1975年,Phong提出了著名的简单光照模型-Phong模型–实体造型技术•英国剑桥大学CAD小组的Build系统•美国罗彻斯特大学的PADL-1系统第10页2020/1/20第1章概述20世纪80年代之后–图形硬件迅猛发展–各个分支迅猛发展第11页2020/1/20第1章概述计算机图形学的典型应用可视化–海量的数据使得人们对数据的分析和处理变得越来越难,用图形来表示数据的迫切性与日俱增–1986年,美国科学基金会(NSF)专门召开了一次研讨会,会上提出了“科学计算可视化(VisualizationinScientificComputing)”–科学计算可视化广泛应用于医学、流体力学、有限元分析、气象分析当中第12页2020/1/20第1章概述计算机辅助设计与制造(CAD/CAM)–CAD/CAM是计算机图形学在工业界最广泛、最活跃的应用领域–飞机、汽车、船舶的外形的设计–发电厂、化工厂等的布局–土木工程、建筑物的设计–电子线路、电子器件的设计第13页2020/1/20第1章概述计算机动画–图象变形–形状混合–关键帧动画–变形物体的动画–过程动画–关节动画与人体动画第14页2020/1/20第1章概述计算机艺术–用于模拟艺术效果,研究方法有别于真实感图形学–钢笔素描的生成–钢笔素描产生于中世纪,从19世纪开始成为一门艺术20世纪90年代开始研究用计算机模拟–中国国画与书法的生成第15页2020/1/20第1章概述素描树(Siggraph’2000)由OliverDeussen绘制第16页2020/1/20第1章概述计算机图形学相关开发技术OpenGLDirectXJava3DVRML第17页2020/1/20第1章概述OpenGL简介–OpenGL(OpenGraphicsLibrary)是图形硬件的一个软件接口,也是该领域的工业标准。图形程序员利用这些指令可以创建高质量的交互式的三维应用。–OpenGL的前身是SGI(SiliconGraphics)公司为其图形工作站开发的IRISGL。IRISGL虽然功能强大但是移植性不好,于是SGI公司便在IRISGL的基础上开发了OpenGL。–OpenGL是一个与硬件无关的软件接口。可以在不同的平台如Windows95、WindowsNT、Unix、Linux、MacOS、OS/2之间进行移植。–OpenGL是网络透明的,具有网络功能。即便客户机和服务器是不同类型的计算机OpenGL程序也可以在网络上运行。第18页2020/1/20第1章概述DirectX简介–DirectX首次出现在1995年,当时称为“GameSDK”。在其原始形式中,针对的目标是使用C和C++的开发人员。–DirectX能增强计算机的多媒体功能。使用DirectX可访问显卡与声卡的功能,从而使程序可提供逼真的3D)图形与声音效果。DirectX是一组底层“应用程序接口(API)”,可为Windows程序提供高性能的硬件加速多媒体支持。–DirectX包含一组API,通过它能访问高性能硬件的高级功能,如三维图形加速芯片和声卡。第19页2020/1/20第1章概述–DirectX支持以下底层功能:•MicrosoftDirectDrawAPI支持快速访问计算机视频适配器的加速硬件功能。它支持在所有视频适配器上显示图形的标准方法,并且使用加速驱动程序时可以更快更直接地访问。•MicrosoftDirect3DAPI(Direct3D)为大多数新视频适配器内置的3-D调色功能提供界面。Direct3D包含专用CPU指令集支持,从而可为新型计算机提供进一步加速支持。•MicrosoftDirectSoundAPI为多媒体软件程序提供低延迟混合、硬件加速以及直接访问声音设备等功能。第20页2020/1/20第1章概述•MicrosoftDirectInputAPI为游戏提供高级输入功能并能处理游戏杆以及包括鼠标、键盘和反馈游戏控制器在内的设备输入。•MicrosoftDirectMusicAPI是DirectX的交互式音频组件。与捕获和播放数字声音样本的DirectSoundAPI不同,DirectMusic处理数字音频以及基于消息的音乐数据,这些数据是通过声卡或其内置的软件合成器转换成数字音频的。DirectMusicAPI支持以“乐器数字界面(MIDI)”格式进行输入,也支持压缩与未压缩的数字音频格式。第21页2020/1/20第1章概述•MicrosoftDirectPlayAPI支持通过调制解调器、Internet或局域网连接游戏。DirectPlay的新功能支持通过网络进行语音通信,从而可大大提高游戏的娱乐性,同时该组件还通过提供与玩游戏的其他人对话的功能而使游戏更具魅力。•MicrosoftDirectShowAPI提供可在计算机与Internet服务器上进行高品质捕获与回放多媒体文件的功能。DirectShow支持各种音频与视频格式,包括ASF、AVI、DV、MPEG、MP3、以及WAV文件。DirectShow还具有视频捕获、DVD回放、视频编辑与混合、硬件加速视频解码以及调谐广播模拟与数字电视信号等功能。第22页2020/1/20第1章概述Java3D简介–Java3DAPI是Sun定义的用于实现3D显示的接口。3D技术是底层的显示技术,Java3D提供了基于Java的上层接口。–Java3D把OpenGL和DirectX这些底层技术包装在Java接口中。–Java3D建立在Java2基础之上,J2SE在其标准开发包中并不提供Java3D的API,Java3D是一个独立的可选组件,可以单独下载。第23页2020/1/20第1章概述–Java3D实现了以下功能:•生成简单或复杂的形体(也可以调用现有的三维形体)•使形体具有颜色、透明效果、贴图。•在三维环境中生成灯光、移动灯光。•具有行为的处理判断能力(键盘、鼠标、定时等)。•生成雾、背景、声音。•使形体变形、移动、生成三维动画。•编写非常复杂的应用程序,用于各种领域如VR(虚拟现实)。第24页2020/1/20第1章概述VRML简介–VRML(VirtualRealityModelingLanguage)是一种模型语言,用来描述一个目标对象是如何呈现在Web上的。和HTML一样,VRML也是可由浏览器解释的描述语言,只不过VRML不是描述成一个Page的格式,而是描述成3D环境和目标的布局。–VRML为虚拟环境的建立提供了规范,综合了现有三维软件的景象描述语言的优点。它有基本元素、顶点、线和面的定义,坐标变换有缩放、旋转和平移,并有优化的数据结构。如果说VRML是一种语言的话,显然VRML浏览器就是它的解释器。–VRML语言支持的基本物体有球体、锥体、柱体、立方体和文本等,这些基本物体为创建景像提供了方便。