一、相关SDK的准备
1、Ogre 3D
Ogre 3D是一个成熟,稳定,可靠,灵活,跨平台,而且拥有丰富功能实时3D图形库,几乎拥有了商业3D渲染引擎的全部特性,甚至在某些方面超越了它们。
多的就不介绍了,相关资料可以从Ogre的官网www.ogre3d.org上获得。写这篇博客的时候Ogre的最新版本是1.7.1,可以通过http://www.ogre3d.org/download获得。这里直接下载OGRE 1.7.1 SDK for Visual C++ .Net 2010 (32-bit)。
2、CEGUI
CEGUI是一个2D的UI渲染库。它支持大部分渲染引擎,不仅支持Ogre,也同样的支持OpenGL和Irrlicht引擎。它同时又是基于XML脚本文件格式应用的一个重量级库。
相关资料可以从CEGUI官网www.cegui.org.uk上获取。当前的最新版本是0.7.1,因为该版本目前暂时没有提供VS2010下的SDK所以选择下载Windows平台下的CEGUI 0.7.1 Library Source。同时还需下载其所依赖的库文件,幸运的是CEGUI已经为我们将其打包好了J
3、OpenAL
OpenAL是一个开源声音引擎,并一直在不断的创新,几乎没有一个API能达到它的全部潜能。一个很大的原因是因为hardware加速建立在特殊的板卡上。然而,OpenAL的设计者经过无数的测试使她成为一个高级的API。她的风格是自由的,不同的编码风格和hardware部件将充分运用她的功能。OpenAL有建立3D环境音效的能力。这里我们将用它扩展Ogre对声音的支持。
相关资料可以在OpenAL官网http://connect.creativelabs.com/openal/default.aspx上获得。这里下载的SDK为OpenAL11CoreSDK。
二、Visual Studio 2010 环境配置
1.解压SDK
为了方便管理这些SDK,可以把它放到同一个文件夹下。不妨取名叫Extensional SDK。
i. 运行 OgreSDK_vc10_v1-7-1.exe,选择文件释放到Extensional SDK文件中即可。
ii. 解压CEGUI-0.7.1.zip到任意路径下,再在Extensional SDK文件夹下建立名为CEGUI的文件夹(当然可以是其他任意名字,知道里面放什么就可以了)。将刚才解压得到的bin,cegui,datafiles,lib四个文件夹拷贝到刚才新建的CEGUI文件夹中。
iii. 在Extensional SDK文件夹下建立名为OpenAL的文件夹,解压OpenAL11CoreSDK.zip得到OpenAL11CoreSDK.exe,运行该安装程序,待安装完成后,找到OpenAL所安装的目录,将include和libs文件夹拷贝到刚建立的OpenAL文件夹中。
2、设置环境变量
假设刚才的SDK都放在D:/ Extensional SDK/下,新建环境变量(我的电脑→属性→高级系统设置→环境变量→新建(系统变量))OGRE_HOME_VS10(键值D:/ Extensional SDK/OGRE/),CEGUI_HOME_VS10(键值D:/ Extensional SDK/CEGUI/),OPENAL_HOME_VS10(键值D:/ Extensional SDK/OpenAL/)。因为本地计算机中可能装有Visual Studio的多个版本,为了标明本次装的SDK针对的是Visual Studio 2010,所以新建环境变量名后都加上了VS10。
3、在VS2010中设置项目所依赖的文件
点击“项目”→“属性”→“配置属性”→“C/C++” →“常规”,在“附加包含目录”中添加$(OGRE_HOME_VS10)include,$(OGRE_HOME_VS10)include/Ogre,$(CEGUI_HOME_VS10)include,$(OpenAL_HOME_VS10)include。细心观察可以发现,VS2010中的宏$(OGRE_HOME_VS10)就是对应的环境变量OGRE_HOME_VS10,额外罗嗦一下,如果填写相对路径,则是相对于.sln文件所在路径。
接下来对所依赖的库进行配置,以配置Debug模式下为例。点击“项目”→“属性”→“配置属性”→“链接器” →“常规”,在“附加库目录”中添加$(OGRE_HOME_VS10)lib/debug,$(CEGUI_HOME_VS10)lib,$(OpenAL_HOME_VS10)libs,然后在“输入”中添加依赖的库的名字如:OgreMain_d.lib。
三、重新编译CEGUI
刚才提到,CEGUI没有提供VS2010下的SDK,所以需要我们自行编译。
1、 将CEGUI-DEPS-0.7.x-r1-vc10.zip解压到任何目录下,然后将整个解压得到的文件拷贝到刚才解压CEGUI-0.7.1.zip所得到的文件夹下,即CEGUI-0.7.1文件夹下。
2、 打开“CEGUI-0.7.1” →“projects” →“premake” 文件夹,然后打开“config.lua”文件,该文件是对过阵要生成的工程的配置文件。将OGRE_PATHS变量值改为{ “$(OGRE_HOME_VS10)”,”include/OGRE”,”lib”},IOS_PATHS变量值改为{“$(OGRE_HOME_VS10)”,”include/OIS”,”lib”},因为我们时用CEGUI扩展Ogre,所以把OGRE_RENDERER设置为true。从Ogre 1.7以后“boost”库成为了Ogre的一个新的依赖库,所以需要添加boost到CEGUIOgreRenderer的扩展路径中:
CEGUI_EXTRA_PATHS = { “$(OGRE_HOME_VS10)”,”boost_1_42”,”boost_1_42/lib”,”CEGUIRenderer”}。设置好后保存“config.lua”文件。
3、 运行“build_vs2008”后会生成“CEGUI.sln”文件,用Visual Studio 2010打开该文件,将会自动将其转换为vs2010的项目解决方案,打开“CEGUIMultiColumnList.cpp”将第702行中的0修改为nullptr(具体原因在此查看),然后编译整个解决方案。
将编译后得到的lib和dll文件分别拷贝到CEGUI SDK所在目录的lib和bin文件夹中(即:D:/Extensional SDK/CEGUI/lib和D:/Extensional SDK/CEGUI/bin)。