ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:2.87MB ,
资源ID:14505850      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-14505850.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(计算机科技与应用专业毕业论文基于Opengl的3D游戏设计.docx)为本站会员(b****5)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

计算机科技与应用专业毕业论文基于Opengl的3D游戏设计.docx

1、计算机科技与应用专业毕业论文基于Opengl的3D游戏设计摘 要随着时代进步,从简单的色块堆砌而成的画面到数百万多边形组成的精细人物,游戏正展示给我们越来越真实且广阔的世界。对于近几年游戏的发展来说,老式2D游戏的画面、游戏性、互动性已经无法满足各类玩家的需要,而3D游戏无论是在游戏画面的真实程度、操作的流畅程度、以及故事背景方面的优越性都非常突出。在这种发展趋势下,2D游戏所占领的市场将会变得微乎其微,3D游戏的开发将会成为整个游戏制作领域的一种趋势。针对于3D游戏开发,OpenGL作为一个3D的应用程序编程接口(API)来说,是非常合适的。OpengGL作为与硬件无关的软件接口,只要操作系

2、统使用了OpengGL适配器就可以打到相同的效果。它又是一个开放图形库,在跨平台领域上非常便利。并且它具有优良的移植性,是广大3D游戏开发者的首选。本论文为利用OpengGL进行3D射击游戏的设计与开发,采用碰撞检测、粒子系统、MD2模型绘制、3D声效等技术,最终实现一个射击游戏。关键词:游戏, 基于OpengGL,三维, 射击游戏Abstract: Along with the progress of the times,fine characters from simple color swatch built the picture to the millions of polygons

3、, the game is to show us more and more real and the wide world.For the development of the game in recent years, the old 2D games screen ,games andinteractive have been unable to meet all kinds of game player needs, while 3D regardless of the game on the game screen reality, smooth operation, and the

4、 background of the story of the superiority is very prominent.In this trend, 2D game occupied market will become very little, the development of 3D games will become the game made a trend in the field.For 3D game development, OpenGL as the application programming interface of a 3D (API), is a very s

5、uitable. OpengGL as the interface of the software and hardware independence, as long as the operating system uses the OpengGL adapter can reach the same effect. It is also an open graphics library, cross-platform in areas very convenient. And it has good transplantation, is the 3D game developers ch

6、oice.In this paper, the design and development of 3D shooting game is to use OpengGL, the collision detection, particle system, MD2 model, 3D sound rendering technology, the ultimate realization of a shooting game.Keywords game, OpengGL, 3D, shooting game1 引言.1参考文献 37附录. 391 引 言1.1 课题的背景及意义随着社会的进步,人

7、们生活节奏在逐渐加快,在工作学习之余,游戏娱乐成为了人们释放压力的一种途径,而电子游戏所具有的操作多样、内容丰富、不受场地限制等特点,成为了人们业余生活的一部分。而伴随着电子产品的不断发展,家用计算机的配置越来越高,越来越多的人们对于游戏的要求已经不仅仅只是好玩而已。游戏的耐玩程度,内容的丰富程度,操作的复杂程度,画面的逼真程度等,都是一款游戏好坏的判定依据。3D游戏作为集立体感、真实感于一身的强表现力游戏,已经占据了电脑游戏领域绝大部分市场。3D游戏的设计与开发则会成为当下游戏发展的一种趋势。OpenGL作为一个专业的图形程序接口,配合C+等开发语言,对于3D游戏的设计与实现是非常占优势的。

8、OpenGL是一个与硬件无关的软件接口,它具有非常良好的移植性,而且它是行业领域中最为广泛接纳的 2D/3D 图形 API,这些特点都使它深受大部分3D游戏开发者的喜爱。基于OpenGL三维场景的强大功能是它的实时观察与漫游技术能够绘制高真实三维图形和实现交互式视景仿真和虚拟现实,因此被广泛应用与三维游戏、虚拟现实等领域。1.2 毕业设计的任务在此次毕业设计中,需要完成的任务有:阅读计算机图形学和相应的动画设计技术、用OpenGL/3DMax实现三维场景建模和游戏设计、VC或VB图形编程等文献和技术资料。分析一些典型的基于OpenGL/3DMax的三维场景游戏设计实例的特点,掌握三维场景建模和

9、游戏动画设计技术,以及在游戏开发中的交互式技术。掌握用VC或VB、OpenGL/3DMax建模工具等开发交互式三维场景游戏软件的基本方法。开发相应的软件系统,建立交互式三维场景游戏模型,设计并实现各游戏的功能和任务模块,要求有良好的交互性和3D视觉效果。软件中应包括各游戏开发的基本原理说明和实例功能演示。根据3D游戏设计的实际需求,以及基于OpenGL的特点上,此次应用C+与OPenGL来设计开发3D游戏。系统设计的基本内容:本文以基于游戏拥有虚拟性这一特性来设计开发。重点讨论了3D虚拟游戏与现实的人机交互方式、数据的分析处理以及3D游戏开发底层的支持,本文中我们的主要研究内容如下:3D游戏数

10、据处理设计:针对现实游戏与3D游戏的区别,设计合适虚拟游戏开发技术的游戏数据处理系统,对玩家的动作数据进行捕获,传输和计算;3D游戏人机交互设计:针对3D游戏特点以及玩家对人机交互需求的变化,对游戏人机交互进行设计;3D游戏三维底层支持设计:提供对3D游戏系统开发和实现的技术支持;我们对3D虚拟游戏系统的设计采用模块化设计思想,不同功能之间使用接口方式相互调用,方便对游戏系统的连接,调试和扩展。1.3 国内外现状的研究3D游戏开发方面:从技术上来看,国外的3D游戏开发技术已经趋于成熟,3D游戏引擎也日渐完善,大多数高质量的3D游戏均产于国外。无论从画面的真实细腻程度上讲,还是从整个游戏操作的流

11、畅程度来讲,亦或者从游戏的故事情节上来看,国外的3D游戏均已达到一个很高的境界。反观国内,3D游戏近年来在刚刚起步,技术不够成熟,也没有很好的游戏引擎,要达到国外的水平,3D游戏的开发在国内还是有很多要解决的问题。从经济上来看,国外的3D游戏制作公司规模大,不仅有商品的收入,而且版权上也有法律的保障。在国内,由于盗版软件的泛滥,版权问题很难得到保障,游戏开发商制作出来的游戏很难保证不被破解,开发商损失严重,经济利益难以保证。从社会的支持上来看,对于3D游戏的发展,由于文化区域的不同,社会上对这不是采取一种打压的态度,这使得游戏的开发有一个很安稳的环境。而国内,因为文化原因,大多数的家长害怕自己

12、的孩子沉迷于游戏,而荒废正业,这使得3D游戏的开发处在一个艰难的阶段,因为有绝大多数的家长还是希望自己的孩子能远离这些东西。无论从技术上、还是经济上,还是社会的态度上,相比于国外,3D游戏的制作开发都有非常长的一段路要走。OpenGL方面:在国外OpenG是具有一定的生命力的,唯一能够取代微软对3D图形技术的完全控制的API。但是由于Silicon Graphics公司已经不再以任何让微软不悦的方式推广OpenGL,所以采用OpenGL开发游戏还是具有一定风险。鉴于OpenGL的特点,还是有许多非常重要的开发人员仍然在使用OpenGL进行游戏的开发与创作。因此,硬件开发商目前正在想法设法地加强

13、硬件对OpenGL的技术支持。现阶段,OpenGL在图形设备以及相关专业占据着统治地位,这是因为Direct3D目前还不能支持这些领域的应用。目前,国内的3D游戏开发技术正处于赶超国外的发展时期,从游戏的创意、游戏的策划、游戏的研究开发与游戏的实现,再到到游戏的运营与维护,都需要大量的知识值得学习。现阶段,由于 Linux 操作系统免费开放源码,以及在程序开发方面有很大的优势,所以在开发领域Linux平台被大力推广,基于Linux 的各种应用软件也层出不穷,因此跨平台3D游戏开发也越来越受重视。由于OpenGL是一种与平台无关的三维图形开发库,在各种语言结合应用OpenGL 函数进行主框架开发

14、并都可以开发出3D游戏。但是由于框架开发的平台相关性使得开发出来的游戏无法跨平台编译运行,因此glut+OpenGL 的方式成了一种很好的选择。1.4 开发技术与开发平台1.4.1 开发技术3D游戏设计是以计算机三维图形学作为游戏的技术基础。在游戏的设计制作阶段,3D游戏世界里所有物体都是以模型的方式建立的,游戏中的立体感和光影效果都是通过对不同的光源和光照的特点进行实时3D渲染而成。3D游戏把游戏世界中的每个物体都看作是一个立体的对象,三维图形可以包含对象360度的信息,能从各个角度去观察游戏场景。3D游戏设计主要的功能模块有:3D引擎模块:除了对游戏提供异常处理、日志系统、资源管理等功能,

15、主要是对游戏提供3D图形的效果渲染以及3D图形的显示。系统支持模块:主要提供了包括定时器管理、窗口管理等功能在内,操作系统功能使用的封装以及引擎在当前操作系统下驱动的功能。场景管理模块:主要提供了对3D游戏引擎中的场景的管理与维护功能,采用多叉树的方法对总场景进行管理与分割的功能。人机交互模块:主要提供了对输入设备的管理,获取记录输入设备产生的响应,例如键盘管理、手柄管理、鼠标管理等功能。数学库:主要提供了对3D游戏游戏引擎所需要的数学库的支持,包括三角函数计算、四元数、矩阵、向量等;音频处理模块:主要提供了对音频文件相关支持,如音频效果的处理、音频文件的播放等。1.4.2 开发平台关于3D游

16、戏开发,一般是使用C+与OpenGL结合或是采用C+与DirectX结合的方式进行设计开发,这对程序员有很高的要求。当开发大型3D游戏时,这种方式的工作量与困难程度会达到一个令人难以想象的地步。如今最有效的开发还是利用游戏引擎进行游戏的开发。本文主要是研究3D射击游戏的制作,设计开发一个很简单的3D射击类游戏。利用VC+6.0与OpenGL结合,进行游戏制作,模型则是采用的MD2模型。OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形

17、库。Visual C+ 6.0,是微软推出的一款C+编译器,简称VC或者VC6.0,是一款将“高级语言(编程序言)”翻译为“低级语言(机器语言)”的程序。Visual C+是一个功能强大的可视化软件开发工具。自微软公司推出Visual C+后,随着其版本的更新换代,Visual C+已经成为专业程序员开发软件的首选工具。2 OpenGL简介与3D图形学相关2.1 OpenGL简介OpenGL(全写Open Graphics Library)是个定义了一个跨编程语言、跨平台的编程接口的规格,它用于三维图象(二维的亦可)。OpenGL是个专业的图形程序接口,是一个功能强大,调用方便的底层图形库。O

18、penGL适用于从普通PC到大型图形工作站等各种计算机,并可与各种主流操作系统兼容,从而成为占据主导地位的跨平台专业3D图形应用开发包,进而也成为该领域的行业标准。2.1.1 OpenGl特点OpenGL作为一个性能卓越的图形应用编程接口(API),适用于广泛的计算机环境,并已成为目前三维图形开发标准,是从事三维图形开发工作的技术人员所必须掌握的开发工具。OpenGL的应用领域十分广泛,如军事、电视广播、CAD/CAM/CAE、娱乐、艺术造型、医疗影像、虚拟现实等。它具有以下特点,如图2-1:图2-1 OpenGL特点图形质量好、性能高:无论是三维动画、CAD,还是可视化计算机、视觉模拟等,都

19、利用了OpenGL高性能、高图形质量的特点。这个特点使得程序员在医学图像、虚拟现实、CAM/CAD/CAE、广播和等领域中创造和显示出超乎想象的图形。行业标准:OpenGL ARB作为独立的联合委员会,制定了OpenGL的规范文档。伴随硬件厂商对OpenGL的硬件支持,OpenGL成为了是唯一独立于供应商的、真正开放的跨平台图形标准。 稳定性:在任何平台上都能执行OpenGL,而且它高版本兼容低版本,用来保证已经开发完成的应用程序不会失效。 可靠性和可移植性:利用OpenGL技术开发的应用图形软件与硬件无关,只要硬件支持OpenGL API标准就可以了,也就是说,OpenGL应用可以运行在支持

20、OpenGL API标准的任何硬件上。 可扩展性:OpenGL是低级的图形APi,它具有充分的可扩展性。只要厂商提供OpenGL扩展,就可以轻松实现硬件特有功能。利用OpenGL扩展,OpenGL实现者可以添加新的处理算法。可适应性:基于OpenGL API的图形应用程序可以运行在许多系统上,有次,OpenGL应用程序可以适应开发人员选择的各种目标平台。 易用性:OpenGL具有良好的结构、直观的设计和逻辑命令。与其它的图形程序包相比,OpenGL应用程序只有很少的代码,因此执行速度快。此外,OpenGL封装了有关基本硬件信息,使开发人员无须针对具体的硬件进行专门的设计。2.1.2 OpenG

21、L功能OpenGL是一个独立于操作系用和窗口系统开放的三维图形软件包,以OpenGL为基础开发的应用程序可以十分方便地在各种平台间进行移植;OpenGL还可以与VC+紧密接口,便于实现图形的有关计算和图形算法,可保证算法的正确性和可靠性;OpenGL使用简便,效率高。它具有以下功能:图2-2 OpenGL功能建模:OpenGL图形库除了提供基本的点、线、多边形的绘制函数外,还提供了复杂的三维物体(球、锥、多面体、茶壶等)以及复杂曲线和曲面绘制函数。变换:OpenGL图形库的变换包括基本变换和投影变换。基本变换有平移、旋转、缩放、镜像四种变换,投影变换有平行投影(又称正射投影)和透视投 影两种变

22、换。其变换方法有利于减少算法的运行时间,提高三维图形的显示速度。颜色模式设置:OpenGL颜色模式有两种,即RGBA模式和颜色索引(Color Index)。光照和材质设置:OpenGL光有自发光(Emitted Light)、环境光(Ambient Light)、漫反射光(Diffuse Light)和高光(Specular Light)。材质是用光反射率来表示。场景(Scene)中物体最终反映到人眼的颜色是光的红绿蓝分量与材质红绿蓝分量的反射率相乘后形成的颜色。纹理映射(Texture Mapping)。利用OpenGL纹理映射功能可以十分逼真地表达物体表面细节。位图显示和图象增强图象功能

23、除了基本的拷贝和像素读写外,还提供融合(Blending)、抗锯齿(反走样)(Antialiasing)和雾(fog)的特殊图象效果处理。以上三条可使被仿真物更具真实感,增强图形显示的效果。双缓存动画(Double Buffering)双缓存即前台缓存和后台缓存,简言之,后台缓存计算场景、生成画面,前台缓存显示后台缓存已画好的画面。此外,利用OpenGL还能实现运动模糊、深度暗示等特殊效果,利用这些效果可以实现消隐算法。2.1.3 OpenGL渲染实现绝大部分OpenGL操作顺序都十分相似,即就是OpenGL渲染管线的一系列相关的处理阶段。它的操作顺序如图2-2:图2-3 OpenGL渲染流程

24、显示列表:任何数据,不管它所描述的是几何图形还是像素,都可以保存在显示列表中,供当前货以后使用。求值器:所有的几何图元最终都要根据定点来描述。基于顶点的操作:对于顶点数据,接下里的一个步骤就是“基于顶点的操作”,就是把顶点变换为图元。图元装配:图元装配的一个主要部分就是裁剪,它的任务是消除那些位于一个半空间之外的那部分几何图元,而这个班空间是有一个平面所定义的。点裁剪就是简单地接受或拒绝顶点,直线或多边形裁剪则能够添加额外的顶点,具体取决于直线或多边形是如何进行裁剪的。像素操作:首先,来自系统内存的一个数组中的像素进行解包,从多种格式之一的解包为适当数量的成分。接着,数据被缩放、便宜,并根据像

25、素图进行处理。处理结果先进行截取,然后或者写入到纹理内存,或者发送到光栅化阶段。纹理装配:OpenGL应用程序可以在几何物体上应用纹理图形,使它们看上去更为逼真。光栅化:光栅化就是把几何数据和像素数据转换为片段的过程。片段操作:在数据使劲存储到帧缓冲区前,将要执行一系列操作。这些操作可能会修改甚至丢弃这些片段。所有这些操作都可以被启用或者禁用。2.2 3D图形学相关2.2.1 向量与矩阵向量 ,在数学中的定义是,既有大小又有方向的量。三维的向量,分别表示的是沿X坐标方向、Y坐标方向和Z坐标方向的位移。3D程序是使用4D向量,这样主要方便进行移动变换,第四维通常只取 “1” 。矩阵 ,在数学中的

26、定义是,纵横排列的二维数值列阵。3D程序是使用的44 的矩阵对向量,这样主要方便进行移动变换。2.2.2 变换变换可以分为平移变换、旋转变换、缩放变换。平移变换:可以被认为是把一个点从3D空间中的一个坐标位置移动到另一个坐标位置。要对一个点进行平移变换,只需要将每个坐标轴的增量值,或者说沿每个坐标轴的平移数值,加上要平移坐标点的原始坐标值就行了。旋转变换:在x轴旋转时,其x轴坐标表示不变。关于y轴的旋转与z轴的旋转也是同样的道理。要让一个点绕某一坐标轴旋转,就用此坐标轴旋转矩阵乘以这个点。旋转变换所形成的连续组合变换的思路是合并矩阵,将几个变换矩阵合并成一个变换矩阵,先绕z轴转,再绕y轴转,最

27、后绕x轴旋转。缩放变换:通过将顶点与一个缩放因子相乘的方法来缩放顶点。2.2.3投影在3D图形学中,要涉及到两种投影,一种是平行投影,另一种则是透视投影。平行投影,即就是在一束平行光线照射下形成的投影。平行投影可以分两步来完成,第一步先将投影的平面转换到3D空间中的xy平面上,第二部就是除去所有可见点z项的坐标信息。透视投影,则是用中心投影法将形体投射到投影面上,从而获得的一种较为接近视觉效果的单面投影图。透视投影符合人们心理习惯,即离视点近的物体大,离视点远的物体小,远到极点即为消失,成为灭点,如图2-4:图2-4 投影2.2.4 3D裁剪当物体的世界坐标超值超过屏幕视区范围时,对物体进行透

28、视变换操作就可能引起错误。特别在z值为0时,错误就会发生;当z轴为负数时,物体处在观察者后面,就无需进行变换。解决这一问题通常是创建一个视体(视体其就是3D空间中相对于观察者为可见的一个区域)。在视体外的任何物体都不能被观察者看到,因此就不能对其进行变换。对于透视投影来说,视体为金字塔形,如图2-5:图2-5 透视投影的物体总是金字塔形状3 游戏设计3.1 游戏的组成一个游戏作品可以分为游戏引擎和游戏资源两大部分。游戏引擎是一个为运行某一类游戏的机器设计的能够被机器识别的代码(指令)集合。它像一个发动机,控制着游戏的运行。游戏资源包括声音、图象、动画等部分,游戏=引擎(程序代码)+资源(声音、

29、动画、图象等)。游戏引擎则是按游戏设计的要求顺序的调用这些资源。对于一个游戏的开发来说,游戏资源反映了一个游戏所能带给人们的感官刺激,而游戏引擎的优良程度则是这款游戏可玩性的一个重要指标。对于一个简单的游戏来说,它的游戏引擎可以分成输入设备、游戏逻辑、场景数据库、音频子系统、场景物体对象、纹理处理、物理子系统、粒子系统。它们之间的关系如图3-1:图3-1 游戏引擎组成在实际运行中,引擎通过设备输入子系统接受输入,并向游戏逻辑子系统发送相应的消息,然后游戏逻辑子系统处理相应的消息,并执行相应的一个游戏循环。在单一游戏循环之中,游戏逻辑子系统对如如做出反应,对游戏物体对象之星所需要的所有物理计算、

30、处理碰撞检测和反应、载入和销毁物体对象、在场竞争移动视点、以及播放游戏运行时所需要的所有声音。3.2 游戏的结构对于游戏的开发,需要有一个游戏结构的设计,可以开发更多的组件以实现特殊的性能和功能,来保障游戏软件的平稳运行。游戏与其它应用软件有着一定的区别,它不是我们的单线、事件驱动或顺序逻辑的程序。一个3D游戏本质上是一个持续不断的while循环,它执行逻辑并在屏幕上不间断的绘制更新图像,如图3-2:图3-2 一个游戏的组成3.3 本游戏设计在本次设计中所展示的是一个3D射击类游戏,要求玩家在限时内,在场景冲找出所有敌人并将其消灭。游戏中所包括的性能有粒子爆炸效果、MD2模型的载入、动画和边界

31、碰撞检测、视点的控制和移动、声音效果、简易AI系统、地形的绘制与生成。在组成上则是采用游戏引擎+游戏资源的设计方法来设计并实现游戏。游戏框架结构如图3-3、图3-4、图3-5和图3-6:图3-3 游戏工程结构图3-4 source files内含结构图3-5 header files内含文件结构图3-6 external dependencies内含文件结构下面,这里主要说明一下,此游戏中所采用的关键技术。4 关键技术4.1 摄像机漫游在3D游戏中,用户通常可以通过鼠标或者键盘操作角色在场景中移动,进而完成各种有意思、富有挑战的任务,大道场景漫游的效果。这是人机交互的一种重要体现,能够大大提高游行可玩性,这就需要用到漫游。而在三维场景漫游中,观察各可以通过鼠标或键盘来控制视点的位置、视向和参考方向。当视点的位置、视向和

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2