引擎名称:OGRE 版本:1.11.5
模块名称:资源模块
2.
游戏资源管理主要做什么?
·资源组织
根据各种资源的特性和使用的方式等,设计资源数据的内存组织方式
·资源管理
统一的资源处理方法,如:内存分配、资源状态管理、加载和卸载操作、资源调度算法、以及多线程管理等
游戏资源管理目的:通过有效地组织和管理各类资源,能在合适的时候、快速地提供给游戏程序。
游戏资源管理的种类
文件管理:游戏的资源是以文件的形式存储的
·包括文件的加载和卸载,文件解析,格式转换,打包和传输资源文件等。
内存管理:使用资源时需要加载到内存
·内存分配
·访问保证
·内存释放
状态管理:资源当前的状态,如已定义、已加载、已移除等
资源调度算法:在有限的内存中,为使用资源的程序提供最好的方案
·优先队列
·LRU
多线程处理:资源管理的并行处理
类和类关系描述
3.1主要类的关系
简单来说,他们之间的关系
Resource、ResourceManager、ResourceGroupManager这三个类是OGRE引擎进行资源管理的三个核心类,Ogre把资源分为“Font”、“GpuProgram”、“Material”、“Mesh”、“Skeleton”和“Texture”等类型,它们分别用Font、GpuProgram、Material、Mesh、Skeleton、Texture等同名的类对象来描述,这些类都直接从Resource基类派生。Ogre的Resource对象都由ResourceManager来管理。不同类型资源的管理,分别由不同的资源管理器来实现,比如以上各种类型资源都对应着各自的资源管理器,FontManager、GpuProgramManager、MaterialManager、MeshManager、SkeletonManager、TextureManager等,它们都以ResourceManager作为自已的基类。各种类型资源类对象的创建、Load/Unload、销毁等操作,都由相应的ResourceManager来完成。但Ogre的对资源的管理还不仅限于此。为了更方便资源的使用,提高资源的使用的效率。Ogre中有一个被称为ResourceGroupManager的类,其中内嵌了一个ResourceGroup的结构定义,很明显定义ResourceGroup只是为了ResourceGroupManager内部使用。在需要进行3D场景展示的一般应用中