基于OPENGL的三维虚拟仿真设计

基于OPENGL的三维虚拟仿真设计
本文研究的是 OpenGL 三维虚拟仿真设计,本文先介绍了OpenGL的功能特点,虚拟仿真设计的背景分析,然后是虚拟仿真的发展、windows下OpenGL的结构、OpenGL函数库。虚拟仿真在当今社会已经发展的很迅速了,在众多领域内都设计了虚拟交互,本文主要介绍了虚拟交互的一些基本的技术,灵感在于经典游戏CS中一个地图场景,简化其场景,可以通过鼠标和键盘来控制摄像机画面。基于C++下的OpenGL虽然复杂,但其实用性是非常高的,在医学、航天、工业领域都取得了不错的成果,OpenGL下的三维虚拟仿真,操作简单,画面逼真,易懂,让我们从基础来了解虚拟仿真,在制作过程,主要分为四大块,第一是贯穿全局的主程序,然后是窗口主程序、camera主程序、场景主程序,作品的测试。最后是在进行整个课题研究中所遇到的一系列问题和解决方案,当然最后是对于课题的一个小结。20191102151700
关键词:OPENGL;C++;虚拟仿真
摘要    I
ABSTRACT    II
第1章 绪论    1
1.1 课题研究的目的和方法    1
1.2 论文内容介绍    2
1.2.1 OPENGL介绍    2
1.2.1 OPENGL的功能特点    2
第2章 课题背景研究    5
2.1 关于OPENGL虚拟仿真设计的背景分析    5
2.2 OPENGL虚拟仿真的发展    6
2.3 Windows下OPENGL的结构    7
2.4 OPENGL函数库    8
第3章 作品方案设计过程    9
3.1 设计概念阐述    9
3.2 设计过程阐述    10
第4章 作品制作过程    12
4.1主程序的执行过程    12
4.2窗口程序    13
4.3CAMERA程序    13
4.4场景程序    15
4.5作品测试    18
第5章 作品的未完成和改良    19
第6章 结论    23
参考文献    24
附录    26
致谢    43
1.1研究目的及研究方法
OPENGL 虚拟仿真技术运用于创建虚拟场景,仿真技术就是用一个系统模仿另一个真实系统的技术。仿真是在人类认识自然界客观规律的历程中一直被有效地使用着。由于计算机技术的发展,仿真技术已经有自己的体系了,成为继数学推理、科学实验之后人类认识自然界规律的第三类基本方法,而且正在发展成为人类认识、改造和创造客观世界的一项通用性、战略性技术。
人们对仿真技术的期望也越来越高,过去,人们只用仿真技术来模拟某个物理现象、设备或简单系统;今天,人们要求能用仿真技术来描述复杂系统,甚至由多个不同系统组成的系统体系。这就要求仿真技术需要进一步发展,并吸纳、融合其他相关技术。虚拟现实技术,是20世纪80年代新崛起的一种综合集成技术,涉及计算机图形学、人际交互技术、传感技术、人工智能等。它由计算机硬件、软件以及各种传感器构成的三维信息的人工环境即虚拟环境,可以逼真地模拟现实世界的事物和环境,人投入到这种环境中,立即有身临其境的感觉,并可亲自操作,自然地与虚拟环境进行交互。主要有三方面的含义:第一,是借助于计算机生成的环境是虚幻的;第二,人对这种环境的感觉是逼真的;第三,人可以通过自然的方法与这个环境进行交互,虚拟环境还能够实时地做出相应的反应。现在OPENGL虚拟仿真在很多领域都有很大的发展,在飞行领域、建筑施工、海洋环境、医学领域等都有深入的研究,会让世界更方便。
     研究课题的时候,首先要研究课题的主旨是什么,研究哪些方面的研究,OPENGL虚拟仿真这个课题,首先要对OPENGL做一个相对全面的了解;然后了解下虚拟仿真的一些发展和研究成果。谈及研究方法,归纳了有以下几种研究方法:文献研究法、观察法、个案研究法、经验总结法、实验法。
不管是什么样的研究,都少不了要通过文献来获得资料,这样才能全面正确的了解和掌握自己所需要的资料,为课题更好的服务。为此搜集整理了2000年到2013年期间发表且和OpenGL虚拟仿真相关的著作。通过资料的查找、收集以及筛选,全面地为以后的进程做准备。
观察法是科学研究中经常用到的一种方法,也是科学研究中最基本的方法。调查学生朋友们玩过哪些虚拟交互类的游戏,他们的游戏感受是什么,有什么建议提出来。
之后是个案分析法,之前做的每个步骤,主要的都是全部很笼统的调查,没有细化,没有定性研究,在前两个方法用好之后,对研究的课题的范围已经很了解了,自己所要的设计风格也都在脑海里明确,对于虚拟仿真不可能把东西做的身临其境,这需要时间、技术研究,所以再简化,做些基本的虚拟交互,普通的有漫游交互,有灯光,而我们普通的虚拟交互工具有键盘、鼠标,我们就充分利用这两个交互工作来做。就要进行个案研究了,就研究漫游交互,和灯光的交互及碰撞的检测。曾经有个很经典的游戏,叫CS,想必都玩过,可以借助于对这个例子的深度剖析,让笔者对于漫游的特点和表现了解得更透彻,完善笔者的思路。
经验总结法,在对个案研究的时候,要认真总结每个方案的优点和缺点,这样做用户有什么好的地方,交互的结构是什么样子的,怎么才能更直接更清晰的让学生了解到虚拟仿真的优势,为什么要这样设计,要多问自己为什么,这样才能学到更多。
实验法,在课题做得差不多的时候,要进行用户使用测试,观察用户在无人指示的情况下操作是否明确,在做完测试后访问用户测试后的感受以及事先准备好的问题,看预期的效果达到没有,还有什么需要改进的地方。
1.2 论文内容介绍
OPENGL介绍:
OPENGL的前身是SGI公司为其图形工作站开发的IRIS GL。这是一个工业标准的3d图形软件接口,它的功能很强大,不过它的移植性不太好,所以SGI公司就在IRISGL的基础上开发了OPENGL。它的全称是 open graphics library,中文名字就是开放的图形程序接口。在专业高端绘图领域中,OPENGL的地位是不可取代的。
OPENGL与硬件无关,它可以在不同的平台之间进行移植。所以支持OPENGL的软件具有很好的移植性,可以获得非常广泛的应用。因为OPENGL是图形的底层图形库,没有提供几何实体图元,所以不能直接以描述场景。但是,通过一些转换程序,可以很方便地将CAD、3dsmax等3d图形设计软件制作的DXF和3DS模型文件转换成OPENGL的顶点数组。
 OPENGL是很基础的,在它上面还有很多高级的图形库,如open inventor、cosmo3d、optimizer等。其中open inventor应用是最为广泛的。这款软件是基于OPENGL面向对象的工具包,提供创建交互式3d图形应用程序的对象和方法,提供了预定义的对象和用于交互的事件处理模块,创建和编辑3d场景的高级应用程序单元,有打印对象和用其他图形格式交换数据的能力。
OPENGL的发展一直处于一种较为迟缓的事态,每次版本的提高、新增的技术很少,基本都是对其中部分做出一些完善和修改。1992年7月,SGI公司发布了OPENGL的1.0版本,随后又与微软公司共同开发了windows NT版本的OPENGL,从而使一些原来必须在高档图形工作站上运行的大型3d图形处理软件也可以在微机上运用。后来更新的1.1版本比1.0的性能有许多提高,并且加入了一些新的功能。其中包括改进打印机支持,在增强元文件中包含了OPENGL的调用,提高顶点位置、法线、颜色、纹理坐标、多边形边缘标识的传输速度等等。后来有发行了2.0的版本,首先要做的就是与旧版本之间的完整兼容性,同时在定点与像素及内存管理上与directx共同合作以维持均势。
如今,OPENGL作为一种用于实时3d图形的工业标准API,已经得到了广泛的认可和接受,从计算机、工作站到超级计算机,都能实现高性能的三维图形功能,具有广泛的抑制性,所以,OPENGL已经成为目前三维图形标准,并得到了迅速发展和广泛应用。
OPENGL功能特点:
OPENGL    是一个开放的三维图形软件包,它跟窗口系统和操作系统是独立起来的,以这个为基础所开发出来的应用程序是可以十分方便地在各个平台上移植。OPENGL是和C++紧密接口的,来方便实现有关计算和图形计算。
OPENGL有七大功能:
1、 模型的绘制:OPENGL图形库除了提供基本的点、线、多边形的绘制函数外,还提供了复杂的三维物体例如球、多面体、茶壶等以及复杂的曲线曲面绘制函数。所有几何物体最终都是按定点的定义进行绘制的,所以只要构造出物体的定点三维模型就可以把物体绘制出来。
2 、变换:OPENGL图形库的变换主要包括基本变换和投影变换。基本变换又包括平移、缩放、旋转、镜像四种变换,投影变换有平行投影和透视投影。它的变换方法可以减少算法的运行时间,提高三维图形的显示速度。
3 、颜色模式设置:有两种颜色模式,分别是RGB模式和颜色索引。在RGB模式下,所有的颜色都是用红、绿、蓝三个颜色分量来表示的。在颜色索引模式下,每个像素点的颜色由查色表中的某个颜色的索引值来表示对RGB的值是未定对应的。
4、 光照和材质设置:OPENGL有自发光、环境光、漫反射光和高光。物体的材质使用光反射率来表示的。没有光照提供重要的视觉感应,三维物体看起来就没那么逼真了。可以调节OPENGL中光照和物体在场景中的关系来产生出各种不同的效果。
5 、纹理映射:此功能可以让物体表面的细节表现得很逼真。纹理映射功能在三维图形的绘制中被广泛使用,缺少模型表面的具体细节是会让模型显得不真实。
6 、图像功能:OPENGL支持两外两种重要的图形对象类型,一种是位图,可以生成简单图像的单色掩码,另外一种是图像。图像和位图都是由矩形的像素数组组成的。
7 、实时动画:OPENGL通过支持双缓存功能来实现实时动画,双缓存就是前缓存和后缓存。
除此之外,OPENGL还可以实现一些特殊的效果如深度暗示、运动模糊。
第2章  课题背景研究  2.1 关于OPENGL虚拟仿真设计的背景分析
     虚拟仿真是一种体验虚拟世界的计算机系统。这种虚拟世界是由计算机生成,可以是现实世界的再现,也可以是生活中不可能出现的事物的再现,用户可以借助视觉、听觉和触觉等过重感官和虚拟世界进行自然的交互。虚拟仿真技术包含了很多高科技成果,有计算机技术、计算机图形学、视觉生理学、视觉心理学、仿真技术、微电子技术、多媒体技术、信息技术、软件工程、网络技术等等虚拟仿真最大的优势就是其逼真性和实时交互性。
    虚拟仿真技术的互动性和逼真性带来了娱乐的创新性升级,尤其在体验式游戏领域,带给人们从未体验过的娱乐刺激,有种身临其境的存在感,让人血脉膨胀,可以在当今压抑的生活下得到一种身心的放松,不仅在游戏上,互动多媒体技术的创新已经在多方面领域内发展,商业、生活、娱乐、艺术、教育等等。
虚拟仿真技术在工业方面也有着不小的突破,当今世界工业已经有了很大的变化,大规模的人海战术已经跟不上工业发展的步伐了,先进的科学技术呈现出了巨大的威力,特别是虚拟现实技术的应用对工业进行着一场前所未有的革命。虚拟仿真技术对工业有着很多的优点,提高企业开发效率、加强数据采集、分析、处理能力,减少决策失误、降低了企业所要面临的一些风险。
虚拟仿真在地产行业也有很大的成就,通过楼盘虚拟可提现楼盘在未来的真实景观,周边环境和配套设置,可以验证客户所购买的单位和周边环境的协调关系,通过买家的窗口可以真切的看到未来属于自己的景观。给客户提供一种崭新的方式来展示宣传楼盘,而不是就业务员费尽心思的讲而没有任何实质性的东西。还有一个优点就是可以完美的体现客户需要的设计方案,通过第一人称切换角色,给予购房者以真实的,身临其境的感受;还可以在装潢设计中,变换房间的装修材料,使购房者体验不同的装修风格设计。
虚拟仿真在数字校园方面也有重大的突破,通过三维仿真技术、数字技术、信息技术、网络技术在学校生活各个方面的融合,建立了基于GIS平台的三维数字学校管理系统。可以实现图形化、可视化和形象化状态下的校园信息查询定位、教学教育设施管理等一系列的管理。方便学生和社会大众更方便的了解学校的详细情况,是宣传推广学校的一个有效举措。
随着科技的高速发展虚拟旅游逐渐走入我们的生活,有些公司利用虚拟现实技术通过互联网和制作的仿真场景到达自己想去的地方。这就是所谓的虚拟旅游,省钱省时省力啊。其方法是通过实地拍照,到现场测量为基础,可以形成真实的旅游景点再现。通过虚拟场景的漫游了解和体验旅游景点。这在以后的发展肯定会越来越大,会成为人们不可缺少的一部分。
在其它行业领域,虚拟仿真都有所成就:石油、电力、煤炭、机器人、虚拟医学工程、航天航空、科学可视化、军事演习、船舶工业。
虚拟仿真的发展如此迅速,利用OpenGL设计一个简单的虚拟交互来感受下虚拟仿真的一些优点。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/ysl/szmt/334.html

好棒文