您好,欢迎访问三七文档
当前位置:首页 > 机械/制造/汽车 > 汽车理论 > 基于OpenGL的三维游戏引擎的研究
河北工业大学硕士学位论文基于OpenGL的三维游戏引擎的研究姓名:刘志强申请学位级别:硕士专业:计算机应用技术指导教师:马建红20081101河北工业大学硕士学位论文i基于OpenGL的三维游戏引擎的研究摘要游戏引擎是最近十年出现的新名词,也是当前计算机应用技术领域倍受关注的一个研究方向。游戏引擎是同一类游戏中经过规范化的可复用部件,它有机结合了多种子引擎,包括图形、声音、脚本、数据库、网络、设备等模块,开发者可以使用这些模块定制游戏。使用游戏引擎,游戏开发人员可以不用花过多精力去处理系统架构、内存管理、图像绘制等一些底层的技术,可以直接使用引擎来进行游戏开发,从而大大缩短游戏开发时间。课题研究背景是基于OpenGL的3D游戏引擎,OpenGL是一个性能优越的图形应用程序接口,有很好的跨平台性和可扩展性等优点,却没有提供任何交互手段,也没有音乐音效处理功能;当前基于OpenGL的3D游戏引擎在骨骼动画方面是以md2、md3格式为主,在逼真度和灵活性上有缺陷。课题在上述问题上引入了相应的解决方案,并在其它方面做了一些扩展,主要研究内容如下:1、研究了用于支持三维建模与动画的计算机图形学基本知识、与三维游戏引擎相关的虚拟现实技术、以及专门的三维编程软件包OpenGL。2、分析了整个3D引擎的框架结构,并深入研究了各主要模块的功能。3、课题引入了DirectX中DirectInput、DirectMusic和DirectSound技术、引入了先进的mdl骨骼动画编程技术、粒子特效技术,并在目前的碰撞检测技术基础上提出了圆柱体包围盒碰撞检测技术。课题利用上述技术优化了三维游戏引擎,并最终以三维游戏加以实现。关键词:OpenGL,3D引擎,计算机图形学,mdl骨骼动画,碰撞检测基于OpenGL的三维游戏引擎的研究iiRESEARCHON3DGAMEENGINEBASEDONOPENGLABSTRACTGameengineisanewterminthelatesttenyears,andalsoahotspotofcurrentcomputerapplicationtechnology.Gameengineisthereusablepartofaclassofgamewhichhasbeenregularized,itcontainsmanysub-engines,includinggraphics,sound,script,database,network,deviceandothermodules,userscanusethesecomponentstocustomizegame.Withtheengine,gamedeveloperscanconcentrateongamedesignandignoregamearchitectureandrenderingetc.Thegamedeveloperscanshortentheperiodofgamedevelopmentusingtheengine.Thebackgroundofthisthesisisa3DgameenginebasedonOpenGL.OpenGLisanefficientAPIofthegraphicprogram.Itincludesmanymerits,suchascross-platformsupportandexpansibility,etc.However,itdoesn’tsupportanymeansofoperation,yetdoesn’tsupportthefunctionofdealingwithmusic;Mostofthecharacteranimationsaremd2andmd3informatin3DgameenginebasedonOpenGLatpresent.Buttheseformatshavesomedefectsinsimulationandflexibility.Sointhisthesisweintroducesomesolutionsandwealsosupplysomeexpansionsinotheraspects.Themaincontentofthisthesisis:1.Wehavestudiedthebasicknowledgeofcomputergraphicsthatisrelatedto3Dmodelandmovies,thevirtual-realityrelatedto3Dgameengine,andthetechnologyofOpenGLthatisaprogramsoftwarepackage.2.Theframestructureandthefunctionofmainmodulesarestudieddeeplyinthisthesis.3.ThisthesisintroducesthetechnologyofDirectInput,DirectMusic,DirectSound,mdlboneanimation,particleeffectandbasedontheprogramofcollisiondetectionatpresent,weproposethetechnologyoftheboundingcylindercollisiondetection.The3Dgameengineisoptimizedbyusingthetechniquesabove.Anditiscompletedbymeansofa3Dgamelast.KEYWORDS:OpenGL,3Dengine,computergraphics,mdlboneanimation,collisiondetection原创性声明本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任由本人承担。学位论文作者签名:日期:关于学位论文版权使用授权的说明本人完全了解河北工业大学关于收集、保存、使用学位论文的规定。同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前提下,学校可以适当复制论文的部分或全部内容用于学术活动。(保密的学位论文在解密后适用本授权说明)学位论文作者签名:日期:导师签名:日期:河北工业大学硕士学位论文1第一章绪论§1-1研究背景三维游戏引擎技术,简单来说就是把一个三维游戏程序中可以重复利用的部分,以精巧的模块组织起来,将其规格化与最佳化,以利于程序重用的技术。三维游戏引擎目前在很多领域内都有很广泛的应用,如军方的模拟实战系统,以及三维网络游戏等,三维游戏引擎的发展代表了计算机硬件和软件开发的最新技术,实时性,交互性以及强大的漫游功能是其主要特点[1]。游戏引擎是指为制作游戏需要而事先编制好的一系列初始化、图形处理、角色控制、碰撞检测等有关的API函数,它相当于游戏程序员的开发工具包,有些商业化的游戏引擎同时还提供了关卡和角色编辑器。这样游戏程序员就不必从最低层开始编写游戏,只需要调用游戏引擎中相关的API函数。同样在游戏里,剧情的进行、形形色色的角色衬托、各种场景的变换,也都不是外行人想象中的用什么高层的程序语言一字一句控制写成的,而是由游戏引擎事先就约定俗成一种模式,一个大体的框架,然后依靠一些复杂的数据库来组织完成的[2]。可以把游戏的引擎比作赛车的引擎,而众所周知,引擎是赛车的心脏,决定着赛车的性能和稳定性,赛车的速度、操纵感这些直接与本车手相关的指标都是建立在引擎的基础上。游戏也是如此,玩家所体验到的剧情、关卡、美工、音乐、操作等内容都是由游戏引擎直接控制的,它扮演着中场发动机的角色,把游戏中的所有元素捆绑在一起,在后台指挥它们同步、有序地工作,简单地说,引擎就是“用于控制所有游戏功能的主程序,从计算碰撞、物理系统和物体的相对位置,到接受玩家的输入,以及按照正确的音量输出声音等”[3]。无论是2D游戏还是3D游戏,无论是角色扮演游戏、即时战略游戏、冒险解谜游戏或者是动作射击游戏,都有这样一段起控制作用的代码。只是经过不断的进化,如今的游戏引擎已经发展为一套由多个子系统共同构成的复杂系统,从建模、动画,到光影、粒子特效;从物理系统、碰撞,到文件管理、网络特性;还有专业的编辑工具和插件,几乎涵盖了开发过程中所有重要环节[4]。三维图形技术、虚拟现实技术是三维游戏设计中最重要的技术领域,也是其发展的关键技术之一。而随着虚拟现实、分布式计算、分布式仿真和网络三维游戏的发展,对游戏设计提出更高的要求,不仅要求模型在图形上高度逼真、具有实时响应能力,而且也要求模型具有物理属性和行为能力即模型能够按照客观规律自主运动[5]。因此本文将主要针对游戏3D技术中实现三维场景的技术、mdl骨骼动画编程技术、粒子特效、和场景中的碰撞检测与碰撞反应的技术进行深入研究。基于OpenGL的三维游戏引擎的研究2§1-2国内外研究现状游戏是一种教育方式,大量青少年在享受游戏的同时,也不自觉地接受了其中的世界观和价值观,因此,游戏实际上是一种文化推广的途径。如果不重视游戏的这一项功能,国家就有可能受到前所未有的文化侵略。游戏的关键在于游戏引擎。游戏引擎包括了一套完整的游戏开发工具与运行基础,包含了开发一套游戏所需的最核心的技术。自主知识产权的游戏通用引擎是我国游戏企业参与国际竞争的核心竞争力。高性能的游戏引擎是游戏企业技术积累的最好方式,它通过封装技术难点为游戏软件提供开发包和系列工具,使得“复制”游戏成为可能,这样就可以极大缩短游戏产品开发周期,降低游戏开发的技术难度,为形成游戏市场,创造巨大经济、社会效益提供根本保证。曾经有一段时期,游戏开发者关心的只是如何尽量多地开发出新的游戏并把它们推销给玩家。尽管那时的游戏大多简单粗糙,但每款游戏的平均开发周期也要达到8到10个月以上,一方面是由于技术的原因,另一方面则是因为几乎每款游戏都要从头编写代码,造成了大量的重复劳动[6]。渐渐地,一些有经验的开发者摸索出了一种方法,他们借用上一款类似题材的游戏中的部分代码作为新游戏的基本框架,以节省开发时间和开发费用,引擎的概念就是在这种机器化作业的背景下诞生的。每一款游戏都有自己的引擎,但真正能获得他人认可并成为标准的引擎并不多。纵观九年多的发展历程,可以看出引擎最大的驱动力来自于游戏,尤其是网络游戏。1、引擎的诞生(1992年—1993年)1992年,3DRealms公司和Apojfe公司发布了一款只有2兆多的小游戏—《德军司令部》,它在整个电脑游戏发展史上占据着重要地位。这部游戏开创了第一人称射击游戏的先河,更重要的是,它在X轴和Y轴的基础上增加了一根Z轴,在由宽度和高度构成的平面上增加了一个向前向后的纵深空间。引擎诞生初期的另一部重要游戏同样是出自idSoftware公司的一款非常成功的第一人称射击游戏—《毁灭战士》(Doom)。Doom引擎在技术上大大超越了Wolfenstein3D引擎,《德军司令部》中的所有物体大小都是固定的,所有路径之间的角度都是直角,也就是说你只能笔直地前进或后退,这些局限在《毁灭战士》中都得到了突破。尽管游戏的关卡还是维持在平面上进行制作,但墙壁的厚度可以为任意,并且路径之间的角度也可以为任意,这使得楼梯、升降平台、塔楼和户外等各种场景成为可能[7]。由于Doom引擎本质上依然是二维的,因此可以做到同时在屏幕上显示大量角色而不影响游戏的运行速度。值得一提的是,尽管引擎缺乏足够的细节度,但开发者仍然在《毁灭战士》中
本文标题:基于OpenGL的三维游戏引擎的研究
链接地址:https://www.777doc.com/doc-4262236 .html