好久没有再碰过OGRE(食人魔)引擎了,之前一直在探索Irrlicht(鬼火)。
最近突然对食人魔重新起了兴致,不如再次开始吧,能学到哪里就那里吧。
本文关注OGRE3D引擎1.81.版本的源码编译,然后放送一个简单的示例(加入了IrrKlang音频播放)。
如有疑问可取官网,链接戳这里http://www.ogre3d.org/
假设在Windows (Win7, Win8, Win8.1均可)下配置了cmake和Visual Studio (推荐VS2010,VS2012,VS2013)
博主在win8.1 x64及win7 x64上分别安装了VS2013,以32位方式编译。
下载源码及依赖包
首先配置依赖包
打开CMake-gui,设置源码目录以及编译后安装目录
点击Configure设置编译器之后,再次点击Configure,这是CMake会提示Configure done
然后点击Generate生成,如果提示Generate done表示sln解决方案已生成
用VS打开sln,首先选择ALL_BUILD项目编译,编译完成之后再选择INSTALL编译
记住这里的依赖包目录,后面要用到
然后配置ogre 1.8.1 src for windows
同上,设置源目录和安装目录
点击Configure第一次设置编译器
第二次点击Cofigure,设置依赖包目录,找到INSTALL_PREFIX字样(安装目录)设置为OGRE安装目录
第三次点击Configure提示Configure done
最后点击Generate生成sln解决方案
用VS打开sln编译ALL_BUILD之后在编译INSTALL完成安装
如果之前选择了编译Smaples,你会在Samples目录下找到SampleBrowser.exe
这是一个包含丰富示例的demo,碉堡!
随便打开一个看看
提示:安装完毕后建议将OGRE的bin目录添加到系统环境变量Path中
接下来是一个简单的示例(入门级别)
新建一个空项目然后添加cpp源文件,完善代码如下
// OGRE Example Hello
#include
#include
#pragma comment(lib,"OgreMain.lib")
#pragma comment(lib,"OIS.lib")
#pragma comment(lib,"irrKlang.lib")
using namespace Ogre;
using namespace irrklang;
class ExampleHello : public ExampleApplication
{
public:
void createScene()
{
Entity* ent1 = mSceneMgr->createEntity("MyEntity1", "Sinbad.mesh");
SceneNode* node1 = mSceneMgr->createSceneNode("Node1");
node1->attachObject(ent1);
mSceneMgr->getRootSceneNode()->addChild(node1);
soundEngine = createIrrKlangDevice(ESOD_AUTO_DETECT, ESEO_DEFAULT_OPTIONS);
sound2D = soundEngine->play2D("1.mp3", true, true, false, ESM_AUTO_DETECT, true);
ISoundEffectControl* fx = sound2D->getSoundEffectControl();
fx->enableDistortionSoundEffect();
sound2D->setIsPaused(false);
}
void soundDrop()
{
sound2D->drop();
soundEngine->drop();
}
private:
ISoundEngine* soundEngine;
ISound* sound2D;
};
int WinMain(HINSTANCE h1, HINSTANCE h2, LPTSTR cmdline, int cmdshow)
{
ExampleHello app;
app.go();
app.soundDrop();
return 0;
}
注意配置OGRE和IrrKlang目录
编译之后生成exe,相关资源如下
其中RenderSystem_Direct3D9.dll是将要设置的渲染系统(DX9)
另外有两个cfg文件很重要
其中plugins.cfg配置插件
resources.cfg配置资源
执行主程序,弹出配置窗口(之后会生成ogre.cfg文件)
渲染系统选择DirectX9
设置其它参数,如显示分辨率等
配置完成后执行效果如下
注:运行过程中按截图键可以自动截图
每次配置之后,配置设定会反映在ogre.cfg文件里(某一行文字被我修改了,你知道吗?)
这是一个入门示例,代码比较少,大部分继承自ExampleApplication,只有createScene函数被重载。
更多内容请关注本系列后续。
本文原创,博文地址
http://blog.csdn.net/fengyhack/article/details/44421221