在ogre中加載 ogremax場景文件方法

 

在ogre中加載 ogremax場景文件方法

發佈: 2009-2-10 21:54 |  作者: webmaster |  來源: 本站原創 |  查看: 27次

看到很多人對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類。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章