ResourceGroupManager 对象

资源组管理器(ResourceGroupManager)实际上是提供加载纹理(Textures)、网格(Meshes)等可重用资源的“集线器(Hub)”。使用它,你可以将你用到的资源进行分组,并且,这些资源可以根据你的需要加载或删除。资源组管理器(ResourceGroupManager)中包括了大量的资源管理器(ResourceManagers),每个资源管理器(ResourceManagers)分管某类资源,比如纹理管理器(TextureManager)、网格管理器(MeshManager)。这儿所谓的资源是指OGRE运行时需要加载的数据。

资源管理器(ResourceManager)能保证某类资源只被加载一次,它能较好地管理这些资源占用的内存,还可以在不同的位置搜寻需要的资源,搜寻的位置不仅包括文件路径(Paths),还包括压缩文件(ZIP文件)。

多数情况下,你不需要直接与资源管理器(Resource Managers)打交道,资源管理器(Resource Managers)能在OGRE系统需要其资源的情况下自动调用,比如,当你需要将某种纹理(Texture)加到某种材质(Material)上时,纹理管理器(TextureManager)会被自动调用。如果你愿意,你也可以自己调用相应的资源管理器(Resource Manager)预先加载你需要的资源(这样做可以防止发生磁盘读取延迟)。当然,在多数情况下,OGRE会在合适的时候自动加载这些资源。

你需要做的唯一的一件事就是告诉资源管理器(Resource Managers)到哪儿去找你想要加载的资源,你可以通过调用Root::getSingleton().addResourceLocation这个方法来实现这个功能,该方法能将位置信息传递给资源组管理器(ResourceGroupManager)。

由于在引擎中每类资源管理器(Resource Managers)只有一个实例,你可以通过下面的方法来获取这些资源管理器(Resource Managers):

TextureManager::getSingleton().someMethod()
MeshManager::getSingleton().someMethod()
posted @ 2009-08-07 15:16  回忆1919  阅读(556)  评论(0编辑  收藏  举报