在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類。