文档介绍:河北工业大学硕士学位论文
基于 OpenGL 的三维游戏引擎的研究
摘要
游戏引擎是最近十年出现的新名词,也是当前计算机应用技术领域倍受关注的一个研
究方向。游戏引擎是同一类游戏中经过规范化的可复用部件,它有机结合了多种子引擎,
包括图形、声音、脚本、数据库、网络、设备等模块,开发者可以使用这些模块定制游戏。
使用游戏引擎,游戏开发人员可以不用花过多精力去处理系统架构、内存管理、图像绘制
等一些底层的技术,可以直接使用引擎来进行游戏开发,从而大大缩短游戏开发时间。课
题研究背景是基于 OpenGL 的 3D 游戏引擎,OpenGL 是一个性能优越的图形应用程序接口,
有很好的跨平台性和可扩展性等优点,却没有提供任何交互手段,也没有音乐音效处理功
能;当前基于 OpenGL 的 3D 游戏引擎在骨骼动画方面是以 md2、md3 格式为主,在逼真度
和灵活性上有缺陷。课题在上述问题上引入了相应的解决方案,并在其它方面做了一些扩
展,主要研究内容如下:
1、研究了用于支持三维建模与动画的计算机图形学基本知识、与三维游戏引擎相关
的虚拟现实技术、以及专门的三维编程软件包 OpenGL。
2、分析了整个 3D 引擎的框架结构,并深入研究了各主要模块的功能。
3、课题引入了 DirectX 中 DirectInput、DirectMusic 和 DirectSound 技术、引入了
先进的 mdl 骨骼动画编程技术、粒子特效技术,并在目前的碰撞检测技术基础上提出了圆
柱体包围盒碰撞检测技术。
课题利用上述技术优化了三维游戏引擎,并最终以三维游戏加以实现。
关键词:OpenGL,3D 引擎,计算机图形学,mdl 骨骼动画,碰撞检测
i
河北工业大学硕士学位论文
第一章绪论
§1-1 研究背景
三维游戏引擎技术,简单来说就是把一个三维游戏程序中可以重复利用的部分,以精巧的模块组织
起来,将其规格化与最佳化,以利于程序重用的技术。三维游戏引擎目前在很多领域内都有很广泛的应
用,如军方的模拟实战系统,以及三维网络游戏等, 三维游戏引擎的发展代表了计算机硬件和软件开发
的最新技术,实时性,交互性以及强大的漫游功能是其主要特点[1]。
游戏引擎是指为制作游戏需要而事先编制好的一系列初始化、图形处理、角色控制、碰撞检测等有
关的 API 函数,它相当于游戏程序员的开发工具包,有些商业化的游戏引擎同时还提供了关卡和角色
编辑器。这样游戏程序员就不必从最低层开始编写游戏,只需要调用游戏引擎中相关的 API 函数。同
样在游戏里,剧情的进行、形形色色的角色衬托、各种场景的变换,也都不是外行人想象中的用什么高
层的程序语言一字一句控制写成的,而是由游戏引擎事先就约定俗成一种模式,一个大体的框架,然后
依靠一些复杂的数据库来组织完成的[2]。
可以把游戏的引擎比作赛车的引擎,而众所周知,引擎是赛车的心脏,决定着赛车的性能和稳定性,
赛车的速度、操纵感这些直接与本车手相关的指标都是建立在引擎的基础上。游戏也是如此,玩家所体
验到的剧情、关卡、美工、音乐、操作等内容都是由游戏引擎直接控制的,它扮演着中场发动机的角色,
把游戏中的所有元素捆绑在一起,在后台指挥它们同步、有序地工作,简单地说,引擎就是“用于控制
所有游戏功能的主程序,从计算碰撞、物理系统和物体的相对位置,到接受玩家的输入,以及按照正确
的音量输出声音等”[3]。
无论是 2D 游戏还是 3D 游戏,无论是角色扮演游戏、即时战略游戏、冒险解谜游戏或者是动作射击
游戏,都有这样一段起控制作用的代码。只是经过不断的进化,如今的游戏引擎已经发展为一套由多个
子系统共同构成的复杂系统,从建模、动画,到光影、粒子特效;从物理系统、碰撞,到文件管理、网
络特性;还有专业的编辑工具和插件,几乎涵盖了开发过程中所有重要环节[4]。
三维图形技术、虚拟现实技术是三维游戏设计中最重要的技术领域,也是其发展的关键技术之一。
而随着虚拟现实、分布式计算、分布式仿真和网络三维游戏的发展,对游戏设计提出更高的要求,不仅
要求模型在图形上高度逼真、具有实时响应能力,而且也要求模型具有物理属性和行为能力即模型能够
按照客观规律自主运动[5]。因此本文将主要针对游戏 3D 技术中实现三维场景的技术、mdl 骨骼动画编程
技术、粒子特效、和场景中的碰撞检测与碰撞反应的技术进行深入研究。
1
/
基于 OpenGL 的三维游戏引擎的研究
§1-2 国内外研究现状
游戏是一种教育方