总结一下最小ogre程序的流程:

1 创建Ogre::Root

2 用Ogre::Root加载插件,必须载入的是场景管理器和渲染器

3 调用Ogre::ResourceGroupManager::getSingleton().addResourceLocation来设置资源搜索路径(Ogre的资源管理很智能,不需要自己指定路径,只需要给它一个搜索路径,然后所有material等脚本和资源文件按名字会被载入到ResourceManager中(但只对资源来说只是存了一个引用,并没有实际的载入),就可以通过名字来访问。

4 创建渲染窗口,这里我们经常这么写

if (root->showConfigDialog())
{
root->initialise(false);
window = root->createRenderWindow("Window", 800, 600, false);
}
else
{
return false;
}

这样一来会弹一个Ogre的配置窗口,然后还会把配置保存到文件中,配置文件名在创建Root的时候给出,如果不给出,会用默认的名字ogre.cfg。

也可以先来一句root->restoreConfig从配置文件中读取配置,如果返回true表示读取成功,就不需要下一步了。

5 创建场景管理器,顺便设置场景环境光

6 创建摄像机

7 创建视口

8 初始化OIS

9 调用root->startRendering();进入游戏大循环。这个时候游戏进入了这个函数就再也不会出来了,直到窗口销毁。

Ogre的销毁

如何销毁Ogre?非常非常简单,只要一句话
delete root;

所有的工作都在Ogre::Root析构函数中做了。果然省事!

05-07 15:55