攻读硕士学位研究生论文开题报告11.doc_第1页
攻读硕士学位研究生论文开题报告11.doc_第2页
攻读硕士学位研究生论文开题报告11.doc_第3页
攻读硕士学位研究生论文开题报告11.doc_第4页
攻读硕士学位研究生论文开题报告11.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

攻读硕士学位研究生论文开 题 报 告OpenGL的3D网络游戏开发中关键技术的研究 专 业 计算机应用技术 研究方向 计算机视觉与听觉学生姓名 蒋东翔指导教师 郑丽颖 副教授 哈尔滨工程大学 2006年11月1 课题的研究目的和意义在近几年间,3D网络游戏已经成为数字娱乐业界的主流。目前开发3D网络游戏广为使用的API开发包有OpenGL和Direct3D,在游戏领域,OpenGL的重要性不言而喻,作为成熟的技术,它满足了3D图形渲染中从双面反射到参数曲线和曲面的所有需要,相比之下,Direct3D的技术特点决定了它在3D图形渲染上的劣势,但它提供的DirectPlay在网络游戏的开发上确有强大的优势。将两者的优势相结合,实现基于OpenGL的3D图形渲染及DirectPlay网络连接的3D网络游戏,具有广阔的应用前景。本次课题的研究目的为在详细分析现有网络游戏框架和 3D技术的基础上,深入研究3D网络第一人称射击游戏中如何结合OpenGL 3D图形渲染技术和D3D中DirectPlay网络连接技术实现网络游戏中的关键环节。它的意义在于,目前国内游戏开发还处于初级阶段,游戏公司自主开发弱,甚至很多公司只是简单的代理国外的游戏。本次课题的开发我将系统的实现3D网络游戏从设计、开发到测试的全过程,结合目前流行的两种游戏API开发包进行应用,在游戏开发中做浅显的研究为中国游戏行业的发展献出一点微薄之力。2 3D网络游戏技术的国内外研究现状大约十年前,id Software推出了一个叫Wolfenstein 3D的小游戏,Wolfenstein 3D以其具有实时的光线计算的3D图形和其所创造的具有沉浸感的世界成为游戏发展史上的一个转折点,游戏玩家对其流连忘返。这款游戏是游戏行业的一个新的开始,从此一发而不可收。在1993年,Doom游戏系列横空出世,并推动3D图形技术超越了2.5D图形引擎的限制。整个游戏界都沉浸于id Software在他们的Doom游戏中取得的技术成就之中。不过他们并没有就此满足,几年后,Quake游戏系列进一步改进了3D游戏。所有这些提高和发展,使得目前3D游戏开发速度一日千里。“伪3D”已经成为历史。Quake游戏系列除了实现惊人的3D效果外,还使多人网络游戏成为可能,这样互联网上的用户就可以与其它30个人一起参与到有趣的生死对决中。自从Quake游戏系列发布以来,游戏业一直从几乎每几个月就会更新的新技术中获益。3D游戏促进了3D加速硬件(芯片)的发展,3D计算可以直接在其芯片上进行。现在,图形硬件以每六个月一代的速度更新,每一代相对于上一代来说,无论是在能力上还是速度上,都要提高近一倍。此外,3D软件开发工具的发展也有飞速的进步,OpenGL(Open Graphics Library)就是一个这样一个3D API开发包,它是开放的图形程序接口,OpenGL是与硬件无关的软件接口,只要操作系统使用了OpenGL适配器就可以达到相同的效果,它是一个开放图形库,目前在Windows、MacOS、OS/2、Unix/X-Windows等系统下均可使用,具有良好的可移植性,同时调用方法简洁明了,深受好评,应用广泛。OpenGL能在网络环境下以客户机/服务器模式工作,充分发挥集群运算的威力,是专业图形处理、科学计算等高端应用领域的标准图形库。目前3D图形领域,专业用户(CAD/CAM等)3D绘图大部分利用OpenGL,而微软致力于推广家庭于个人市场的多媒体娱乐平台,DirectX几乎就是Game、CAI等应用软件的绘图标准接口。但是因为OpenGL较早完成,且技术层次简练深受开发者和用户喜爱,包括许多游戏开发者。但DirectX不只有绘图处理,还包括Video、Sound等多媒体影音处理,因此其涵盖面超过OpenGL,可以说是各有所长。现在多数商业游戏都选择了D3D和OpenGL双API方式。设计两个API的作用在于,你的显卡运行某个API出现贴图错误或运行速度跟不上时,可以试着切换另一个API来运行。我们也要用此方法开发这个3D网络游戏。游戏程序员们曾经对OpenGL的技术和画质推崇倍至,以至于微软在Windows系统中引入OpenGL,并且在Windows平台上出现了Quake II、QuakeIII、重返德军总部等一批优秀的基于OpenGL API的游戏,而同时期的D3D游戏没有哪一款能在画质上超越这些OpenGL游戏的,一直到微软发布DirectX 7,这种情况还是没有发生多大的改变,DirectX只是作为一个能用于快速开发游戏的API而存在着。但是当微软在2001年发布了DirectX 8。DirectX 8是DirectX发展史上一个里程碑式的产品,它在2D、3D、视频、音频以及交互式输入设备接口方面进行了许多重要的改进,其中,在3D图形处理方面尤其做了划时代的改进,可以说,作为一个游戏API,DirectX 8已经超越了OpenGL。但是OpenGL也并不是完全沉没,而是在默默耕耘,继续走自己的道路。继1.5版后,ARB又为我们展示了具有美好前程的OpenGL 2.0版本。OpenGL 2.0标准的主要制订者并非原来的SGI,而是逐渐在ARB中占据主动地位的3D labs。2.0版本首先要做的是与旧版本之间的完整兼容性,同时在顶点与像素及内存管理上与DirectX共同合作以维持均势。OpenGL 2.0将由OpenGL 1.3的现有功能加上与之完全兼容的新功能所组成。借此可以对在ARB停滞不前时代各家推出的各种纠缠不清的扩展指令集做一次彻底的精简。此外,硬件可编程能力的实现也提供了一个更好的方法以整合现有的扩展指令。OpenGL 2.0的特色是加入了可编程能力。合成一个提供给开发者更多精简API的“Pure”OpenGL 2.0。通过将特定的OpenGL功能定义为“旧”功能,并加入更具有弹性的可编程新功能,让开发者们能运用可编程能力快速地获取最急切需求的功能。其中,可编程顶点处理、可编程片段处理、可编程图像格式是OpenGL 2.0的关键功能。其中顶点处理其功能在于照明,材质和几何图形的弹性。可编程顶点程序将取代部分旧有的OpenGL管线如顶点转换、正规转换、照明、色彩强化、材质坐标产生及转换等,并且允许进行随机个别顶点运算。片段处理其功能为材质存取,插值计算和像素运算。OpenGL 2.0增加了片段处理器的能力,取代旧有的内插值顶点数据运算、像素缩放、质材存取及应用、雾化等。可编程图像格式将取代固定格式封装和解封装运算,在自OpenGL传送或接收像素数据时,将允许类型与格式进行任意组合。此外,OpenGL 2.0提供了更好的数据移动和内存管理功能。加强了应用程序对数据移动的控制能力和更好的顶点处理能力,能消除为增进数据流量而产生的数据备份,大幅提升性能。而作为ARB准会员的ATi和NVIDIA也致力于彼此技术的整合。OpenGL开放性图形库,其“开放”是重点,ARB把所有被OpenGL采用的创意想法都将公开给所有人使用且不需要IP授权。ARB将会更好地领导业界为专业性绘图市场带来更多更新的图形技术。目前OpenGL结合D3D已经成为游戏开发行业的3 项目的研究内容采用OpenGL与D3D结合的方式实现3D网络第一人称射击游戏。在深入理解3D游戏动画与高级实时渲染技术和网络游戏服务器/客户端编程的基础上,以标准的游戏架构方式,设计并实现一款3D网络射击游戏并对其性能进行优化,具体研究的内容如下。1)现有高级游戏系统框架的剖析和扩展实现该课题首先要完善现有的3D游戏框架,我们将在Windows游戏程序框架下,实现OpenGL的游戏开发。目前比较通用的游戏系统的在Windows框架下进行OpenGL游戏程序设计的框架如图1。图1在现有技术的基础上,我们将围绕第一人称3D网络游戏继续丰富游戏框架的内涵,我们要扩展的内容有,在框架中使用OpenGL基本图形的画法、模型贴图的方法的应用、曲面构成地面的方法、游戏中常规文字、3D文字的使用方法、平面树的显示原理的研究、调入并显示3DS模型的算法的研究、调用MD2模型的方法、调入MDL动画的方法、爆炸、粒子效果的应用、主视点与对象的碰撞绕行的实现及3D场景编辑的核心算法等问题的研究。下面我们对以上几个重点内容进行具体阐述:a) OpenGL基本图形的画法:OpenGL中所有图形都是由点glVertex3f()构成,基本图形画法形式如下。glBegin(类型);/连接各顶点的方式/图形的顶点坐标集;glEnd();顶点连接方式(构图类型)决定了构成图形的形式。b) 模型的贴图:OpenGL为我们提供了在模型上贴图的许多方法,如在长方形表面加上墙面的贴图,就可以是一幢逼真的房子。在游戏的框架中加入这部分内容,在实现游戏过程中直接将想要实现的图形调入游戏中,实现游戏中的物体,简化游戏编程的过程。c) 曲面构成地面:我们将在框架中加入使用双重FOR循环生成地面MAP_W * MAP_W的平面,这个平面是一个三维量,其中的高(Y分量)取随机数。并形成顶点索引和贴图索引。d) 常规文字及3D文字在游戏中的实现:在游戏系统中文字显示是一种高效能的、以位图方式绘制字体的方法,它采用了一种平面图形的方法,所以显示的是平面文字。但是这种平面文字显示方法不能支持汉字。OpenGL平面汉字基本原理是:在系统内部建立一个确定字体的设备场景(MDC),用GDI方式将文字在设备场景中形成单色位图,再用OpenGL的平面位图显示函数glBitmap()将文字显示出来。OpenGL中文字也可以作为3D对象来显示。这种3D文字可以缩放、旋转、贴图,有其它3D对象的所有特性。我们将在程序中加入对双字节汉字的特殊处理,使它也能显示立体汉字。e) 平面树的原理:网络涉及游戏中最为常见的景物就是树,它也是最难表现的景物之一,在一个矩形平面上贴一个树木的图片,并让树的背景呈透明状态,将它放在OpenGL场景中是很常见的处理方法,我们将这部分直接放入框架中,让实现树这较复杂的内容更加方便简单。f) 调入并显示3DS模型的算法的研究:调入并显示3DS模型是3D游戏的精髓,将通过两步,首先使用Init()调入3DS模型文件,在参数中给出调入模型的序号,然后是使用show3ds()来显示3DS模型g) 调入MDL动画:动画是使游戏生动有趣的主要元素,我们将使用void Init(char *Filename)调入文件名为“Filename”的MDL文件、并用void DrawModel()显示MDL模型、然后用void AdvanceFrame(float Time);实现动作步进、最后用long SetSequence(long Sequence);设置MDL模型的动作序列。h) 爆炸、粒子:战争题材的游戏少不了爆炸、粒子等效果,3D场景中爆炸效果不是单纯的图片回放,而是用程序仿真爆炸的物理过程,所以在3D中爆炸的效果很逼真的。在3D编程中“爆炸、燃烧、喷泉、水流”等等都是基于 “粒子” 算法的,基本原理是用大量的粒子对仿真对象的流体力学原理进行模拟。我们将在框架中加入此内容。i) 主视点与对象的碰撞绕行:游戏人物在漫游过程中,当遇到树或其它对象后,能够从它的一边绕行过去,而不象前面那样穿树而过(给游戏智能我们也把它称作碰撞检测)。将碰撞检测放到框架中是大大节省二次开发难度的重要做法。j) 3D场景中对象拾取:游戏框架中解决3D对象的屏幕拾取的关键,是将鼠标在屏幕上的平面位置xy (int mouseX,int mouseY) 转换成3D场景中的立体位置xyz(xyz.x, xyz.y, xyz.z)。我们将在游戏框架中使用此技术。2)实时渲染及动画制作除丰富游戏的基本框架外,我还将深入研究动画在游戏实时渲染的技术。其中包括在实时渲染中为了更好地实现入射光的反射,使用BRDF(双向反射率分布函数)对物体表面上某特定点X的光照的行为进行量化并进行逐像素着色、实现燃烧特效编程、几何处理中推动因素中拓扑因素及内部简化操作、排序标准、使用MilkShape工具进行游戏骨骼建模及运动的过程、顶点动画与合成的原理、自由形状变形、皮肤控制及用于控制、渲染和跟踪面部网络的模型等。并研究反向动力学原理在游戏中的运用。3)网络游戏客户端/服务器编程在实现3D游戏的基础上,我们要对其进行网络连接使其成为能够进行多人对战的第一人称射击游戏。在设计过程中我们要详细探讨套接字编程中数据传送方法、信号与传输用函数(send、recv、write、read、sendto、recvfrom)、利用一般的客户端/服务器网络编程模型实现网络对战系统的互联、数据包的设计及线程的使用、频道的构成及一些必要功能的构成。并结合使用D3D的DirectPlay提供的API函数,实现稳定的多人互联网络游戏。4 课题进度安排1) 2006年9月2006年11月a. 阅读文献资料;b. 熟练掌握VC编程环境及MSDN;c. 熟悉OpenGL和DirectX SDK的配置方法。2) 2006年11月2007年3月a. 实现游戏的架构,及设计文档;b. 掌握OpenGL开发的工作流程;c. 完成第一人称射击游戏的3D部分。3) 2007年3月2006年7月a. 编程实现网络连接的相关功能;b. 对软件进行性能测试;c. 记录数据,并对测试结果进行分析。4) 2007年7月2007年8月撰写研究报告、硕士论文,准备答辩。附:主要参考文献1Alan Watt,Fabio Policarpo.3DGames Real-time Rendering and Software Technology.Vol 1 .机械工业出版社,2005-22Alan Watt,Fabio Policarpo.3DGames Real-time Rendering and Software Technology.Vol 2 .机械工业出版社,2005-43Bruno Miguel,Teixeira de Sousa.Game Programming All in One .重庆大学出版社,2005-104毛伟冬,唐

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论