返回> 网站首页 

CEGUI 与 Irrlicht的结合使用

yoours2011-01-24 17:28:12 阅读 1195

简介一边听听音乐,一边写写文章。

 Irrlicht是一个很容易上手的3D开源引擎,最近我想用它做点东西,但是它的GUI并不是很强大,于是就想到用CEGUI来解决GUI部分的问题。
 CEGUI在界面处理方面相当的强大,但是CEGUI本身不提供渲染功能,这样的设计给了他依附于别的渲染引擎的可能。从官方网站下载最新的CEGUI源码   http://www.cegui.org.uk/phpBB2/viewtopic.php?f=6&t=4443     
目前最新的是0.7.1版本,如果使用VS2005的话需要安装传说中无比强大的SP1补丁,并最好安装sp1的分发包,我的vs05在装完这些东西之后并不是很好使,有些奇怪的问题,比如Debug不可用,Release版本的可用,后来我发发狠,用了vs08,什么问题都没了。 
1.
 0.7.x的目录结构和之前的不同,在我看来这个新的结果比以前的好多了。生成解决方案的批处理在CEGUI-0.7.1\projects\premake下,在运行批处理之前,我们还需要改下配置文件,使其支持Irrlicht。在同一目录下,我们可以看到config.lua文件,用Notepad++或者其他文本编辑器打开,在第60行处:
-- Renderers
-- this controls which renderer modules are built
OPENGL_RENDERER = true
DIRECT3D9_RENDERER = true
DIRECT3D10_RENDERER = false
IRRLICHT_RENDERER = true
OGRE_RENDERER = false
这里很明显的可以看到以上是用来控制那些渲染器将会被使用,我们把IRRLICHT_RENDERER的值设为true,以便支持Irrlicht。
2.另外在122行:
-- Samples
-- remember you have to edit CEGUISamplesConfig.h as well this just controls
-- dependencies etc. if the renderer is disabled this has no effect
SAMPLES_GL = true
SAMPLES_DX9 = true
SAMPLES_DX10 = false
SAMPLES_IRRLICHT = true
SAMPLES_OGRE = false
我们把SAMPLES_IRRLICHT 也设为true,这样我们就可以再示范代码中看到Irrlicht是否能正常工作。
把这两处改变之后,保存。这个时候我们还要再等等在运行批处理。

3.解决CEGUI的工程之后,我们可想而知还需要一份Irrlicht的源码或者SDK,在http://irrlicht.sourceforge.net/ 处下载最新版本,嗯,最新版是1.7.1,在config.lua中第17行:
--- Irrlicht SDK Version
--- 14 is means 1.4 or 1.5.x and 16 means 1.6 (and above?)
CEGUI_IRR_SDK_VERSION = 17
将CEGUI_IRR_SDK_VERSION 改为17,表示最新版本1.7.1。

4. config.lua第12行:
IRRLICHT_PATHS = { "Irrlicht", "include", "lib/Win32-visualstudio" }  这个设置将会自动添加Irrlicht的路径,这样我们可以在\CEGUI-0.7.1下建立一个文件夹叫 Irrlicht,然后将Irrlicht SDK中Include和lib两个文件夹拷入其中。这个时候,路径的问题就解决了。
5.最后把Irrlicht SDK中目录 \irrlicht-1.7.1\bin\Win32-VisualStudio 下的两个dll(irrlicht.dll , irrKlang.dll)拷入到\CEGUI-0.7.1\bin下 ,现在目录和dll依赖的问题都解决了。
6.最后运行build_vs2008.bat 和build_samples_vs2008.bat ,在运行生成的解决方案,我们可以看到CEGUi.sln中已经有了CEGUIIrrlichtRenderer这个工程,生成解决方案。在打开CEGUISamples工程,运行任意一个Demo,可以发现渲染器选择的地方也有了irrlichtRenderer,选择该Renderer之后,效果和其他两个渲染器一样。

注意,Irrlicht的文件夹和cegui的文件夹是同一级,即\CEGUI-0.7.1\cegui    \CEGUI-0.7.1\Irrlicht;
          要将IrrlichtSDK中bin目录下dll拷到CEGUI-0.7.1目录下的bin目录下,见第5条。

微信小程序扫码登陆

文章评论

1195人参与,0条评论