banner
Olimi

Olimi

SCUT 小菜鸡
github
bilibili

3Dゲームエンジン入門コース3-リソース管理

はじめに#

このセクションの内容は、学堂オンラインの MOOC「3D ゲームエンジンアーキテクチャ設計の基礎」の内容です。個人的には、テキストと画像のバージョンに変換しました(個人的にはテキストバージョンのチュートリアルの方が好きで、読む速度がはるかに速いです)。
元のコースのリンク:3D ゲームエンジンアーキテクチャ設計の基礎

リソース管理#

リソース管理の概要#

ゲームリソースの組織と管理。その目的は、さまざまな種類のゲームリソースを効果的に組織化し、ゲームプログラムが必要な時に迅速かつ正確に提供することです。リソースの組織化は、さまざまな種類のリソースの特性と使用方法に基づいて、リソースデータのメモリ構造を設計することを指します。リソース管理は、リソースの読み込みと解放、リソースのスケジューリングなど、統一されたリソース処理方法を抽象化および定義することを指します。

リソース管理のプロセス図は以下の通りです:
リソース管理のプロセス図
ゲームリソースの管理:

  • ファイル管理:ファイルの読み込みと解放、ファイルの解析、ファイルの形式変換、ファイルリソースのパッケージング、ファイルリソースの転送などのプロセスを含みます。
    ファイル管理

  • メモリ管理:メモリの割り当て、アクセスの保証、メモリの解放などの機能を含みます。
    メモリ管理

  • 状態管理:通常、ゲームリソースはメモリに重複して保存されません。リソースの状態に基づいて、読み込みや使用などの操作を決定します。状態遷移図を使用して、リソースの読み込みや解放の操作を管理します。リソースの状態には、未定義、定義済み、未読み込み、読み込み済み、使用中などがあります。リソースの状態遷移図の例:
    リソースの状態遷移図

  • スケジューリングアルゴリズム:原則として、リソースデータをできるだけ少なく移動させることが目標です。移動せざるを得ない場合は、一定の条件に基づいて移動戦略を決定します。一般的に使用されるスケジューリングアルゴリズムには、リソースの優先順位付け、LRU アルゴリズム、現在の操作に基づいて最も可能性の高いリソースを決定するなどがあります。

  • マルチスレッド処理
    マルチスレッド処理

リソース管理の例#

OGRE リソース管理#

OGRE リソース管理
主要なクラスのクラス図は以下の通りです:
OGRE クラス図 1
OGRE クラス図 2
OGRE クラス図 3
上記の 3 つのコアクラスの関係図は以下の通りです:
リソースのライフサイクル
OGRE リソースのライフサイクルのシーケンス図は以下の通りです:
OGRE リソースのライフサイクル

Panda3D リソース管理#

Panda3D リソース管理の主要なクラスモジュール:

Panda3D リソース管理
Panda3D 非同期リソースローダーのクラス図:
Panda3D 非同期リソースローダー
Panda3D 非同期ロードのシーケンス図:
Panda3D 非同期ロードのシーケンス図

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。