看到很多人对ogremax在ogre中怎么加载不大熟悉,其实作者有一篇文章有介绍的,我把我自己在我的ogreview中用ogremax的方法写下来,供各位参考。
(1)首先下载最新的ogremax.
(2)找到图片中列出来的文件,放到自己的程序目录中
(3)同时把解析XML的tinyxml相关文件负责知道程序目录
(4)把以上文件加到项目中,编译,应该是编译通过的。
(5)然后就是在程序中应用了
我在这里直接贴出我的代码
头文件:
#include"ogreSceneNode.h"
#include"of/OgreOSMScene.h"
#include"of/IOSMSceneCallbacks.h"
#include "OgreMax/OgreMaxScene.hpp"
#include "Common/Global.h"
#include "scene/graphics/MovableTextOverlay.h"
class CScene : public Ogre::FrameListener, public WindowEventListener,public OSMSceneCallbacks
{
public:
CScene(void);
CScene(HWND wnd,CRect rc);
~CScene(void);
private:
std::vector<MovableTextOverlay*> myVect;
OgreMax::OgreMaxScene* m_maxScene;
//装入 OSM
OSMScene* m_osmScene;
这里面也包括了 osm的定义,我把ogremax,osm,mesh,材质的显示封装到一个类了
CPP文件实现
初始化时new一个OgreMax::OgreMaxScene();
m_maxScene = new OgreMax::OgreMaxScene();
然后在建立场景的函数中加入
void CScene::LoadSCENE()
{
m_maxScene->Load(m_mediaFileName,this->m_Window,OgreMax::OgreMaxScene::NO_OPTIONS);
this->m_SceneManager = m_maxScene->GetSceneManager();
m_Camera = m_SceneManager->createCamera("PlayerCam");
在这里注意 SceneManager我是在 ogremax创建的,如果用你自己的,就要把你的SceneManager 传入,是第四个参数,要明白 LoadOptions的用法,看看这个枚举的内容就很清楚了,其它的都一样。
mediaFileName就是那个场景文件名。
还是比较简单的。
如果理解回调函数,就看看OgreMaxSceneCallback类。