Ogre中载入OgreMax场景文件的方法

看到很多人对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类。

你可能感兴趣的:(Ogre中载入OgreMax场景文件的方法)