摘
要
现在计算机三维动画技术被广泛地应用于许多方面,通过三维建模、材质及动画的设定可以将真实世界中的各种对象在计算机中真实再现。在最新的高科技影视制作、新颖的商业广告、机械设计、VR仿真等领域,都大量的应用着三维图形技术。
而OpenGL被认为是高性能图形和交互式视景处理的标准。本设计编程语言选择VC++,是因为VC++是面向对象的高级语言,它的语法比较灵活,编译后的可执行程序的运行速度非常快,仅次于汇编语言的编译速度,所以对于图形处理这种对速度要求非常高的程序来说VC++特别合适。而单纯用VC++很难设计出高性能的三维图形工具,目前图形开发包DirectX适用于游戏开发以及加强多媒体性能等方面,而OpenGL则可以制作出更顺畅的3D效果,且OpenGL性能优于DirectX。可以在微机上实现三维图形应用,如CAD设计、仿真模拟、三维游戏等,从而更有机会、更方便地使用OpenGL来建立自己的三维图形世界。这个程序库中包括大约120条命令,用以完成三维物体定义、绘制和交互控制等操作。
该课题不但锻炼了三维动画的实现能力,还提高了编程的总体思路,大大提高了编程水平。更何况中国三维游戏市场的匮乏,这无疑是一块很大的蛋糕!
关键字:OpenGL、3D图形、三维游戏
1.1.1
目
录
1 前言
……………………………………………………………………………………1
1.1
游戏开发动机……………………………………………………………………1
1.2
游戏开发背景……………………………………………………………………1
1.3
游戏开发前景……………………………………………………………………2
1.4
游戏开发目的……………………………………………………………………2
1.5
本论文主要涉及的内容
………………………………………………………2
2 游戏开发需求分析
……………………………………………………………………3
2.1
游戏开发环境
…………………………………………………………………3
2.2
游戏开发软件的性能分析
……………………………………………………3
2.2.1VC++性能分析
…………………………………………………………3
2.2.2OPENGL性能分析
………………………………………………………5
2.3
VC++调用OpenGL简介
………………………………………………………7
2.4
游戏功能说明
…………………………………………………………………8
3 总体方案设计说明……………………………………………………………………9
3.1
前缀代表OPENGL命令的函数类型
…………………………………………9
3.1.1 OpenGL基本库…………………………………………………………9
3.1.2 OpenGL实用库…………………………………………………………9
3.1.3 OpenGL辅助库…………………………………………………………9
3.1.4 Windows专用函数库
…………………………………………………9
3.1.5 X-Windows专用函数库
………………………………………………9
3.1.6 常量
……………………………………………………………………9
3.2
后缀表明OPENGL命令的数据类型 …………………………………………10
3.3
总体设计………………………………………………………………………10
3.3.1基本类的定义
…………………………………………………………11
3.3.2星空背景的定义
………………………………………………………11
3.3.3飞行器的定义
…………………………………………………………12
3.3.4爆炸效果的定义
………………………………………………………14
3.3.5三维流星实体的定义
…………………………………………………18
3.3.6游戏类的定义
…………………………………………………………19
3.3.7屏幕文字的绘制
………………………………………………………22
3.3.8声音效果的处理
………………………………………………………22
4 核心设计---三维图形的设计 ………………………………………………………23
4.1
OpenGL系统的图形变换………………………………………………………23
4.2
三维图形的绘制
………………………………………………………………24
5 编程实现技术…………………………………………………………………………27
5.1
建立程序框架
…………………………………………………………………27
5.2
宏定义与全局变量
……………………………………………………………27
5.3
添加成员变量与成员函数
……………………………………………………28
5.4
添加成员函数的执行代码
……………………………………………………28
6 游戏说明书与测试……………………………………………………………………31
6.1
游戏说明书
……………………………………………………………………31
6.2
编程结果测试
…………………………………………………………………31
6.3
改进意见
………………………………………………………………………33
总结
………………………………………………………………………………………34
致谢
………………………………………………………………………………………34
参考书籍
…………………………………………………………………………………35
1 前言
1.1
游戏开发动机
电脑游戏,一个对广大的计算机应用者毫不陌生的名词,相信每一个电脑爱好者对其都有不同程度的喜爱,尤其是面对一些图形处理非常精美的三维游戏来说,多少会有一些爱不释手吧!记得以前我对网络游戏非常的陌生,直到有一次,在仔细观察同学正起劲的玩着当时最流行的三维网络游戏时,我看傻了眼!那精美的画面,细致的表情,流畅的动作,以及眩目的人物造型等等都让我目瞪口呆,再看到同学那副痴迷的神态,我不能不感叹这电脑游戏的魅力!所以后来在选毕业设计的课题时,我选择了这个三维电子游戏的软件开发的课题!
网络游戏在当下已经普及大江南北了,即使你们身处异地,相隔万里,仍然可以在网络的天地中携手共战。如今的大家已经不满足于小范围的游戏了,他们需要联合的是网络里各个角落的精英高手。体验的是超乎寻常的游戏乐趣!所以说网络游戏的前景是非常可观的。
鉴于时间、技术、设备、资源等各方面的原因,我们现在还无法开发出一个完整的网络游戏,只能研究其最基础的部分,在这里我们将开发出一个小型的三维空站游戏。借此掌握三维游戏制作的基础部分。
1.2
游戏开发背景
在三维绘图蓬勃发展的过程中,计算机公司推出了大量的三维绘图软件包。其中SGI公司推出的OpenGL,作为一个性能优越的图形应用程序设计界面(API)异军突起,取得了很大的成就。它以高性能的交互式三维图形建模能力和易于编程开发,得到了Microsoft、
IBM、DEC、Sun、HP等大公司的认同。因此,OpenGL已经成为一种三维图形开发标准,是从事三维图形开发工作的必要工具。
人们对三维图形技术的研究已经经历了一个很长的历程, SGI公司推出的GL(Graphics
Library)三维图形库,它易于使用且功能强大。随着计算机技术的迅速发展,GL已经进一步发展成为OpenGL,现在OpenGL被认为是高性能图形和交互式视景处理的标准。OpenGL是Open Graphic Librans的缩写,是工业标准三维图形库。这个程序库中包括大约120条命令,用以完成三维物体定义、绘制和交互控制等操作。
OpenGL是业界最为流行也是支持最广泛的一个底层3D技术,几乎所有的显卡厂商都在底层实现了对OpenGL的支持和优化。OpenGL同时也定义了一系列接口用于编程实现三维应用程序,OpenGL被设计成独立于硬件,独立于窗口系统,在运行各种操作系统的各种计算机上都可用,并能在网络环境下以客户/服务器模式工作,是专业图形处理、科学计算等高端应用领域的标准图形库。它低端应用上的主要竞争对手是MS-Direct3D,该图形库是以COM接口形式提供的,所以极为复杂,稳定性差,另外微软公司拥有该库版权,目前只在Windows平台上可用。Direct3D的优势在速度上,但现在低价显卡都能提供很好的OpenGL硬件加速,所以做3D图形开发使用Direct3D已没有特别的必要,在专业图形处理特别是高端应用方面目前还没有出现以Direct3D技术为基础的例子,而游戏等低端应用也有转向OpenGL的趋势。
1.3
游戏开发前景
随着计算机信息技术的高速发展,计算机三维动画技术被广泛地应用于许多方面。利用计算机和三维动画软件的强大功能,通过三维建模、材质及动画的设定可以将真实世界中的各种对象在计算机中真实再现。
但是三维动画在中国的宣传力度不是很大,许多人还没有概念。外国动画垄断中国市场的现状与后果令人不安,但真正惊人的是背后的损失。首先是民族精神的弱化。动画的受众主体是青少年,如长期接受国外动画的影响,其价值观、审美观和趣味观必然发生偏移;其次是经济利益的损失;第三是动画产业的衰弱。
所以该课题的应用前景十分广阔,不但锻炼了三维动画的实现能力,还提高了编程的总体思路,大大提高了编程水平。更何况中国市场的匮乏,这无疑是一块很大的蛋糕!
1.4
游戏开发目的
由于电脑游戏市场的前景广阔,所以掌握好开发游戏的基础是很有必要的。
采用VC++可视化编程语言和OpenGL强大的图形处理功能完成一个简单的三维电子游戏---太空大战软件的程序设计。我们可以借此熟悉并掌握游戏开发编程的基本知识,为将来能开发出大型网络三维电子游戏打下坚实的基础。另一方面,三维图形技术在走向成熟的过程中,不断地被应用到现实的尖端领域,三维图形技术主要应用在三个方面:科学可视化、计算机动画和虚拟现实。在最新的高科技影视制作、新颖的商业广告、机械设计、VR仿真等领域,都大量的应用着三维图形技术。所以掌握好这门技术也是很重要的。
1.5
本论文主要涉及的内容
本论文的主要研究的内容是如何利用OpenGL开发出一个微型游戏。因此,所要解决的主要问题有四个:一是如何用数学方法建立所需三维场景的几何描述,并将它们输入到计算机中,这部分工作由三维实体造型系统来完成。场景的几何描述直接影响了图形的复杂性和图形绘制的计算耗费,选择合理的有效的数据表示和输入手段是极其重要。二是将三维几何描述转换为二维透视,通过场景的透视变换来完成。三是确定场景中的所有可视面,这需要使用隐藏面消除算法将视域之外或其它物体遮挡的不可见面消去。四是计算机场景中所有可见面的颜色,这就需要根据基于光学物理的光照明模型计算可见面投影到观察者眼中的光亮度的大小和色彩组成,并将它转换成适合图形设备的颜色值,从而确定投影画面上每一象素的颜色,最终生成图形。