欢迎来到天天文库
浏览记录
ID:11734867
大小:920.50 KB
页数:16页
时间:2018-07-13
《基于opengl技术的软件系统设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第五章基于OpenGL技术的软件系统设计机器人三维运动仿真是机器人各项仿真中一个很重要的组成部分。它对于验证机器人工作原理、工作空间及进行碰撞检测等都具有非常重要的指导意义[4]。本章通将如何在Windows环境下使用VC++、OpenGL实现物体的三维实时运动仿真,并利用“模糊神经网络算法”来解决机械手臂到达指定环境中的某点位置运动的问题,为机械运动控制系统的三维运动仿真及操作控制提供了一种新的方法[52]。5.1OpenGL技术的实现5.1.1OpenGL的概述OpenGL(全称:OpenGraphicsLibrary)是定义了一个跨编程语
2、言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。OpenGL的前身是SGI公司为其图形工作站开发的IRISGL。IRISGL是一个工业标准的3D图形软件接口,功能虽然强大但是移植性不好,于是SGI公司便在IRISGL的基础上开发了OpenGL。OpenGL的英文全称是“OpenGraphicsLibrary”,顾名思义,OpenGL便是“开放的图形程序接口”。虽然DirectX在家用市场全面领先,但在专业高端绘图领域,OpenGL是不能被取代的主角。OpenGL
3、是与硬件无关的软件接口,可以在不同的平台如Windows95、WindowsNT、Unix、Linux、MacOS、OS/2之间进行移植。因此,支持OpenGL的软件具有很好的移植性,可以获得非常广泛的应用。由于OpenGL是图形的底层图形库,没有提供几何实体图元,不能直接用以描述场景。但是通过一些转换程序,可以很方便地将AutoCAD、3DS/3DSMAX等3D图形设计软件制作的DXF和3DS模型文件转换成OpenGL的顶点数组。在OpenGL的基础上还有OpenInventor、Cosmo3D、Optimizer等多种高级图形库,适应不同应
4、用,其中,OpenInventor应用最为广泛。该软件是基于OpenGL面向对象的工具包,提供创建交互式3D图形应用程序的对象和方法,提供了预定义的对象和用于交互的事件处理模块,创建和编辑3D场景的高级应用程序单元,有打印对象和用其它图形格式交换数据的能力。OpenGL的发展一直处于一种较为迟缓的态势,每次版本的提高新增的技术很少,大多只是对其中部分做出修改和完善。1992年7月,SGI公司发布了OpenGL的1.0版本,随后又与微软公司共同开发了WindowsNT版本的OpenGL,从而使一些原来必须在高档图形工作站上运行的大型3D图形处理软
5、件也可以在微机上运用。1995年OpenGL的1.1版本面市,该版本比1.0的性能有许多提高,并加入了一些新的功能。其中包括改进打印机支持,在增强元文件中包含OpenGL的调用,顶点数组的新特性,提高顶点位置、法线、颜色、色彩指数、纹理坐标、多边形边缘标识的传输速度,引入了新的纹理特性等等。OpenGL1.5又新增了“OpenGLShadingLanguage”,该语言是“OpenGL2.0”的底核,用于着色对象、顶点着色以及片断着色技术的扩展功能。OpenGL2.0标准的主要制订者并非原来的SGI,而是逐渐在ARB中占据主动地位的3DLabs
6、。2.0版本首先要做的是与旧版本之间的完整兼容性,同时在顶点与像素及内存管理上与DirectX共同合作以维持均势。OpenGL2.0将由OpenGL1.3的现有功能加上与之完全兼容的新功能所组成,如图5-1。借此可以对在ARB停滞不前时代各家推出的各种纠缠不清的扩展指令集做一次彻底的精简。此外,硬件可编程能力的实现也提供了一个更好的方法以整合现有的扩展指令[51]。5.1.2OpenGL三维成形过程OpenGL具有超强的图形绘制能力,包括绘制物体、启动光照、管理位图、纹理映射、动画、图形增强及交互技术等功能。综合以上功能,作为图形硬件的软件接口
7、,OpenGL主要是将三维的物体投影到一个二维平面上,之后处理得到像素,进行显示。OpenGL首先将物体转化为可以描述物体几何性质的顶点(Vertex)与描述图像的像素(Pixel),在执行一系列操作后,最终将这些数据转化成像素数据。也就是说,OpenGL是基于点的。在OpenGL中,无论何种情况,指令总是被顺序处理。有一组顶点定义的图元(Pirmitive)执行完绘制操作后,后继图元才能作用[53]。简单的图形生成过程如图1.1所示。(1)对图元的定义:图元由一组顶点定义,这一组顶点可以是一个或是多个顶点。每个顶点信息可以是二维的也可以是三维
8、的,可以使用2~4个坐标。顶点信息可以由位置坐标、颜色值、法向量、纹理坐标组成。法线、纹理、颜色值会在处理每个顶点的过程中被使用和改变。纹理坐标决定图
此文档下载收益归作者所有