OGRE场景管理器

来源:互联网 发布:yundete停止工作没网络 编辑:程序博客网 时间:2024/05/17 06:10

场景管理器不是单例,您想创建多少就创建多少。

创建方法

1、new SceneManager()

2、Root的createSceneManager方法

 

一般都使用方法2

为什么使用createSceneManager函数?

原因是Ogre的插件系统,比如你使用了OctreeSceneManager插件的话,OctreeSceneManager会将自身注册为ST_GENERIC类型,并且覆盖作为基础的SceneManager类。OctreeSceneManager使用了拣选不可见对象的系统,因此它比标准的SceneManager要快,如果你从plugins.cfg文件中去除了OctreeSceneManager插件,那么当你请求ST_GENERIC类型时,你才可能会使用基础的SceneManager,而方法1只能创建基础的SceneManager。

也许会根据你的插件设置使用更好的场景管理器,这就是Ogre系统的优美所在。

 

创建场景管理器时可以指定名字,通过给场景管理器命名,我们就不再需要再保留指针来跟踪它们。

mSceneMgr = mRoot->createSceneManager("FooSceneManager", "foo");
SceneManager *foo = mRoot->getSceneManager("foo");
//foo指向mSceneMgr