这几天一直都在被这个问题困扰,各种方法都试了,都快哭了,现在终于OK了。先Mark一下,
免得日后又忘了。
1.基本框架
基本框架就不自己亲自搭建了,打算直接用Ogre官网提供的TutorialFramework,先将此平台
搭建好,详情可参考另一篇博文http://blog.csdn.net/liygcheng/article/details/9923989
2.配置好OgreMaxScene 相关文件
a.首先需要从OgreMax官网上下载OgreMaxViewer文件,相关链接http://www.ogremax.com/downloads
注意,要的是OgreMax Viewer for Windows那一项。
b.在你的OgreMaxViewer文件夹下找到Code文件夹,例如我的是G:\OgreMaxViewers2.4.8\OgreMaxViewers\Common\Code
在Code文件夹中找到以下头文件以及实现文件,并add进解决方案
OgreMaxModel.hpp
OgreMaxModel.cpp
OgreMaxPlatform.hpp
OgreMaxRenderWindowIterator.hpp
OgreMaxScene.hpp
OgreMaxScene.cpp
OgreMaxTypes.hpp
OgreMaxUtilities.hpp
OgreMaxUtilities.cpp
ProgressCalculator.hpp
ProgressCalculator.cpp
Version.hpp
Version.cpp
再在Code文件夹的子文件夹tinyxml将所有文件(.hpp和.cpp,txt就不用了)add进解决方案,如下
tinystr.h
tinyxml.h
tinyxml.cpp
tinyxnl2.h
tinyxnl2.cpp
tinyxmlerror.cpp
tinyxmlparser.cpp
特别要注意的是:
tinyxml文件夹下并没有包括tinystr.h的实现文件tinystr.cpp,这个需要自己从网上download下来
给个链接:http://sourceforge.net/projects/tinyxml/
然后也给add进去(最好直接给复制到tinyxml文件夹下,以免后面要多添加一个路径)
c.项目属性配置
在属性配置中,C++/常规/附加包含目录中加入Code文件夹(以及tinyxml文件夹)的路径
例如我的是G:\OgreMaxViewers2.4.8\OgreMaxViewers\Common\Code和
G:\OgreMaxViewers2.4.8\OgreMaxViewers\Common\Code\tinyxml
最后的解决资源管理器中应该是这个样子:
3.修改代码,在TutorialFramework基本框架中load场景
建议首先了解一下Ogre启动的流程,详见另一篇博客http://blog.csdn.net/liygcheng/article/details/16964515
需要修改的代码:
BaseApplication.h
改动之处:
1.添加头文件 #include"OgreMaxScene.hpp"
2.添加新变量 OgreMax::OgreMaxScene *oms;
BaseApplication.cpp
改动之处:
1.变量初始化(构造函数中初始化) oms(0)
2.在setup()函数中紧接着mRoot实例化,oms = new OgreMax::OgreMaxScene;
TutorialApplication.cpp
改动之处:
在createScene()函数中添加以下:
//场景文件后面再来说,先假设场景文件可用
oms->Load("scene.scene",mWindow,OgreMax::OgreMaxScene::NO_OPTIONS,mSceneMgr,0);
mSceneMgr = oms->GetSceneManager();
//设置环境光
mSceneMgr->setAmbientLight(Ogre::ColourValue(0.5f,0.5f,0.5f));
//创建光源并设置其位置
Ogre::Light* light = mSceneMgr->createLight("MainLight");
light->setPosition(20.0f,80.0f,50.0f);
4.修改配置文件resources_d.cfg,添加场景文件路径
在OgreSDK中的bin\debug路径下找到resources_d.cfg文件,在[General]中添加
FileSystem=G:/OgreMaxViewers2.4.8/OgreMaxViewers/Common/Media/scenes/Random
注意:此处应为你的 scene场景文件的路径
5.编译运行