我正在编写自己的 Ogre 应用程序,基于基本的食人魔教程。
有谁知道在没有第一个设置对话框的情况下启动 OgreRenderWindow 的方法?
我知道Ogre Basic tutorial 6,但它不起作用。
感谢 4 帮助
我正在编写自己的 Ogre 应用程序,基于基本的食人魔教程。
有谁知道在没有第一个设置对话框的情况下启动 OgreRenderWindow 的方法?
我知道Ogre Basic tutorial 6,但它不起作用。
感谢 4 帮助
对于较新版本的 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");
你可以在这里找到一个没有设置对话框的 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
}