1

我正在编写自己的 Ogre 应用程序,基于基本的食人魔教程。

有谁知道在没有第一个设置对话框的情况下启动 OgreRenderWindow 的方法?

我知道Ogre Basic tutorial 6,但它不起作用。

感谢 4 帮助

4

2 回答 2

3

对于较新版本的 Ogre,上述解决方案将不起作用。

您可以执行以下操作....

  #if defined OIS_LINUX_PLATFORM
  mRoot->loadPlugin("/usr/lib/OGRE/Plugin_ParticleFX");
  mRoot->loadPlugin("/usr/lib/OGRE/Plugin_CgProgramManager");
  mRoot->loadPlugin("/usr/lib/OGRE/Plugin_OctreeSceneManager");
  mRoot->loadPlugin("/usr/lib/OGRE/Plugin_PCZSceneManager");
  mRoot->loadPlugin("/usr/lib/OGRE/Plugin_OctreeZone");
  mRoot->loadPlugin("/usr/lib/OGRE/Plugin_BSPSceneManager");
  mRoot->loadPlugin("/usr/lib/OGRE/RenderSystem_GL");
  #endif

  Ogre::RenderSystemList::const_iterator renderers = mRoot->getAvailableRenderers().begin();

  while(renderers != mRoot->getAvailableRenderers().end())
  {
    Ogre::String rName = (*renderers)->getName();

    if (rName == "OpenGL Rendering Subsystem")
      break;

    renderers++;
  }

  Ogre::RenderSystem *renderSystem = *renderers;
  renderSystem->setConfigOption("Full Screen","No");
  renderSystem->setConfigOption("Video Mode","1024 x 768 @ 32-bit colour");
  renderSystem->setConfigOption("Display Frequency","50 Hz");
  renderSystem->setConfigOption("FSAA","16");
  renderSystem->setConfigOption("Fixed Pipeline Enabled","Yes");
  renderSystem->setConfigOption("RTT Preferred Mode","FBO");
  renderSystem->setConfigOption("VSync","No");
  renderSystem->setConfigOption("sRGB Gamma Conversion","No");

  mRoot->setRenderSystem(renderSystem); 

  // Create a render window
  mWindow =  mRoot->initialise(true, "MyGame v0.0.1");
于 2013-09-29T22:04:15.703 回答
2

你可以在这里找到一个没有设置对话框的 Ogre init 示例。

对于 Ogre::Root 实例,您只需使用设置渲染系统setRenderSystem,然后您可以使用设置配置选项(如在设置配置对话框中)setConfigOption()

    Root* root = new Root; 
    root->loadPlugin("/usr/local/lib/OGRE/RenderSystem_GL");      
    RenderSystemList *rs = root->getAvailableRenderers(); 
    if(rs&&rs->size()&&rs->at(0)->getName().compare("RenderSystem_GL"))
    { 
             RenderSystem * r=rs->at(0); 
             root->setRenderSystem(r); 

             r->setConfigOption("Full Screen","No");  
             r->setConfigOption("Video Mode","800 x 600 @ 16-bit colour"); 
     }
     else
     { 
             // report error
     } 
于 2012-09-14T13:49:33.400 回答