欢迎来到天天文库
浏览记录
ID:12302947
大小:34.00 KB
页数:0页
时间:2018-07-16
《深入分析游戏引擎》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、深入分析一款游戏引擎在分析任何一款游戏引擎之前,我们首先需要明白一个问题,即什么是游戏引擎?作为一个不怎么玩游戏的女孩子,听到“游戏引擎”四个字,立马会猜想:游戏引擎大概就像汽车发动机一样,有了它,整个游戏才具有生命力,汽车失去发动机就只能成为摆设了吧。根据维基百科等的解释,游戏引擎的概念大致如下:首先,它是一些已经编写好的可编辑的电脑游戏系统或者一些交互式实时图像应用程序的核心组件;其次,它为游戏设计者提供各种编写游戏所需的工具,让游戏设计者能够在一定基础上方便而又快速地开发新产品;再次,游戏引擎包含诸多系统,如渲染引擎、物理引擎、碰撞检测系统、音效脚本引擎、电脑动画、人
2、工智能、网络引擎以及场景管理等等。由于它提供了游戏开发者一套凌驾于硬件层与用户界面之间的可重用的全功能封住,减少了独立开发费用和时间,所以游戏引擎也被称为“游戏中间层”。另外,它也经常被用于其他所需的互动领域,如商业产品介绍、模拟训练以及建筑效果预览等。通过几天在游戏开发网站上的浏览和学习,我将深刻分析其中一款游戏引擎——OGRE,即Object-OrientedGraphicsRenderingEngine(面向对象的图形渲染引擎)。我选择分析介绍该游戏引擎是基于以下几个原因:首先,它具有悠远的历史,是目前开源领域排名第一的图形引擎,具有一定的代表性。其次,它几乎拥有了商
3、业3D渲染引擎的全部特性,甚至在某些方面超越了它们。三、最后,经过老师的推荐,这是一款值得我们去学习和探索的游戏引擎。在分析该款游戏引擎之前,首先我们要对它的相关概念有一个充分的了解。什么是Ogre?如前所述,它是一款面向对象的图形渲染引擎,也被称为Ogre3D,是一个用C++开发的面向场景、非常灵活的3D引擎。在这里,我也很困惑Ogre到底属不属于一款游戏引擎。据百度百科等相关资料的显示,它被用于开发游戏,但实际上不是一个游戏引擎。主要原因在于Ogre缺少游戏引擎的一些部分,只能被称为一款图形引擎;如果你想通过它来开发游戏,还需要其他开发库的结合(声音、网络、输入、碰撞处
4、理等)。综合起来考虑,Ogre还不是个完整的游戏引擎。这个拥有怪物头Logo的图像引擎,为游戏设计者提供了一个很好的开发平台,代码开源,在业内具有赫赫大名。当人们提到有哪些开源游戏引擎时,Ogre的名字是不可能被遗忘的,而且对它的评价也很高。几天前我从ogre3d官网上下载并安装了Ogre。亲身体验过Ogre之后,明显能感受到它的优异特性,尤其是它的那些Demo。与其他的游戏引擎相比,Ogre具有很多优势。首先,作为一款商业引擎,它比gamebryo等其他游戏引擎都具有更强的图形渲染功能。其次,它的代码是免费而开源的,面向对象的,并且高效。再次,它抽象化了不同的API和平台
5、,可以以场景为对象来使用物体,支持多种场景,已经被成功地应用于诸多三维仿真领域,包括网络游戏和三维仿真项目。最后,它能让开发者方便和直接开发基于3D硬件设备的应用程序或游戏。仔细考究,Ogre有多方面的特点。从平台和3DAPI支持上来看,它支持多个平台,如Windows、Linux等,并支持从PNG、JPEG或TGA这几种文件中加载纹理,自动产生MipMap,自动调整纹理大小及坐标等。从网格Meshes方面来看,它具有高效的网格数据格式,支持用Bezier样条实现曲面和骨骼动画,并提供插件支持Milkshape3D导出Ogre本身的.mesh以及.skeleton文件格式。
6、从场景特性方面来看,它可以通过包围体、包围盒来实现视域剪裁,通过二叉树场景管理器插件加速室内场景的渲染,拥有高效率和高可配置性的资源管理器来支持多种场景类型。从特效方面来看,它可以支持Billboard以实现特效,支持天空盒、天空面、天空圆顶等,使用起来非常方便。最后,其他特性方面,支持资源管理和文档加载,支持高效插件体系结构等技术。现在,我将详细从五个方面来分析Ogre引擎。一、Ogre消息机制消息的产生地即从各种输入设备读取数据。消息在被处理之前会先被发送给Listeners,改变消息处理的默认行为。真正处理消息的地方是EventListener,而消息的代理分发是通过
7、EventDispatcher。从消息处理整个过程来看,程序进入Root::startRendering()后,开始进行消息循环;EventProcessor将队列中所有的消息通过EventDispatchers分发给EventTarget处理。总体过程简化为:InputReader→EventProcessor→EventDispatcher→EventTarget→EventListener。二、Ogre文件系统Ogre文件系统可以分为目录管理和文件管理两大类。它不仅可以读取普通的文件,也可以读取Zip压缩文件
此文档下载收益归作者所有