(计算机应用技术专业论文)3d游戏引擎的设计与实现.pdf_第1页
(计算机应用技术专业论文)3d游戏引擎的设计与实现.pdf_第2页
(计算机应用技术专业论文)3d游戏引擎的设计与实现.pdf_第3页
(计算机应用技术专业论文)3d游戏引擎的设计与实现.pdf_第4页
(计算机应用技术专业论文)3d游戏引擎的设计与实现.pdf_第5页
已阅读5页,还剩98页未读 继续免费阅读

(计算机应用技术专业论文)3d游戏引擎的设计与实现.pdf.pdf 免费下载

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

文档简介

西南交通大学硕士研究生论文第1 页 摘要 3 d 游戏引擎是3 d 游戏设计的核心技术,它充分使用了计算机的各种软硬件资源, 使3 d 游戏设计变得更加快捷高效。由于使用了引擎,使得游戏开发人员只需专注于游 戏的逻辑实现,而具体怎么使用计算机来模拟游戏世界则交由引擎来实现,从而大大降 低了游戏开发成本。同样游戏引擎开发也是游戏开发过程中技术积累的最佳方式,是设 计游戏的必要步骤,具有十分重要的意义。 本设计采用了面向对象的程序设计方法,主要实现了五个部分的功能:引擎控制、 图形渲染、资源管理、输入管理以及部分场景元素的实现。引擎控制部分负责整个引擎 的初始化、内部管理、以及资源回收。它既是用户使用引擎的入口,也管理引擎所有的 子功能模块。图形处理模块负责3 d 游戏中所有3 d 和2 d 图形的处理。为了高效管理大 量的3 d 图元,在深入研究计算机硬件结构的基础上,本设计对渲染数据进行了重新组 织,从而使其更适合于计算机硬件处理。资源管模块则通过对各种资源进行分类,并提 供相应的管理器,使得用户可以方便地管理开发过程中使用的各种资源。同时,很多游 戏要求对玩家的输入消息进行快速的响应,而传统基于w i n d o w s 消息机制的输入管理, 不能满足这一要求。因此本设计使用了d i r e c t x 的d l n p u t 组件来实现用户输入数据的快 速处理。最后结合室外场景模拟的相关理论,还实现了室外地形、天空、水等自然元素 的模拟,从而进一步丰富了引擎的功能。 本文以当前国内外3 d 游戏引擎研究现状为基础,深入研究了3 d 游戏引擎开发过程 中所使用的相关技术和理论。在总体设计部分,首先描述了3 d 游戏引擎的功能需求, 并对整个系统进行了功能模块的划分,同时对这些模块的具体功能进行了详细描述。在 详细设计部分,分别对各个功能模块的具体实现进行了阐述。同时,本文还以一个具体 应用为例演示了如何配置引擎使用的环境,和引擎的具体使用方法。最后对设计所完成 的工作进行了总结,同时描述了设计过程中存在的问题及日后需完善的地方。 关键词:3 d 游戏;3 d 游戏引擎;d i r e c t x ;3 d 渲染;室外场景模拟;游戏资源 西南交通大学硕士研究生论文第页 a b s t r a c t 3 dg a m ee n g i n ei st h em a i nt e c h n o l o g yi nt h ep r o c e s so fd e v e l o p m e n to f3 dg a m e ,i t f u l l yu s e so ft h ev a r i o u sc o m p u t e r sh a r d w a r ea n ds o f t w a r er e s o u r c et oe n a b l et h e3 dg a m e d e s i g nt ob e c o m e m o r ef a s ta n de f f i c i e n t b e c a u s eo ft h eu s eo fg a m ee n g i n e ,g a m ed e v e l o p e r j u s tn e e dt of o c u so nt h er e a l i z a t i o no fg a m el o g i c ,w h i l es i m u l a t i o no ft h eg a m ew o r l da r e g i v e nt ot h eg a m ee n g i n e ,s ot h eg a m ee n g i n ec a n r e d u c et h ec o s to fg a m ed e v e l o p m e n t a t t h es a m et i m e , t h eg a m ee n g i n ed e v e l o pi sn o to n l yt h eb e s tw a yt oi m p r o v es k i l l so fg a m e d e v e l o p m e n t , b u ta l s oi st h en e c e s s a r ys t e p st od e s i g nt h eg a m e ,t h e r e f o r ei ti so fs i g n i f i c a n c e t h ew h o l es y s t e mi sd e s i g n e da n dr e a l i z e di nt h eo b j e c t o r i e n t e dp r o g r a m m i n gm e t h o d , i th a sd i v i d e di n t o f i v ef u n c t i o nm o d u l e s :t h ee n g i n ec o n t r o l ,t h eg r a p h i c sp r o c e s s ,t h e r e s o u r c em a n a g e m e n t , t h ei n p u td e v i c em a n a g e m e n t , a n dt h es c e n ee l e m e n t s t h ep a r to f t h ee n g i n ec o n t r o li sr e s p o n s i b l ef o rt h ei n i t i a l i z a t i o no ft h ee n g i n e ,i n t e r n a lm a n a g e m e n t , a n dr e c y c l i n g i ti sn o to n l yt h eu s e re n t r a n c e ,b u ta l s ot om a n a g eo t h e rs u b m o d u l e s t h ep a r t o f t h eg r a p h i c sp r o c e s si si nc h a r g eo ft h ep r o c e s so fa l lt h e3 dg r a p h i c sa n d2 d p i c t u r e so f3 d g a m e s i no r d e rt om a n a g eal o to f p r i m i t i v ei nh i g he f f i c i e n t , t h i sa r t i c l eh a sd e e p l yr e s e a r c h e d t h es t r u c t u r eo fc o m p u t e rh a r d w a r e ,a n dp a c k e dt h ed a t a ,s ot h a tm a k et h e mb ew e l lf i tf o rt h e p r o c e s so fc o m p u t e rh a r d w a r e t h er e s o u r c em a n a g e m e n tf u n c t i o np r o v i d e db yt h ee n g i n e h a sc l a s s f i e dt h er e s o u r c e sa n dm a n a g e dt h e m ,s ot h eu s e rc a nu s ee a s i l ym a n a g et h er e s o u r c e i nt h ep r o c e s so fd e v e l o p m e n t a sw e l la s ,m a n yg a m e sn e e dt oq u i c k l yg i v ear e s p o n s et o w h a tt h ep l a y e r si n p u t , b u tt h et r a d i t i o n a li n p u tm a n a g e m e n tb a s e do nw i n d o w sm e s s a g e m e c h a n i s mc a l ln o tm a k ei t s ot h ee n g i n eu s e st h ed i r e c t xd i n p u t ec o m p o n e n tt or e a l i z et h e q u i c kr e s p o n et ow h a tt h ep l a y e r si n p u t a tl a s ta c c o r d i n gt ot h er e a lr e q u i r e m e n ta n db a s e d o n t h ef u n c t i o n sw h i c ha r ef i n i s h e db e f o r e ,t h ee n g i n eh a sr e a l i z e dt h er e l a t i v e le l e m e n t sa b o u t o u t s i d ee n v i r o n m e n ti nt h er e l a t i v et h e o r yo ft h es i m u l a t i n go fo u t s i d ee n v i r o n m e n t ,s u c ha s o u t s i d et e r r a i n , s k y , w a t e ra n do t h e rn a t u r a le l e m e n t s ,w h i c hh a se n r i c h e dt h ef u n c t i o n so ft h e e n g i l l e t 【l i sa r t i c l ei sb a s e do nt h ec u r r e n tr e s e a r c hc o n d i t i o no f b o t hh o m ea n da b r o a d3 dg a m e e n g i n e ,h a sd e e p l yr e s e a r c h e dt h er e l a t i v es k i l l sa n dt h e o r i e so ft h ed e v e l o p i n gp r o c e s so f3 d g a m ee n g i n e i nt h ep a r to fw h o l ed e s i g n , t h i sa r t i c l ef i r s t l yh a sd e s c r i b e dt h ef u n c t i o n r e q u i r e m e n to ft h e3 dg a m ee n g i n e ,a n dh a sd i v i d e dt h ef u n c t i o nm o d u l e so ft h ew h o l e s y s t e m ,m e a n w h i l eh a sd e s c r i b e di nd e t a i lt h es p e c i f i cf u n c t i o no f t h e s em o d u l e s i nt h ep a r to f t h o r o u g hd e s i g n , t h i sa r t i c l eh a ss e p a r a t e l yd e s c r i b e dt h es p e c i f i cr e a l i z a t i o no f e a c hf u n c t i o n 西南交通大学硕士研究生论文 第页 m o d u l e a f t e rt h ed e s i g np a r t , t h i sa r t i c l eh a sd e m o n s t r a t e dh o wt od e p l o yt h ee n v i r o n m e n t n e e db yt h ee n g i n ea n dh o wt ou s et h ee n g i n e 、历廿la l la p p l i c a t i o ne x a m p l e a tl a s tt h i sa r t i c l e h a ss u m m a r i z e da l lw h a tt h i sa r t i c l eh a sd o n e ,i l l u s t r a t e dt h ep r o b l e m si nt h ed e s i g np r o c e s s a n d p l a c e st ob ei m p r o v e di nt h ef u t u r e k e y w o r d s :3 dg a m e ;3 dg a m ee n g i n e ;d i r e c t x ;3 dr e n d e r ;o u t d o o rs c e n es i m u l a t i o n ; g a m er e s o u r c e 西南交通大学 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有 关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权西南交通大学可 以将本论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复印手 段保存和汇编本学位论文。 本学位论文属于 1 保密口,在年解密后适用本授权书; ( 请在以上方框内打“寸) 刀q _ 、 像 勿” 名 力 签 獬 雠 渺 老 : 导 期 指 日 刀孑弘 詹发 一无 , 阢y 哆 - , 名勿 签 , 誊 修 佑 吖 文 z 论 : 刨 期 学 日 西南交通大学硕士学位论文主要工作( 贡献) 声明 本人在学位论文中所做的主要工作或贡献如下: ( 一) 使用面向对象的程序方法设计了整个引擎框架,并对整个引擎系统进行了功 能模块的划分。 ( 二) 定义了引擎所有用户使用接口。 ( 三) 使用d i r c c t x 9 0 对整个引擎功能进行了实现。 本人郑重声明:所呈交的学位论文,是在导师指导下独立进行研究工作所得的成果。 除文中已经注明引用的内容外,本论文不包含任何其他个人或集体己经发表或撰写过的 研究成果。对本文的研究做出贡献的个人和集体,均己在文中作了明确说明。本人完全 了解违反上述声明所引起的一切法律责任将由本人承担。 学位论文作者繇饧复初 日期:7 _ 0 :0 ,易。够 西南交通大学硕士研究生论文第1 页 第1 章绪论 1 1 课题研究的背景及国内外现状 1 1 1 什么是游戏引擎 随着计算机技术的飞速发展,计算机邑经融入了人们生活的各个领域,同时也改变 着人们的生活和工作方式。而计算机性能的大幅度提高也使得3 d 游戏更加流行,成为 人们重要的娱乐方式,无论是网络还是单机,3 d 游戏已经成为主流。 从游戏开发者的角度,3 d 游戏的开发难度远大于传统的2 d 游戏,特别是那些大型 3 d 游戏,开发者在追求真实、绚丽画面的同时其开发量也是巨大的。抛开游戏的美术和 创意,如果每个游戏的开发都是从零开始那将是个巨大的工程,会耗费大量的开发成本。 为解决这些问题,在长期的游戏开发中,游戏引擎便诞生了。正如汽车的发动机,游戏 引擎是独立于游戏内容的,它实现了游戏开发的一些底层技术并通过封装成易用的功能 接口提供给游戏开发者,这样游戏开发者就可以只专注于具体游戏内容的实现而不用关 心这些底层的实现细节,从而大大提高了开发效率【l 】。 游戏引擎分为商业引擎和非商业引擎( 是否收费的差别) ,非商业引擎一般只包括完 整引擎的一部分,比如客户端显示,只简单的把图形接e l ( d i r e 圮t 3 d 和o p e n g l ) 封装 一下;而一个完整的商业引擎则由许多子系统构成,如一套供程序使用的a p i ( 应用程 序接口) ;一套完整、易用的供策划和美术使用的工具集合,用来创建游戏内容;一套完 整的文档、例子和教程,用来加快用户学习引擎使用方式的过程;一套开发流程及其资 源的定义方式、组织方式等【23 1 。 1 1 2 国内外研究现状 早在上世纪9 0 年代随着电脑游戏的发展,游戏引擎便在几个比较有实力的游戏公司 崭露雏形。如i ds o f h , v a r e 游戏公司,他们开发的( ( w o l f e n s t e i n3 d ( 德军总部3 d ) ,在 绘制游戏物体时引入了射线追踪技术,游戏中每个像素发射一道光束,如果这道光束碰 到了障碍物体形成反射,游戏就会按照设定好的程序在障碍物的相应位置创建单维深度 缓存( d i m e n s i o n a ld e p t hb u f f e r ) ,建立纹理图像,这便诞生了世界上第一款3 d 游戏引 擎。而作为第一款商业授权的引擎dt e c hl ,同样出自i ds o f t w a r e 公司。i dt e c h1 改 进了( w o l f e n s t e i n3 d 光照系统,通过支持立体音效使环境的定位更加真实;随后i d s o w , c a r e 公司又推出了真正意义上的3 d 引擎q l 】a k e ,它完全支持多边形模型,动画和 粒子系统。在随后的q u a k ei i 中又添加了2 5 6 色材质贴图,首次实现了彩色光影效果, 西南交通大学硕士研究生论文第2 页 使得游戏中的物体在反射光影时候展现出不同的色彩效果,另外通过支持动态链接库文 件实现了软件渲染和o p e n g l 渲染 4 1 。 作为3 d 游戏引擎的后期之秀e p i c 公司,在1 9 9 8 年推出的u n r e a l ( 虚幻) 引擎 在彩色光照和纹理过滤上的软件渲染性能已经接近硬件级的加速,而且u n r e a l 引擎还支 持当时c p u 刚刚集成的s i m d ( 单指令多数据) 指令。u n r e a l 的另一重要特点是它的通 用性,不但可以用在3 d 游戏,还可以使用3 d 建模、建筑设计、动作捕捉、电影特效 等领域。经过若干年e p i c 公司的倾力打造到不久前问世的u n r e a l3 已近集成了许多现 成的游戏技术,包括p h y s x 物理技术、s p e e d t r e e 植被模拟、e a x 5 0 音效、m 功能等。 u n r e a l 3 甚至支持6 4 位h d r r 高精度动态渲染、多种类型光照和高级动态阴影特效,可 以在低多边形数量( 通常在5 0 0 0 1 5 0 0 0 多边形) 的模型实现通常数百万个多边形模型才 有的高渲染精度,这样就可以用最低的计算资源做到极高画质。同时u n r e a l 3 引擎还提 供了强大的编辑工具,让开发人员随意调用游戏对象,真正做到所见即所得。 在i ds o f t w a r e 和u n r e a l 的光环下,其它公司也有不少高性能的引擎,如m o n o l i t h 公司的l i t c h t e e h 引擎,该引擎在刻画细致的纵深场景,全屏抗锯齿、实时光影效果都 表现出很高的质量。还有v a l v e 公司开发的s o u r c e 引擎,它通过一套面部肌肉模拟系统 实现了丰富的人物表情。所以国外的3 d 引擎技术已经相当成熟也走向了商业化。 国内游戏引擎技术起步较晚,这也直接反应了国内外游戏制作技术水平上的差距; 但在国内游戏产业快速发展的背景下,拥有自主产权的游戏引擎也孕育而生,比如完美 时空的a n g e l i c a 3 d 就是一个代表,正是使用该引擎,完美时空所开发的几款游戏,如完 美世界、诛仙相比同类其它国产网游拥有更出色的画质。此外金山的剑侠情缘o n l i n e 3 使用的引擎,目标m k z 所使用的o v e r m a x 引擎都是拥有自主产权,也是国内游戏 引擎的精品之作。但总的来说国内的3 d 引擎技术水平还比较落后,功能也不完善,还 处在学习和探索阶段。 1 2 课题研究的意义 由于庞大的游戏市场,中国的游戏产业也得到了迅猛发展。以往为快速占领市场, 国内的游戏公司更多选择的是游戏代理模式,但随着游戏市场竞争日渐激烈,国外游戏 代理成本也越来越高。所以现在越来越多的国内游戏公司把更多的资金和技术投入到了 自主研发上,这样作为游戏开发的核心技术游戏引擎,在国内获得了更广阔的市场。 到目前为止国内的游戏引擎技术水平和国外还有很大的差别,这也是好多国内游戏 公司选择直接购买国外游戏引擎进行游戏开发的原因。但开发高性能的游戏引擎是我国 游戏企业参与国际竞争的关键,同时也是国内游戏产业技术积累的最好方式。同时网络 游戏通用引擎的研发已被纳入国家8 6 3 计划,所以对游戏引擎的研究具有很大的现实意 西南交通大学硕士研究生论文第3 页 义。 1 3 课题解决的主要问题 游戏引擎是一个庞大系统,它解决了游戏开发中的所有核心问题,属于较底层的技 术。作为研究的目的不可能在短时间内完成一个功能非常完善的系统,本课题着力解决 了其中几个关键问题,具体如下: 使用面向对象的设计方法构建了一个通用、可扩展的3 d 游戏引擎框架。 设计了一个功能完善的渲染器接口,并使用d i r e c t x 9 0 技术实现了该接口。该 渲染器根据当前计算机的体系结构,能高效地绘制游戏中的几何数据。 采用分类的思想对游戏中使用的资源进行统一的管理。 针对3 d 游戏对输入设备快速响应的要求,本课题设计了一个功能完善的输入管 理接口,并使用了d i r e c t x 9 0 技术实现了该接口。 在上述的几个功能模块基础上,实现了游戏室外场景所需要的相关元素,从而 为游戏场景编辑器和其它相关开发工具的现实提了功能接口。 1 4 论文的组织结构 在大量的理论学习和实践基础上,本论文针对3 d 游戏引擎在设计和实现过程中所 遇到的问题提出了相关的解决方案。本论文共分为五章。 第一章绪论部分主要阐述了游戏引擎的产生、发展以及国内外的发展现状,在这样 的背景下提出了课题研究的现实意义。 第二章针对3 d 游戏引擎实现过程中所遇到的相关理论和技术进行了说明。 第三章采用面向对象的设计思想对整个系统进行架构,并进行了相关功能模块的划 分。 第四章对引擎中几个核心问题的解决进行了详细描述,如在渲染器中如何实现高效 绘制三维场景,如何对游戏资源进行分类管理以及快速响应用户的输入等。 第五章结合三维场景编辑器对引擎性能进行测试,同时说明了如何使用该引擎。 最后对全篇进行总结以及展望日后的扩展和完善工作,最终使该引擎真正运用到实 际生产中去。 西南交通大学硕士研究生论文第4 页 第2 章相关理论和技术 2 13 d 图形处理流水线 三维场景中的模型最终被绘n n - 维的显示设备上,需要经历一系列变换,而这过 程中的一些列处理正是三维物体的基本成像流程。现在假设一个场景:一个人站在高楼 上透过窗户向外面观看,楼下马路有行人穿梭,马路两傍矗立着高楼,楼宇间有公园, 再望远处是河流、山峦。现在的问题就是如何把这个人看到的三维世界显示到二维的计 算机屏幕上,这一过程就是3 d 图形流水线的全部功能。 整个3 d 图形流水线处理大致分为以下几步:局部坐标到世界坐标的变换,世界坐 标到摄影坐标的变换,物体的裁剪和背面消除,摄影坐标到透视坐标的变换,最后转换 成屏幕坐标【56 1 7 1 。其中每一步都根据相应的变换矩阵求得的,即新坐标= 原坐标变换矩 阵。 2 1 13 d 图形流水线的数学原理 1 世界变换使用三维建模软件创建模型时都是采用某个中心点作为原点来架设坐 标系以给出每个三角形顶点的坐标值,这个坐标系就是局部坐标系。但要把这些各自建 立的模型放到同一场景中就需要一个统一的坐标系,这便是世界坐标系。所以模型处理 的第一步就是把模型在局部坐标系下的坐标位置转换到世界坐标系中的坐标位置这就世 界变换【8 1 。 如图2 1 所示,把正方体放到左边世界坐标系中( 原点为o ) 而正方体的局部坐标 原点为o 。 o x 图2 1 世界变换原理图 假设o 在世界坐标系中的坐标为( o x ,o y ,o z ) ,p 点在局部坐标系中的坐标为 ( p 。,p y ,p z ) ,在世界坐标系中的坐标为( p 。,p y ,p z ) 。同时假设如下变换: 西南交通大学硕士研究生论文第5 页 巨i 。, 即: 使用矩阵形式表示为: 一= x + q y = y + o r z = z + q c一,y,z,=cx,y,z,r 最终得出世界变换矩阵为: o1o q d :1 ( 2 - 2 ) ( 2 - 3 ) ( 2 - 4 ) ( 2 5 ) 2 摄影变换摄影坐标系即以观察者的位置e y e 和观察方向( a t - e y e ) 来定义的坐 标系,如图2 2 所示。 q 纠讲 = = = m 刀 g ,l o o o o o 1 o o o l 0 0 1 d y o 1 o l o o 队 西南交通大学硕士研究生论文第6 页 o u p ,| p l。 j ,l 一_ - e y e 图2 2 摄影变换原理图 其中u p 为指定的向上方向,摄影坐标系( x ,y ,z ) 分别以单位向量x a x i s 、y a x i s 、 z a x i s 为坐标轴,其中n o r m a l 是指向量单位化运算,c r o s s 表示向量的叉积运算: lz a x i s = n o r m a l ( a t e y e ) x a x i s = n o r m a l ( c r o s s ( u p ,z a x i s ) )( 2 6 ) ly a x i s = c r o s s ( z a x i s ,x a x i s ) 假设世界坐标系中任意一点p ( x ,y ,z ) ,它的摄影坐标系中的坐标为p ( x ,y ,z ) , 所以得出: x = ( 尸一e y e ) x a x i s = x 幸x a x i s x + y 宰x a x i s y + z 宰x a x i s 2 一x a x i s e y e y = ( 尸一e y e ) y a x i s = x 幸y a x i s x + y 幸y a x i s y + 2 宰y a x i s z y a x i s e y e ( 2 - 7 ) z = ( 尸一e y e ) z a x i s = x 宰z a x i s x + y 木z a x i s y + z 幸y a x i s z z a x i s e y e 上面的公式可用矩阵来表示: 几t 驴石医 从上面公式得出摄影变换矩阵为: y a x i s x z a x i s x0 y a x i s yz a x i s y 0 y a x i s z z a x i s z 0 y a m s e y e - z a x i s e y e 1 x a x i s x y a x i s x z a x i s x0 x a x i s yy a x i s yz a x i s y 0 x a x i s z y a x i s z z a x i s z0 x a x i s e y e y a x i s e y e z a x i s e y e 1 ( 2 8 ) ( 2 9 ) 注:在本论文中所有形如( x ,y ,z ) 的坐标都加一齐次位从转为四维形式,若为点 则表示为( x ,y ,z ,o ) ,若为向量则表示为( x ,y ,z ,1 ) 。 3 投影变换投影变换就是把三维物体投影到平面上使之变为二维的平面图像,同 西南交通大学硕士研究生论文第7 页 时还保留深度信息。透视方法分为透视投影和平行投影,两种方法投影出的结果也不一 样。根据“远大近小原则透视投影更适合三维投影9 1 。下面介绍透视投影的原理。 从数学形式上看,这种变换相当于将视截体变换为一个立方体,如图2 3 所示。 o jy 1 斤 少 7 x l 1 图2 3 透视投影变换原理图 假设视截体的y 方向张角为f o v ;近视平面和远视平面在z 轴上的距离分别为m , 礁近视平面的宽高比为a s p e c t 。变换后的立方体六个面的方程为: 前侧平面方程:z = - 1( 2 10 ) 后侧平面方程:z = 1 ( 2 1 1 ) 左侧平面方程:x 一1 ( 2 1 2 ) 右侧平面方程:x = 1 ( 2 1 3 ) 上侧平面方程:y = 1( 2 1 4 ) 下侧平面方程:y 、= 1 ( 2 15 ) 而视截体六个面的方程为: 前侧平面方程:z :m ( 2 1 6 ) 后侧平面方程:z = z f ( 2 17 ) 左侧平面方程:x z - 一e o t ( f o v 2 ) a s p e e t( 2 18 ) 右侧平面方程:x z - - - e o t ( f o v 2 ) a s p e e t( 2 1 9 ) 上侧平面方程:洋幸t a n ( f o v 2 )( 2 2 0 ) 下侧平面方程:y = 一z 木t a n ( f o v 2 )( 2 - 2 0 ) 下面进行对应变换,首先把视截体的上侧面转换为立方体的上侧面,假设y - - k * y , 由方程( 2 2 0 ) 得出k = c o t ( f o v 2 ) z 所以y = c o t ( f o v 2 ) z * y ,经过计算该变换也使用于下 侧面,同理的得出其它几组侧面的变换公式。最终整理得出: 口 y 力v 咖 协劲卜 v 玉 嚣州比 西南交通大学硕士研究生论文第8 页 由公式( 2 2 1 ) 可以得出矩阵变换的形式: p ,y ,少,w ,= 似乃乙。# t l o 所以最终得出摄影变换矩阵: c o t ( f o v 2 ) a s p e c t o 0 0 oo c o t ( o v 2 ) 0 0 z 矿白一乙) 0 - - z j 木乙白一z ,) oo c o t ( f o r 2 ) 0 0 乃- - z ) 0 一z s 宰磊( 勿一厶) o o l o ( 2 2 2 ) ( 2 - 2 3 ) 4 视口变换三维物体最终要显示到计算机的二维屏幕视口上,这就需要一个视口 变换把透视投影空间( 1 ,1 1 ,1 0 ,1 】) 坐标转换为视口坐标,如图2 4 所示: jl r 11 、 、 , n r x ( 1 ,- 1 ) o 图2 _ 4 视口变换原理图 假设视口坐上角坐标为( x o ,y o ) ,宽高分别为w ,h ,视口深度范围为m i n z 到m a x z 。 现在需要进行以下几组变换: ( 1 ) ( 1 ,1 ) 到( x o ,y o ) 。 ( 2 ) ( 1 ,1 ) 到( x 叭- w ,y o + h ) 。 ( 3 ) ( 0 ,1 ) 到( m i n z ,m a x z ) 。 假如在投影空间中的点( x ,y ,z ) 变换后的视口坐标( x ,y ,z ) ,所以得出如下 公式: z 、= k 木x + m y 、= s 木y + ,2 z 、= 厂水z + t ( 2 2 4 ) 西南交通大学硕士研究生论文第9 页 把上面的三组坐标代入公式,得出: 从而推导出: 变成矩阵形式为: y , z ,1 ) = 似,少,z 、,l k = w | 2 m = x o + w 2 s = 一乃2 刀= y 。+ h 2 r = m a x z m i n z t = 蚴n z 所以最终的视口变换矩阵为【1 01 1 】: 2 1 23 d 渲染固定流水线 w | 2 o o x o + w | 2 o - h 2 o 2 y o + h 2 o h 2 o y o + h 2 o o m a x z - m i n z m i n z oo oo m a x z m i n z 0 m i n zl ( 2 2 5 ) ( 2 - 2 6 ) 0 l 0 l ol ( 2 2 7 ) l 1 j ( 2 2 8 ) 以上从数学的角度剖析了3 d 图形流水线中涉及到的一些列坐标系变换原理,可以 看出在这过程中只要用户把参数( 如,相机参数,视口参数) 设定了,变换的方法是固 定的。所以在现代的显卡采用固化硬件代码形式来执行这些变换过程。显然加快了计算 速度。与其同时,3 d 处理流水线的其它部分( 如,光照) 计算也以同样的形式处理,这 便形成了g p u ( 图形处理芯片) 的固定渲染管线。也就是3 d 数据在一条所谓渲染管道 z船 、- 么力忉m州“嘻 0 1l、710 亿“p 坳州墨 水), p 动z 2 x忽它讹圳 ,i i ,i i ,i i x y z w 2 一h p 西南交通大学硕士研究生论文第1 0 页 线上的加工处理过程,从管道线的起始端流入,然后进行加工处理,最后从管道线的末 端流出【1 21 3 1 ,具体过程如图2 5 所利14 1 。 2 2l o d 技术 图2 53 d 图形流水线流程图 假如一个坦克大战的游戏,所有的坦克模型都一样,在游戏场景中分布着,经过投 影最终显示在二维的屏幕上,可以看到离摄像机近的坦克模型在屏幕上显示要比远离摄 像机的坦克模型大且细节更清晰,并且离摄像机越远显示到屏幕上的图像越小,模型的 细节也越模糊。但因为都在视截体内所以在这期间的处理计算量( 绘制时的多边形数量) 是相同的。其实完全可以减少远离摄像机的模型的多边形数量,只要保证模型的轮廓就 可以了,并不影响显示效果,从而加快了模型的绘制速度,这便是l o d ( l e v e lo f d e t a i l ) 技术【”】。例如对同一飞机模型可以创建三个版本,第一个由1 3 5 4 6 个多边形组成;第二 西南交通大学硕士研究生论文第1 1 页 个多边形数量为5 0 0 个;第三个多边形数量为1 5 2 ,如图2 - 6 所示 川。所以在程序运行 时根据环境来调用相应的模型版本,从而优化了绘制过程m 】。 镳 , 荔荔 图2 - 6 模型的l o d 演示图 上面所述的是一种不连续l o d 技术,即d l o d ( d i s c r e t el e v e lo f d e t a i l ) 。主要是 因为模型多边形数量的变化是不连续的,但这种方法简单且不需要实时计算多边形的数 量,所以速度较快,但有时会产生模型突变的情况。 同样还有另一种l o d 技术,即c l o d ( c o n t i n u e sl e v e lo fd e t a i l ) 。该方法不需要 预先构造不同细节的模型,而是根据环境实时计算模型的多边形数量。这种方法大多数 运用在实时地形渲染上,由于地形网格中的多边形数量是连续变化的,所以绘制出来的 地形更具有真实性。这种方法缺点是实时计算,降低了场景的绘制速度 l ”。 2 3d i r e c t x 技术 2 31 什么是d i r e c t x d i r e e t x ,( d i r e c te x t e n s i o n ,简称d x ) 是由微软公司创建的多媒体编程接r l 。由 a 斗编程语言实现,遵循c o m 。被广泛使用于m i c r o s o f iw - m d o w s 、m i c r o s o f tx b o x 和 m i c r o s o 盎x b o x3 6 0 电子游戏开发,并且只能支持这些平台。它提供了一整套的多媒体接 口方案。d i r e c t x 是一组低级应用程序编程接口( a p i ) ”,可为w i n d o w s 程序提供高性 能的硬件加速。使用d i r e c t x 可访问显卡与声卡的功能,从而使程序可提供逼真的三维 图形与令人如醉如痴的音乐与声音效果。d i r e c t x 使程序能够轻松确定计算机的硬件性 能,然后设置与之匹配的程序参数。该程序使得多媒体软件程序能够在基于w m d o w s 的具有d i r e c t x 兼容硬件与驱动程序的计算机上运行,同时可确保多媒体程序能够充分 利用高性能硬件。d i r e c t x 包含一组a p i ,通过它能访问高性能硬件的高级功能,如三维 图形加速芯片和声卡。这些a p i 控制低级功能( 其中包括二维( 2 d ) m 形加速) 、支持输入 设备( 如游戏杆、键盘和鼠标) 并控制着混音及声音输出础2 1 1 o 西南交通大学硕士研究生论文第1 2 页 2 3 2d i r e c t x 的组件说明 d i r e c t x 由许多不同功能的组件构成,主要包括图形显示、声音管理、输入管理、网 络管理。每个功能组件都是由许多相应的a p i ,这些a p i 被封装在相应的动态链接库 ( d l l ) 中,供开发者调用。 作为d i r e c t x 中最重的组件- - d i r e c t xg r a p h i c s 主要负责2 d 和3 d 图形的显示,特别 在3 d 图形的加速方面表现的尤为出色。该组件是一种低级的图形a p i ,它为软件程序 提供一种独立于设备之外的方法以便与加速器硬件进行有效而强大的通信。该组件包含 专门的c p u 指令集支持,从而可为新型计算机提供进一步加速支持。 d i r e c t xa u d i o 是d i r e c t x 的交互式音频组件。软件开发人员提供了创建令人陶醉的 动态音轨的能力,以响应软件环境中的各种更改,d i r e c t x a u d i o 处理数字音频以及基于 消息的音乐数据,这些数据是通过声卡或其内置的软件合成器转换成数字音频的。 d i r e c t xa u d i oa p l 支持以“乐器数字界面( m i d i ) 格式进行输入,也支持压缩与未压缩 的数字音频格式。d i r e c t xa u d i o 为软件开发人员提供了创建令人陶醉的动态音轨的能 力,以响应软件环境中的各种更改,而不只是用户直接输入更改。 d i r e c t xi n p u t 组件为游戏提供高级输入功能并能处理游戏杆以及包括鼠标、键盘和 强力反馈游戏控制器在内的其它相关设备的输入。 d i r e c t xp l a y 组件支持通过调制解调器、i n t e r n e t 或局域网连接游戏。d i r e c t xp l a y 简 化了对通信服务的访问,并提供了一种能够使游戏彼此通信的方法而不受协议或联机服 务的限制。d i r e c t p l a y 提供了多种游说服务,可简化多媒体播放器游戏的初始化,同时 还支持可靠的通信协议以确保重要游戏数据在网络上不会丢失。d i r e c t xp l a y 最新功能即 支持通过网络进行语音通信,可大大提高基于多媒体播放器小组的游戏的娱乐性,同时 该组件还通过提供与玩游戏的其他人对话的功能而使团体游戏更具魅力【2 2 1 。 2 3 3d i r e c t x 9 0 中资源管理 1 d i r e c t x 9 0 中的资源分类d i r e c t x 9 0 中把资源( d i r e c t 3 dr e s o u r c e ) 分为两类即 缓冲区资源b u 脑s ,纹理资源1 碌t u r 镐。用户可以对这些资源进行创建、载入、复制、 使用资源。 2 d i r e c t x 9 0 中的资源存储用户可以指定资源的存储方式,d i r e c t x 支持三种存储 方式即系统内存( s y s t e mr a m ) 、通过a g p 直接访问的内存( a g p a p a r t u r e ) 、显存( v i d e o r a m ) 。 s y s t e mr a m 中的资源c p u 可以快速访问,对其进行操作。当需要绘制时d 3 d 会 将资源拷贝到显存,所以绘制该类型的资源速度较慢。 v i d e or a m 中的资源g p u 可以快速进行绘制,但c p u 访问较慢。 西南交通大学硕士研究生论文第1 3 页 a g p a p a l t 叫e 中的资源是前两种的很好折中,但绘制时直接通过总线提交到显存中 供g p u 绘制,同时c p u 也可以直接访问进行资源的操作瞄1 。 2 4 x 文件介绍 x 文件是一种以x 为扩展名的文件,它提供了一种基于模板驱动的形式来存储网 格,纹理,动画以及用户自定义的数据对象。支持动画集,它可以实时播放预定义的动 画。支持实例化和继承。实例化可以针对一个物体有多个引用,如网格只要存储一个数 据实体,可以在多个地方引用;继承可以使得多个数据之间存在传递关系【2 2 1 。 西南交通大学硕士研究生论文第1 4 页 3 1 系统功能需求 第3 章引擎总体设计 作为游戏开发人员,他们所关心只是游戏本身逻辑的实现,如不同场景使用什么样 的地形,放什么样的音乐,与n p c ( 非玩家角色) 的对话内容等;而这些功能具体怎么 通过计算机来实现则是由游戏引擎来完成。 因此游戏引擎的功能是提供游戏开发过程中所需要的底层技术,具体如下所示: 调用计算机图形处理功能,渲染整个游戏世界。 管理计算机的输入设备,接收用户

温馨提示

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

最新文档

评论

0/150

提交评论