1、 目 录摘 要 .IABSTRACT .II一、 绪论 .1(一) 研究背景和研究意义 .1(二) 国内外研究现状 .1(三) 论文组织结构 .2二、 3D 游戏技术的知识系统 .2(一) 3D 图形库 .2(二) 物理引擎 .5(三) UNITY3D .8三、 车辆驾驶游戏的设计 .11(一) 游戏创意 .11(二) 游戏框架结构设计 .13(三) 游戏层次结构设计 .14四、 车辆驾驶游戏的实现 .15(一) 场景渲染实现 .15(二) 场景物理仿真实现 .21(三) 汽车动力学模拟 .22(四) 用户图形界面实现 .24(五) 网络联机模块实现 .27五、 游戏展示与性能分析 .28(一
2、) 游戏展示 .28(二) 性能分析 .30六、 项目总结 .32(一) 总结 .32(二) 下一步工作的展望 .33参考文献 .34华东师范大学学士学位论文 基于 Unity 的车辆模拟游戏的设计与实现I摘 要随着计算机技术的发展,电子游 戏的形式越来越丰富,用 户对 于电子游戏的娱乐性需求也越来越高,追求更加真实的感官体 验成为电子游戏的一条发 展趋势。作 为虚拟现实领域的一项的综合应用,3D 游戏已经在电脑、手机、机顶盒等多平台得到了普及,相对于传统的 2D 游戏,3D 游戏让用户感觉更融入,更加享受,但所依赖的计算机技术也更加复杂,计算机图形学、物理仿真等都成为 3D 游戏开发所需要的
3、重点研究方向。我国在电子游戏领域的发展与领先国家还具有一定的差距,为了振兴本国电子游 戏行业, 对这一项综合应用所涉及的技 术进行整体的梳理是完全有必要的。论文按照从设计到实现,从理 论到应用。首先介 绍了 3D 游戏的一般技术框架,之后 围绕一款基于 Unity3D 的小型的汽车驾驶游戏,使用 Unity3D 支持多个平台,可方便引入各方面插件。在游戏设计和实现阶段,先简单 介绍了游戏的创意,接着 设计 了整个游戏的的整体结构,并将游戏系统主要分为图形渲染、物理仿真、网络同步等模块, 图形渲染使用 Unity3D 中 OpenGL 插件,使得游戏可以运行到手机平台, 为了更精确、更快速 处理
4、汽车 的物理仿真,使用了 PhysX 来对车身及场景进行物理设计,着重涉及到碰撞 检测、 车身刚体及轮 胎的悬挂系统的概念及算法,并且增加界面设计及网络模块使得用户增加互动性。 论文的最后 对游戏做了一定的分析,在 执行效率及可玩性做出了改进展望。整个游戏系统各模块之间接口灵活且耦合性低,且运行效率高,虽然属于小型游戏,但涉及的技术点较为全面,可以为同 类问题提供参考。关键字:Unity3D,游戏,图形引擎,物理引擎, PhysX,汽 车驾驶华东师范大学学士学位论文 基于 Unity 的车辆模拟游戏的设计与实现IIAbstractWith the development of the elec
5、tronic science,forms of electronic games are becoming richer and richer,meanwhile that users need to more real sense judgment has been an important progress trend.As an application of the virtual reality,3D games is available on all the major computer,mobile platforms, set-top boxes and so on.3D gam
6、es make users easier immerse in enjoying it compared with 2D games,but require more complex technique,so that Computer Graphic and Collider detection have been key research fields.The industry level of 3D games falls behind in China at present,it is a meaning work to go through the technology of the
7、 comprehensive application.The thesis is order from theory to application.Firstly this paper introduces the base framework of 3D games,and then develop a vehicle game by Unity3D,which supports multiple platforms and easier to develop by the plugin.In the specific game,introduce the idea of this game
8、 and discuss the overall design of the integral structure.This game is broken down into modules such as graphic rending,physical simulation and network.Graphic rendering uses OpenGL plugin in Unity3D,which makes game run in mobilephone. Physical simulation depends on PhysX which can obtain more accu
9、rate results to design the rigid body of the car,the suspension of the wheels and the scene.In order to add interactivity we add network and UI module.In the end,this paper analysis this game to put forward the next improvement.This vehicle game is mini,but owns some advantages such as flexible modu
10、le interfaces,low coupling and fast executing.Most importantly this paper refers to most aspects of a 3D game and provide a reference for developers who has a similar requirement.Keywords: Unity3D, game,graphic engine, physical engine, PhysX, automobilism华东师范大学学士学位论文 基于 Unity 的车辆模拟游戏的设计与实现1一、 绪论 一一一
11、 研究背景和研究意义这几年,中国经济以 8%左右的速度持续平稳的增长,而在刚刚过去的 2012 年中国游戏市场实际销售收入 602.8 亿元,同比增长率为 35.1%,首次突破 600 亿规模 1。游戏产业己经成为经济市场中增长速度最快的热点,是众所关注的焦点。游戏是文化创意产业里的一部分,创意 经济是知识经济的核心内容,更是其经济的重要表现形式,没有创意就没有新经济。游 戏设计是文化艺术创意和商品生产的结合,游戏产业的发展在中国的经济发展中具有十分重要的意义 2:1.有利于保护民族的文化传统和价值观,抵制文化入侵;2.推动创意产业的快速发展,提升我国经济产业发展水平;3.提供健康快乐的大众娱
12、乐方式,提升消费者的休闲体验感受。游戏的发展从表现方法上经历了 2D 游戏和 3D 游戏两个阶段。游戏设计,特别是 3D 游戏开发综合运用了计算机图形学、物理仿真和网络通讯等技术,并且移动平台技术在这几年得到迅猛发展,轻量级、微 创新、时间 碎片化一直是移动游戏的发展趋势,如 愤怒的小鸟、 顽皮鳄鱼爱洗澡、 神庙逃亡 的用户数都已经过亿。论文通过一个简单的“ 碰碰车” 创 意予以实现,涵盖了 3D 游 戏涉及到的一些基本技术,能深入理解这些领域的底层技术并熟练掌握成熟的引擎使用,对于将来开发具有自主知识产权的游戏提供了参考。一一一 国内外研究现状国外的 3D 游戏起步在 90 年代初,美国的卡
13、 马克的重返德军总部 3D是第一部3D 第一人称射击游戏,由其开 发的 Doom 引擎也成 为最早 3D 游戏引擎。国内首款自华东师范大学学士学位论文 基于 Unity 的车辆模拟游戏的设计与实现2主研发的 3D 游戏始于 2003 年,到目前 为止,国内在 3D 游戏已经有了很多的研究,但由于 3D 游戏开发的复杂性及经济效益的考虑,国内只有屈指可数的互联网公司拥有自主研发的 3D 游戏引擎,中小型公司 还是使用国外较为成熟的游戏引擎和工具,如虚幻,Unity3D,寒霜。虽然近年来国内涌现一些 优秀的 3D 网游诸如剑侠情缘 3、九阴真经,但一直无法像产出世界级的 3D 游戏大作,大部分游戏
14、公司还是以代理国外优秀产品为主,导致资金外流及本土文化缺失。随着移动硬件设备的日益强大,移动平台上的游戏也出现了惊人的增长,3D 互动娱乐在手机领域的应用也逐渐增加。而移动领域存在诸多的操作系统,常用的有Android、Windows Mobile、iOS 等,而在各个平台上的移植和实现对于开发商来说是不经济的,而目前国外优秀的成熟引擎已经成功解决这类需求,最为突出的要数Unity3D 引擎,Unity3D 中使用虚拟机技术使游戏编译结果独立于平台执行。国内对于跨平台引擎技术的研究还处于起步阶段,但熟练掌握和理解这些引擎的使用依然具有一定意义。一一一 论文组织结构论文按照从设计到实现,从理论到
15、应用,主要 围绕一款基于 Unity3D 的小型的汽车驾驶游戏,对一些 3D 游 戏设计的技术进行相关的研究,并予以设计实现。本文共分为六章,各章节安排如下:第一部分:绪论,阐述了论文的研究背景和意义、国内外研究现状以及本文主要研究内容;第二部分:介绍了 3D 游戏开发的一般技术框架,及相关的第三方引擎,主要有图形渲染库、物理引擎及 Unity3D 的概述;第三部分:汽车驾驶游戏的创意以及游戏系统的整体设计,并根据 Unity3D 框架华东师范大学学士学位论文 基于 Unity 的车辆模拟游戏的设计与实现3规范设计了一种 MVC 层次结构;第四部分:讨论游戏中各模块的技术研究和实现过程,主要的
16、核心模块是场景渲染和物理仿真;第五部分:展示当前的游戏并对效率、玩法等方面做一定分析;第六部分:结论,对该设计进行总结并指出其中的不足,提出下一步展望。二、 3D 游戏技术的知识系统一一一 3D 图形库1. 3D 图形库简介3D 图形库被定义为显卡与应用程序直接的接口。 编程人员只要调用 3D 图形库中的 API(Application Programming Interface)函数,从而与硬件的 驱动程序沟通,启动 3D芯片内强大的 3D 图形处理功能,制作具有 3D 图形效果的软件。3D 图形库的执行具有非常快速的特点,并且具有高度的可移植性,其中的 API函数定义为独立于任何程序设计语
17、言的一组规范,在特定语言中的实现描述由国际标准化组织来制定。严格按照计算机图形学原理设计而成,符合光学和视觉原理, 编程人员只要用这些 API 函数定义点、线、面的三 维 特征,如位置坐 标、顶点颜色、法向向量、纹 理坐标等就可以创 建极其逼真的 3D 图像。 许多三维演示系统都用 3D 图形库作为三维图形生成和控制的编程接口。目前主要应用的 3D 函数库有 DirectX 和OpenGL。DirectX:微软 公司专为 PC 游戏开发的 API,与 Windows 操作系统兼容性好,可绕过图形显示接口(GDI)直接进行支持该 API 的各种硬件的底层操作,大大提高了游戏的运行速度,而且目前基
18、本上是免费使用的。由于要考虑与各方面的兼容性,DirectX 用起来比 较麻烦、在执行效率上也未见得最优。华东师范大学学士学位论文 基于 Unity 的车辆模拟游戏的设计与实现4OpenGL:(开放式图形接口 )由 Silicon Graphics 公司开发,能够在 Windows 95、Windows NT、Macos、Beos、OS/2、以及 Unix 上应用的 API。由于 OpenGL 起步较早,一直用于高档图形工作站,其 3D 图形功能很强,超过 DirectX,能最大限度地发挥 3D 芯片的巨大潜力。在 Windows 中已经全面支持 DirectX 和 OpenGL。在 Open
19、GL的 1.2 版中还增加了对 3DNow!标准的支持。2. 3D 图形库的渲染管线绝大多数 3D 图形库实现都有相似操作顺序,一系列相关的处理阶段叫做 3D 图形的渲染管线,如图 2-1 显示了这些顺序,它是 3D 图形库处理数据的方法 3。图 2-1 3D 图形库渲染管 线下面详细介绍其中几个比较重要的阶段:基于顶点的操作与基本装配:这个过程包括本地空间-世界空间-视图空间-背面拣选,主要是根据编程人员设 置的摄像机位置、 视锥属性和顶点索引对顶点数据进行一系列的数学运算,使 3D 图 形的形状及位置得以正确 显示。像素操作:该过程主要根据编程人员传入显卡的纹理及顶点的纹理坐标以及光照华东
20、师范大学学士学位论文 基于 Unity 的车辆模拟游戏的设计与实现5信息进行颜色计算、混合,并对线、面采用 线性插值 、二次线性插值等算法最终进行出像素的颜色。这个过程的计算一般由显卡固定管线的计算公式完成,如想得到更真实、更多样的效果,可采用可编程管线技术实现。3. 3D 程序基本工作流程前面提到了调用 3D 图形库中的 API 函数来设计 3D 应用程序,现在更为详细的介绍这样的应用程序的一般工作流程,如图 2-2 所示:act sequencemain()ApplicationInitial() ApplicationUpdate() ApplicationDestory()Object
21、Initial() ObjectUpdate() ObjectDestory()Loopfor all renderObject for all renderObject for all renderObject图 2-2 3D 图形库渲染管 线在程序主入口 main 函数中,首先 调用 ApplicationInitial 函数进 3D 图形库的一些初始化工作:如通知显卡存储顶点、颜色、灯光、纹 理等信息,接下来进入主循环不断调用 ApplicationUpdate 函数,ApplicationUpdate 调 用每一个渲染物体的 ObjectUpdate函数,更新其在显存中的信息,并通知显
22、存进行一次渲染管线流动, 这样新的一帧 3D图形就被渲染出来并产生动画。最后在应用程序结束时调用 ApplicationDestory 来进行清理工作。当然,复杂的 3D 应用框架还会利用多线程技术来处理逻辑运算和事件回调等内容。华东师范大学学士学位论文 基于 Unity 的车辆模拟游戏的设计与实现6一一一 物理引擎1. 物理引擎简介在游戏这项综合应用中中,除了华丽的画面渲染外,作为表现虚拟世界系统内在物理规律的计算是必不可少的。当被模拟的刚体的运动比较简单,我们可以在一定程度上通过编程或编写脚本来实现,如简单的加速和减速牛顿物理运动。但当模拟比较复杂的物体的碰撞、滚动、滑动或者弹跳的时候,通 过编写底层算法会造成工程延误,这显然不符合软件工程的思想。成熟的物理引擎能够允许更复杂的物理模拟,像球形关节、轮 子、气缸或者铰链,有些也支持非 刚性体的物理属性,比如流体和布料。物理引擎接受的输入是由外界调用模块传递过来的场景信息以及场景中物体的位置信息。根据调用模块的不同,可能输出三种计算 结果:场景与物体以及物体之间是否发生碰撞、碰撞发生的具体位置以及发生碰撞后物体的具体位置,并将计算结果传送给调用模块。如图 2-3 所示:图 2-3 物理引擎功能示意图2. 物理引擎基本架构 4物理引擎一般分为两个重要部分,即碰撞检测和物理学世界。如图 2-4 所示:
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。