• Ogre中调用OgreMaxViewer来load场景文件.scene




    这几天一直都在被这个问题困扰,各种方法都试了,都快哭了,现在终于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.8OgreMaxViewersCommonCode
     在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.8OgreMaxViewersCommonCode和
    G:OgreMaxViewers2.4.8OgreMaxViewersCommonCode inyxml

    最后的解决资源管理器中应该是这个样子:



    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中的bindebug路径下找到resources_d.cfg文件,在[General]中添加
     FileSystem=G:/OgreMaxViewers2.4.8/OgreMaxViewers/Common/Media/scenes/Random
     注意:此处应为你的 scene场景文件的路径
     
     5.编译运行
     

     
     
     

  • 相关阅读:
    转: sql语句获取本周、本月数据
    Java 程序中的静态代码块
    Java 控制台程序输出计时器代码
    网页出现“繁体字”?
    html5中video视频只有声音没有图像
    Clipboard 剪辑板
    区分window8中 ie10 window phone8
    void 0
    touch pointer
    全局作用域 eval
  • 原文地址:https://www.cnblogs.com/ainima/p/6331160.html
Copyright © 2020-2023  润新知