环境:
Windows 7 64Bit
Visual Studio 2012
OGRE 2.1
CMake 2.8.12.1
OGRE:
OGRE官方推出了最新的OGRE2.1版本,链接地址:
https://bitbucket.org/sinbad/ogre/downloads
新版本的OGRE做出了大量的修改,从官方给出的文档我们可以看出作者们对OGRE进行了优化与完善。从上面链接中下载的官方版本并没有包含编译需要的依赖项(一向都这样),所以我们需要下载OGRE的依赖。
OGRE Dependencies : ogredeps
ogredeps工程可以在一下的链接地址下载到:
https://bitbucket.org/cabalistic/ogredeps/downloads
这些开源项目因为许可等种种原因搞的非常麻烦,在这个下载项中有没有SDL,所以我们还得另外下载SDL。
SDL:
在上述链接地址的“Source”页面中,列举出了依赖项源代码的目录树,打开“src”文件夹会看到“SDL2”的链接,然后打开这个链接后,我们就会在新的页面找到SDL2的下载地址(其实也很难找),如下图所示。
将解压后的“./SDL-c3c3cdaf37f9”中的所有文件拷贝到ogredeps解压后的“./src/SDL2”文件夹中。
ogredeps 编译:
现在可以编译OGRE的依赖了,首先需要使用CMake生成工程项目,在CMake的“Where is the source code:”输入源代码位置,像这样:“...\cabalistic-ogredeps-eb18d4651ec7”,在“Where to build the binaries:”中输入输出位置,像这样:“...\cabalistic-ogredeps-eb18d4651ec7\output”(output文件夹自己新建,可随意指定),然后点击“Configure”,选择编译器版本(如:Visual Studio 11.0),配置成功后CMake输出文本框会显示“Configuring done”,最后点击“Generate”生成vs工程项目,生成成功后会显示“Generating done”。如下图所示。
上述操作步骤成功后就可以进入“...\output”文件夹,用vs2012打开.sln项目的,然后选择“ALL_BUILD”工程项目,进行“全部重新编译”,编译成功后选择“INSTALL”工程项目进行“重新编译”,编译成功后会在“...\output”文件夹中生成“ogredeps”文件夹,该文件夹中包含了所有OGRE编译所需要的所有依赖项目。
OGRE 编译:
编译步骤同上面编译ogredeps步骤相似(需要提前安装Direct X),只不过需要将上面“ogredeps”文件夹拷贝到解压后的文件夹“...\sinbad-ogre-51e90cec4c17”中
(这里我在生成工程项目的时候,CMake总是在一个叫“...\Dependencies”的文件中寻找依赖项,而不在ogredeps中寻找,可能是我的CMake配置有关系,最后没有办法我只能将刚才拷贝过来的“ogredeps”文件夹改名为“Dependencies”,如果知道原因的同学,可以在评论中指点),如下图所示。
当“Configure”和 “Generate”成功后,就可以在“...\output”中着调.sln工程项目,打开工程后还是依次编译“ALL_BUILD”和
“INSTALL”两个工程,编译成功后就将工程“SampleBrowser”设置为“启动项”,运行就可以看到OGRE官方例子。
问题:
由于我没有安装Direct3D11,所以运行出现如下错误:
只需要将“...\Output\bin\debug”文件夹中配置文件plugins_d.cfg中的“Plugin=RenderSystem_Direct3D11_d”用“#”注释掉即可。
最终运行结果如下如所示。