banner
Olimi

Olimi

SCUT 小菜鸡
github
bilibili

3D遊戲引擎入門課程3——資源管理

寫在前面#

本專欄內容均為學堂在線慕課《3D 遊戲引擎架構設計基礎》中的內容。個人將其轉化成文字和圖片的版本(個人更加喜歡文字版本的教程,閱讀速度更快很多),方便查閱。
原課程鏈接:3D 遊戲引擎架構設計基礎

資源管理#

資源管理概述#

遊戲資源的組織和管理。其目的是有效地組織和管理各類遊戲資源,即在合適的時候快速準確地提供給遊戲程序使用。其中,資源組織是指根據各類資源的特性和使用方式,設計資源數據的內存結構;資源管理是指抽象並定義統一的資源處理方式,如:資源加載和卸載、資源調度等。

資源管理過程圖如下:
在這裡插入圖片描述
遊戲資源管理:

  • 文件管理:包括文件加載與卸載,文件解析,文件格式轉換,文件資源打包,文件資源傳輸等過程。
    在這裡插入圖片描述

  • 內存管理:包括內存分配,訪問保證,內存釋放等功能:
    在這裡插入圖片描述

  • 狀態管理:一般地,一個遊戲資源不會再內存中重複存儲,以節省內存,根據資源狀態,決定加載和使用等操作;通過狀態轉換圖,管理資源加載或卸載的操作。資源狀態有:未定義、已定義、未加載、已加載、正使用等。資源狀態轉換圖示例:
    資源狀態轉換圖

  • 調度算法:原則是盡可能少地移動資源數據,當不得不移動時,根據一定的條件決定移動策略。常用的調度算法包括:對資源優先級排列、LRU 算法、根據當前操作決定最可能使用的資源等。

  • 多線程處理
    在這裡插入圖片描述

資源管理實例#

OGRE 資源管理#

在這裡插入圖片描述
其中主要類的類圖如下:
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
上述三個核心類的關係圖如下:
在這裡插入圖片描述
OGRE 資源生命周期的時序圖如下:
在這裡插入圖片描述

Panda3D 資源管理#

Panda3D 資源管理主要類模塊:

在這裡插入圖片描述
Panda3D 異步資源加載器類圖:
在這裡插入圖片描述
Panda3D 異步加載時序圖:
在這裡插入圖片描述

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。