欢迎来到天天文库
浏览记录
ID:37455064
大小:2.14 MB
页数:63页
时间:2019-05-24
《OGRE周边版块》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、OGRE周边版块OGRE本身作为图形引擎是非常强大的,但是如果要想只用它来做游戏还是不够的,我们必须有声音,界面,物理,输入,人工智能等等。很幸运OGRE现在有着庞大的社群支持(OGRE中文GAMERES是中文网站中人最多的),在几乎各个可能需要的领域都有许多优秀人才做着基础的工作,而且绝大多数是免费或者近乎免费的提供使用。在这么多前人的努力只下,使用OGRE做游戏
2、虚拟现实已经变的容易的多了。1、声音在OGRE添加声音有很多选择,比如:DXSOUND、DXMUSIC、FMOD、OPENAL、AUDIERE等等,这完全看个人爱好以及对这些S
3、DK的熟悉程度来选择了。DXSOUND、DXMUSIC都是DIRECTX组件,会使用的人也很多,很容易能找到相关的书籍,所以我主要介绍后面几个声音引擎在OGRE中的使用。1.1FMODTheFMODEx声音系统是一个针对多种音频开发人员的解决方案,包括游戏开发人员、多媒体开发者、声音设计师、甚至是音乐家、音频引擎的开发者,它是基于Firelight多年在声音引擎开发方面的经验研发而成。官方网站:http://www.fmod.org,提供FMOD的免费下载,当然如果商用的话还是要购买使用权,不过价格还是很便宜的,100美元。现在有很多游戏公司
4、已经选择它作为自己声音库,搜狐的天龙八部,还有暴雪公司也放弃了自己原来做的声音库并购买了FMOD的使用权等等就不多说了。FMOD支持几乎所有的声音格式:.MOD,.S3M,.XM,.ITor.MID……而且可以运行在windows,winCE,Linux,GameCubeXbox等平台上。下面介绍简要FMOD的使用的方法首先下载API(OGRE的API、FMOD的API)并且安装配置环境,需要注意的是使用不同的IDE需要舔加不同的LIB文件:fmodvc.lib用于MicrosoftVisualC++和Codewarriorfmodbc.li
5、b用于Borlandfmodwc.lib用于Watcomfmodcc.lib用于LCC-Win32libfmod.a用于MingWandCygWinfmod-3-7.lib用于GCC以MicrosoftVisualC++2005为例,舔加fmodvc.lib,然后加如入fmod.hpp头文件后就可以使用了.以Demo_ParticleFX这个例子为原型,向其中加FMOD代码实现简单的声音效果。Demo_ParticleFX原代码如下:(头文件#include"ExampleApplication.h"/*加入必要的头文件*/#include"
6、../../api/inc/fmod.hpp"//*******************************#include"../../api/inc/fmod_errors.h"//*******************************#include//*******************************#include//*******************************#include//***************************
7、****/*定义初始化常用的参数*/FMOD::System*system=0;//*******************************//FMO系统,也算是最根本的部分FMOD::Sound*sound=0;//*******************************//声音,和一个声音文件关联,比如**.waveFMOD::Channel*channel=0;//*******************************//声道FMOD_RESULTresult;//**************************
8、*****//结果,主要是根据函数返回的结果,做出相应的处理。unsignedintversion;//*******************************//版本//EventhandlertoaddabilitytoaltercurvatureclassParticleFrameListener:publicExampleFrameListener{protected:SceneNode*mFountainNode;public:ParticleFrameListener(RenderWindow*win,Camera*cam,
9、SceneNode*fountainNode):ExampleFrameListener(win,cam){mFountainNode=fountainNode;}
此文档下载收益归作者所有