图形学论文.doc_第1页
图形学论文.doc_第2页
图形学论文.doc_第3页
图形学论文.doc_第4页
图形学论文.doc_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

计算机图形学发展OpenGl计算机图形学论文班 级:姓 名: 学 号:交互式图形程序库是图形用户接口(GUI)中应用最普遍的一种,ISO发布的各种图形学标准中的用户界面均是以程序库的形式给出来的,在三维图形显示上颇有特色且应用也很广泛OpenGL也是图形程序库,是近年发展起来的一个性能优越的三维图形标准,它是图形硬件与应用程序之间的抽象界面。它支持诸如点、线、多边形及图像等多种基本图元,以及图形变换、光照计算等基本绘制操作,也支持纹理映射、反走样等高级绘制功能。OpenGL在CAD/CAM、娱乐、医学图像、虚拟现实等领域中得到了广泛的应用,它可以作为开发交互式图形系统、CAD/CAM系统等的支撑环境,也可用于计算机图形学的教学及其实验。其发展如下:早期的三维图形工具软件包有GL,RenderMan等。但随着计算机技术的迅速发展,GL已经进一步发展成为OpenGL,现在OpenGL被认为是高性能图形和交互式视景处理的标准。这些三维图形工具软件包有些侧重于使用方便,有些侧重于绘制效果或与应用软件的连接,但没有一种软件包能在交互式三维图形建模能力和编程方便程度上与OpenGL相比拟。OpenGL的前身是SGI公司为其图形工作站开发的IRISGL,IRISGL是一个工业标准的3D图形软件接口。功能虽然强大,但是可移植性不好,于是SGI公司在IRISGL的基础上开发了OpenGL。OpenGL的英文全称是“Open Graphics Library”,就是“开放性图形程序接口”。1992年7月,OpenGL的1.0版本诞生,随后在WindowsNT上运行的OpenGL也诞生了,从而使一些原来必须在高档图形工作站上运行的3D图形处理软件也可以在微机上运行。1995年OpenGL的1.1版本诞生,与前一版本相比,其增加了不少的新功能,包括高顶点位置、法线、颜色、色彩指数、纹理坐标、多边形边缘标识的传输速度,引入了新的纹理特性等等。1997年,Windows平台上大量的3D游戏开发的需求,迫使微软在其以后的操作系统中加入了对OpenGL的支持,后来许多在3D图形设计软件也可以运行支持OpenGL标准的3D加速卡,大大提高了3D图形的处理速度。1998年3月,发布了OpenGL 1.2。1.2版本主要提升了OpenGL的纹理映射能力,以及对象素处理管线进行了增强。从1.2版开始,技术手册中将一部分GL特征定义为可选项,具体的OpenGL实现可以选择是否提供对这些特征的支持。2001年8月,发布了OpenGL 1.3。1.3版本主要提升了纹理映射能力。至OpenGL 1.3为止,OpenGL的发展几乎处于停滞不前的状态,主要的进展是OpenGL扩展指令的推出。这些扩展指令是一些绘图功能、视频及绘图的整合工具,组成了一个混乱的扩展指令组,其中许多都是为专用应用程序而设计的,对大多数需要一致性开发平台的ISV(独立软件开发商,Independent Software Vender)来说并不实用。ARB也已经发现为何无法将OpenGL往前推进的几个原因,包括知识产权(IP)争论的潜伏危机。希望参与ARB(委员会的策划)并提供技术、但也同时也想保护各自IP的厂商大感挫折。2003年7月,SGI和ARB公布了OpenGL 1.5。OpenGL 1.5中包括OpenGL ARB的正式扩展规格绘制语言“OpenGL Shading Language”,该语言是“OpenGL 2.0”的底核,用于着色对象、顶点着色以及片断着色技术的扩展功能。OpenGL 1.5的新功包括:顶点Buffer Object、Shadow功能、隐蔽查询、非乘方纹理等。OpenGL被设计成独立于硬件,独立于窗口系统,在运行各种操作系统的各种计算机上都可用,并能在网络环境下以客户/服务器模式工作,是专业图形处理、科学计算等高端应用领域的标准图形库。它低端应用上的主要竞争对手是MS-Direct3D,该图形库是以COM接口形式提供的,所以极为复杂,稳定性差,另外微软公司拥有该库版权,目前只在Windows平台上可用。Direct3D的优势在速度上,但现在低价显卡都能提供很好的OpenGL硬件加速,所以做3D图形开发使用Direct3D已没有特别的必要,在专业图形处理特别是高端应用方面目前还没有出现以Direct3D技术为基础的例子,而游戏等低端应用也有转向OpenGL的趋势.OpenGL是一个开放的三维图形软件包,它独立于窗口系统和操作系统,以它为基础开发的应用程序可以十分方便地在各种平台间移植;OpenGL可以与Visual C+紧密接口,便于实现机械手的有关计算和图形算法,可保证算法的正确性和可靠性;OpenGL使用简便,效率高。它具有七大功能:第一,建模:OpenGL图形库除了提供基本的点、线、多边形的绘制函数外,还提供了复杂的三维物体(球、锥、多面体、茶壶等)以及复杂曲线和曲面绘制函数。第二,变换:OpenGL图形库的变换包括基本变换和投影变换。基本变换有平移、旋转、变比镜像四种变换,投影变换有平行投影(又称正射投影)和透视投 影两种变换。其变换方法有利于减少算法的运行时间,提高三维图形的显示速度。第三,颜色模式设置:OpenGL颜色模式有两种,即RGBA模式和颜色索引(ColorIndex)。第四,光照和材质设置:OpenGL光有辐射光(Emitted Light)、环境光(Ambient Light)、漫反射光(Diffuse Light)和镜面光(Specular Light)。材质是用光反射率来表示。场景(Scene)中物体最终反映到人眼的颜色是光的红绿蓝分量与材质红绿蓝分量的反射率相乘后形成的颜色。第五,纹理映射(Texture Mapping)。利用OpenGL纹理映射功能可以十分逼真地表达物体表面细节。第六,位图显示和图象增强图象功能除了基本的拷贝和像素读写外,还提供融合(Blending)、反走样(Antialiasing)和雾(fog)的特殊图象效果处理。以上三条可使被仿真物更具真实感,增强图形显示的效果。第七,双缓存动画(Double Buffering)双缓存即前台缓存和后台缓存,简言之,后台缓存计算场景、生成画面,前台缓存显示后台缓存已画好的画面。此外,利用OpenGL还能实现深度暗示(Depth Cue)、运动模糊(Motion Blur)等特殊效果。从而实现了消隐算法。 游戏程序员们曾经对OpenGL的技术和画质推崇倍至,以至于微软在Windows系统中引入OpenGL,并且在Windows平台上出现了Quake II、QuakeIII、重返德军总部等一批优秀的基于OpenGL API的游戏,而同时期的D3D游戏没有哪一款能在画质上超越这些OpenGL游戏的,一直到微软发布DirectX 7,这种情况还是没有发生多大的改变,DirectX只是作为一个能用于快速开发游戏的API而存在着。但是当微软在2001年发布了DirectX 8以后,局面终于被扭转了,DirectX 8是DirectX发展史上一个里程碑式的产品,它在2D、3D、视频、音频以及交互式输入设备接口方面进行了许多重要的改进,其中,在3D图形处理方面尤其做了划时代的改进,可以说,作为一个游戏API,DirectX 8已经超越了OpenGL。出现这样的情况决非偶然:OpenGL是由ARB这一官僚机构管理的,官僚主义带来的自然是OpenGL发展的停滞不前,同时由于要考虑到团队中大多数人的利益,以至于在OpenGL 1.0推出后的相当长的一段时间里,OpenGL唯一做的只是增加了一些扩展指令集,这些扩展指令是一些绘图功能,像是ClearCoat、Multisample、视频及绘图的整合工具(某些是通过OpenML的努力而开发出来的,它本身属于OpenGL ARB扩展指令之一)。这正好给也是ARB成员之一的Microsoft找到了借口,他抱怨ARB对市场的反映极为迟钝,因而抛开OpenGL,倾其所有的开发资源,独自全力投入开发DirectX的工作上。更可笑的是在OpenGL 1.4中的一项Vertex编程框架技术还被同为ARB成员之一的微软指控侵犯了DirectX 8的专利;而Direct3D这边却得到了微软倾尽全力支持,技术更新极快,最终完全超越了OpenGL。但是OpenGL也并不是完全沉没,而是在默默耕耘,继续走自己的道路。继1.5版后,ARB又为我们展示了具有美好前程的OpenGL 2.0版本。2004年8月,OpenGL2.0版本发布,OpenGL 2.0标准的主要制订者并非原来的SGI,而是逐渐在ARB中占据主动地位的3Dlabs。opengl2.0支持OpenGL Shading Language、新的shader扩展特性以及其他多项增强特性。2.0版本首先要做的是与旧版本之间的完整兼容性,同时在顶点与像素及内存管理上与DirectX共同合作以维持均势。OpenGL 2.0将由OpenGL 1.3的现有功能加上与之完全兼容的新功能所组成。借此可以对在ARB停滞不前时代各家推出的各种纠缠不清的扩展指令集做一次彻底的精简。此外,硬件可编程能力的实现也提供了一个更好的方法以整合现有的扩展指令。OpenGL 2.0最重要的更新是加入了可编程能力。合成一个提供给开发者更多精简API的“Pure”OpenGL 2.0。通过将特定的OpenGL功能定义为“旧”功能,并加入更具有弹性的可编程新功能,让开发者们能运用可编程能力快速地获取最急切需求的功能。其中,可编程顶点处理、可编程片段处理、可编程图像格式是OpenGL 2.0的关键功能。顶点处理其功能在于照明,材质和几何图形的弹性。可编程顶点程序将取代部分旧有的OpenGL管线如顶点转换、正规转换、照明、色彩强化、材质坐标产生及转换等,并且允许进行随机个别顶点运算。片段处理其功能为材质存取,插值计算和像素运算。OpenGL 2.0增加了片段处理器的能力,取代旧有的内插值顶点数据运算、像素缩放、质材存取及应用、雾化等。可编程图像格式将取代固定格式封装和解封装运算,在自OpenGL传送或接收像素数据时,将允许类型与格式进行任意组合。此外,OpenGL 2.0提供了更好的数据移动和内存管理功能。加强了应用程序对数据移动的控制能力和更好的顶点处理能力,能消除为增进数据流量而产生的数据备份,大幅提升性能。OpenGL 2.0加入可编程能力可谓是开发者企盼已久的功能。开发者借由OpenGL 2.0提供的可编程能力,以丰富且常效性的功能来取代以往的复杂度,减少对现有及未来扩展指令的需求。与此同时,主要的硬件厂商愿意开放IP,一个困扰ARB多时的问题得到了很大程度上的解决。而作为ARB准会员的ATi和NVIDIA也致力于彼此技术的整合。OpenGL开放性图形库,其“开放”是重点,ARB承诺所有被OpenGL采用的创意想法都将公开给所有人使用且不需要IP授权。2008年8月初Khronos工作组在Siggraph 2008大会上宣布了OpenGL 3.0图形接口规范,GLSL1.30 shader语言和其他新增功能将再次未来开放3D接口发展指明方向。penGL 3.0 API开发代号为Longs Peak,和以往一样,OpenGL 3.0仍然作为一个开放性和跨平台的3D图形接口标准,在Shader语言盛行的今天,OGL3.0增加了新版本的shader语言:GLSL 1.30,可以充分发挥当前可编程图形硬件的潜能。同时,OGL3.0还引入了一些新的功能,例如顶点矩阵对象,全帧缓存对象功能,32bit浮点纹理和渲染缓存,基于阻塞队列的条件渲染,紧凑行半浮点顶点和像素数据,四个新压缩机制等等。目前,Open GL仍然是唯一能够取代微软对3D图形技术的完全控制的API。它仍然具有一定的生命力,但是Silicon Graphics已经不再以任何让微软不悦的方式推广Open GL,因而它存在较高的风险。游戏开发人员是一个有着独立思想的群体

温馨提示

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

评论

0/150

提交评论