目 录
摘 要 I
Abstract II
一、 绪论 1
(一) 研究背景和研究意义 1
(二) 国内外研究现状 1
(三) 论文组织结构 2
二、 3D游戏技术的知识系统 2
(一) 3D图形库 2
(二) 物理引擎 5
(三) Unity3D 8
三、 无人机模拟飞行游戏的设计 11
(一) 游戏创意 11
(二) 游戏框架结构设计 13
(三) 游戏层次结构设计 14
四、 无人机模拟飞行游戏的实现 15
(一) 场景渲染实现 15
(二) 场景物理仿真实现 21
(三) 无人机动力学模拟 22
(四) 用户图形界面实现 24
(五) 网络联机模块实现 27
五、 游戏展示与性能分析 28
(一) 游戏展示 28
(二) 性能分析 30
六、 项目总结 32
(一) 总结 32
(二) 下一步工作的展望 33
参考文献 34
二、3D游戏技术的知识系统
(一)3D图形库
1.3D图形库简介
3D图形库被定义为显卡与应用程序直接的接口。编程人员只要调用3D图形库中的API(Application Programming Interface)函数,从而与硬件的驱动程序沟通,启动3D芯片内强大的3D图形处理功能,制作具有3D图形效果的软件。
3D图形库的执行具有非常快速的特点,并且具有高度的可移植性,其中的API函数定义为独立于任何程序设计语言的一组规范,在特定语言中的实现描述由国际标准化组织来制定。严格按照计算机图形学原理设计而成,符合光学和视觉原理,编程人员只要用这些API函数定义点、线、面的三维特征,如位置坐标、顶点颜色、法向向量、纹理坐标等就可以创建极其逼真的3D图像。许多三维演示系统都用3D图形库作为三维图形生成和控制的编程接口。目前主要应用的3D函数库有DirectX和OpenGL。
DirectX:微软公司专为PC游戏开发的API,与Windows操作系统兼容性好,可绕过图形显示接口(GDI)直接进行支持该API的各种硬件的底层操作,大大提高了游戏的运行速度,而且目前基本上是免费使用的。由于要考虑与各方面的兼容性,DirectX用起来比较麻烦、在执行效率上也未见得最优。
OpenGL:(开放式图形接口)由Silicon Graphics公司开发,能够在Windows 95、Windows NT、Macos、Beos、OS/2、以及Unix上应用的API。由于OpenGL起步较早,一直用于高档图形工作站,其3D图形功能很强,超过DirectX,能最大限度地发挥3D芯片的巨大潜力。在Windows中已经全面支持DirectX和OpenGL。在OpenGL的1.2版中还增加了对3DNow!标准的支持。
2.3D图形库的渲染管线
绝大多数3D图形库实现都有相似操作顺序,一系列相关的处理阶段叫做3D图形的渲染管线,如图2-1显示了这些顺序,它是3D图形库处理数据的方法[3]。
图2-1 3D图形库渲染管线
下面详细介绍其中几个比较重要的阶段:
基于顶点的操作与基本装配:这个过程包括本地空间-世界空间-视图空间-背面拣选,主要是根据编程人员设置的摄像机位置、视锥属性和顶点索引对顶点数据进行一系列的数学运算,使3D图形的形状及位置得以正确显示。
像素操作:该过程主要根据编程人员传入显卡的纹理及顶点的纹理坐标以及光照信息进行颜色计算、混合,并对线、面采用线性插值、二次线性插值等算法最终进行出像素的颜色。这个过程的计算一般由显卡固定管线的计算公式完成,如想得到更真实、更多样的效果,可采用可编程管线技术实现。