首页 3D游戏引擎入门课程3——资源管理
文章
取消

3D游戏引擎入门课程3——资源管理

写在前面

本专栏内容均为学堂在线慕课《3D游戏引擎架构设计基础》中的内容。个人将其转化成文字和图片的版本(个人更加喜欢文字版本的教程,阅读速度更快很多),方便查阅。 原课程链接:3D游戏引擎架构设计基础

资源管理

资源管理概述

游戏资源的组织和管理。其目的是有效地组织和管理各类游戏资源,即在合适的时候快速准确地提供给游戏程序使用。其中,资源组织是指根据各类资源的特性和使用方式,设计资源数据的内存结构;资源管理是指抽象并定义统一的资源处理方式,如:资源加载和卸载、资源调度等。

资源管理过程图如下: 在这里插入图片描述 游戏资源管理:

  • 文件管理:包括文件加载与卸载,文件解析,文件格式转换,文件资源打包,文件资源传输等过程。 在这里插入图片描述

  • 内存管理:包括内存分配,访问保证,内存释放等功能: 在这里插入图片描述

  • 状态管理:一般地,一个游戏资源不会再内存中重复存储,以节省内存,根据资源状态,决定加载和使用等操作;通过状态转换图,管理资源加载或卸载的操作。资源状态有:未定义、已定义、未加载、已加载、正使用等。资源状态转换图示例: 资源状态转换图

  • 调度算法:原则是尽可能少地移动资源数据,当不得不移动时,根据一定的条件决定移动策略。常用的调度算法包括:对资源优先级排列、LRU算法、根据当前操作决定最可能使用的资源等。

  • 多线程处理 在这里插入图片描述

资源管理实例

OGRE资源管理

在这里插入图片描述 其中主要类的类图如下: 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 上述三个核心类的关系图如下: 在这里插入图片描述 OGRE资源生命周期的时序图如下: 在这里插入图片描述

Panda3D资源管理

Panda3D资源管理主要类模块:

在这里插入图片描述 Panda3D异步资源加载器类图: 在这里插入图片描述 Panda3D异步加载时序图: 在这里插入图片描述

本文由作者按照 CC BY 4.0 进行授权

3D游戏引擎入门课程2——场景管理

3D游戏引擎入门课程4——场景渲染