OGRE源码分析—Resource 板块分析

  • Post author:
  • Post category:其他


引擎名称: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的结构定义,很明显定义ResourceGro



版权声明:本文为weixin_36299192原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。