(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023058017
(43)【公開日】2023-04-24
(54)【発明の名称】コンピュータゲームにおけるサブアイテムの平坦化リストを使用したシーンエンティティ処理
(51)【国際特許分類】
G06T 15/00 20110101AFI20230417BHJP
A63F 13/52 20140101ALI20230417BHJP
【FI】
G06T15/00 501
A63F13/52
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2022161005
(22)【出願日】2022-10-05
(31)【優先権主張番号】17/499,239
(32)【優先日】2021-10-12
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】517084612
【氏名又は名称】スクウェア エニックス、リミテッド
【氏名又は名称原語表記】SQUARE ENIX,LTD.,
(74)【代理人】
【識別番号】100209886
【弁理士】
【氏名又は名称】金森 寛
(72)【発明者】
【氏名】ルーカス マグダー
【テーマコード(参考)】
5B080
【Fターム(参考)】
5B080AA13
5B080BA00
5B080CA01
5B080FA00
5B080GA22
(57)【要約】 (修正有)
【課題】シーンエンティティ又はそれらのサブエンティティの処理時間を予測することは困難である。
【解決手段】方法は、シーンエンティティを階層構造化したサブアイテムを平坦化リストに記憶し、該リスト内のサブアイテムに対して時間制約のあるタスクを実行する。サブアイテムを平坦化リストに記憶することにより、サブアイテムの処理にかかるおよその時間をより正確に見積もることができ、サブアイテムの処理にかかる時間を過度に見積もる可能性を低減することできる。複数のコレクタが並列に実行されることで、更新済シーンエンティティの1又は2以上のサブアイテムが抽出され、平坦化リストに記憶される。サブアイテムは、並列に実行される複数のタスクによってアクセスされ、後続のフレームにおけるインクルージョン及びレンダリングに関連する優先情報が決定される。
【選択図】
図6
【特許請求の範囲】
【請求項1】
複数の更新済シーンエンティティであって、該シーンエンティティの少なくともサブセットが、該シーンエンティティの少なくともサブセットのメッシュ又はテクスチャに関連する階層構造化されたサブアイテムを含み、各シーンエンティティがコンピュータゲームのシーンにおいてレンダリングのために処理されるデータオブジェクトを表す、複数の更新済シーンエンティティを受信するステップと、
前記シーンエンティティの少なくともサブセットからサブアイテムを抽出するステップと、
前記抽出されたサブアイテムの平坦化リストを生成するステップと、
前記平坦化リスト内のサブアイテムに対して、各サブアイテムに優先情報を生成するために優先度付けタスクを実行するステップと
を有する方法。
【請求項2】
前記優先度付けタスクを生成することが、複数の優先度付けジョブを並行して実行することを含み、前記優先度付けジョブの各々は、一度にサブアイテムを処理する、請求項1に記載の方法。
【請求項3】
前記サブアイテムの処理を開始することに応じて、処理されるべき次のサブアイテムを示すインデックスを更新することをさらに含む、請求項2に記載の方法。
【請求項4】
前記サブアイテムを抽出することが、複数のコレクティングジョブを並行して実行することを含み、前記コレクティングジョブの各々は、一度にシーンエンティティを処理する、請求項1に記載の方法。
【請求項5】
前記優先度付けタスクを実行することが、所定の時間内に実行される、優先タスクサイクルにおける前記サブアイテムのサブセットを処理することを含む、請求項1に記載の方法。
【請求項6】
前記優先タスクサイクルにおいて処理される前記サブアイテムのサブセット内のサブアイテムの数を設定することにより、前記優先タスクサイクルにおける優先度付けタスクのスケジューリング又はプランニングを行うことをさらに含む、請求項5記載の方法。
【請求項7】
前記優先タスクサイクルで処理されなかった前記平坦化リストの残りのサブアイテムは、1又は2以上の後続の優先タスクサイクルで処理される、請求項5に記載の方法。
【請求項8】
前記更新済シーンエンティティのサブセットは、所定の時間内に実行されるコレクタサイクルで抽出するために処理される、請求項1に記載の方法。
【請求項9】
前記コレクタサイクルで処理されなかった残りの更新済シーンエンティティは、1又は2以上の後続のコレクタサイクルで処理される、請求項8に記載の方法。
【請求項10】
前記優先度付けタスクを実行することが、前記サブアイテムから前記シーンの視聴カメラの位置までの距離を決定することを含み、前記サブアイテムの優先情報は、少なくとも前記距離に基づいて生成される、請求項1に記載の方法。
【請求項11】
前記サブアイテムの優先情報の少なくとも一部を、前記サブアイテムに対応する前記平坦化リストのエントリに記憶することをさらに含む、請求項1に記載の方法。
【請求項12】
シーンエンティティの少なくとも1つは複数のサブエンティティを含み、各サブエンティティは、少なくとも1のサブエンティティに関連付けられる、請求項1に記載の方法。
【請求項13】
第1サブアイテムの優先情報及び第2サブアイテムの優先情報にしたがって、第1サブアイテムに関連するデータの転送時間又は詳細度を、第2サブアイテムに関連するデータよりも優先させることをさらに含む、請求項1に記載の方法。
【請求項14】
プロセッサによって実行可能な命令を記憶する非一時的コンピュータ可読記憶媒体であって、前記命令が実行されると、プロセッサに
複数の更新済シーンエンティティであって、該シーンエンティティの少なくともサブセットは、前記シーンエンティティの少なくともサブセットのメッシュ又はテクスチャに関連する階層構造化されたサブアイテムを含み、各シーンエンティティがコンピュータゲームのシーンにおいてレンダリングのために処理されるデータオブジェクトを表す、複数の更新済シーンエンティティを受信する機能、
前記シーンエンティティの少なくともサブセットからサブアイテムを抽出する機能、
前記抽出されたサブアイテムの平坦化リストを生成する機能、
前記平坦化リスト内のサブアイテムに対して、各サブアイテムに優先情報を生成するために優先度付けタスクを実行する機能
を実行させる、非一時的なコンピュータ可読記憶媒体。
【請求項15】
前記優先度付けタスクを生成する命令が、複数の優先度付けジョブを並行して実行する命令を含み、前記優先度付けジョブの各々は、一度にサブアイテムを処理する、請求項14に記載の記憶媒体。
【請求項16】
前記サブアイテムを抽出する命令が、複数のコレクティングジョブを並行して実行する命令を含み、前記コレクティングジョブの各々は、一度にシーンエンティティを処理する、請求項14に記載の記憶媒体。
【請求項17】
前記優先度付けタスクを実行する命令が、所定の時間内に実行される、優先タスクサイクルにおける前記サブアイテムのサブセットを処理する命令を含む、請求項14に記載の記憶媒体。
【請求項18】
前記優先度付けタスクを実行する命令が、前記サブアイテムから前記コンピュータゲームの視聴カメラの位置までの距離を決定する命令を含み、前記サブアイテムの優先情報は、少なくとも前記距離に基づいて生成される、請求項14に記載の記憶媒体。
【請求項19】
第1サブアイテムの優先情報及び第2サブアイテムの優先情報にしたがって、第1サブアイテムに関連するデータの転送時間又は詳細度を、第2サブアイテムに関連するデータより優先する命令をさらに含む、請求項14に記載の記憶媒体。
【請求項20】
方法により生成されるコンピュータゲームのシーンであって、該方法が、
複数の更新済シーンエンティティであって、該シーンエンティティの少なくともサブセットが、該シーンエンティティの少なくともサブセットのメッシュ又はテクスチャに関連する階層構造化されたサブアイテムを含み、各シーンエンティティがシーンにおいてレンダリングするために処理されるデータオブジェクトを表す、複数の更新済シーンエンティティを受信するステップと、
前記シーンエンティティの少なくともサブセットからサブアイテムを抽出するステップと、
前記抽出されたサブアイテムの平坦化リストを生成するステップと、
前記平坦化リスト内のサブアイテムに対して、各サブアイテムに優先情報を生成するために優先度付けタスクを実行するステップと
を有する。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、2021年10月12日に出願された米国特許出願番号17/499239に含まれる主題に関し、その開示は、参照によりその全体が本明細書に明示的に組み込まれる。
【0002】
本開示は、コンピュータゲームのシーンを表示するためのシーンエンティティのサブアイテムの優先度付けに関するもので、より具体的には、コンピュータゲームのシーンを表示するためのサブアイテムの優先度を付けるために、シーンエンティティのサブアイテムの平坦化リストを使用することに関する。
【背景技術】
【0003】
多くのビデオゲームは、キャラクタ、キャラクタとインタラクトするゲームオブジェクト、及び静的オブジェクトのような複数のシーンエンティティを含むシーンのフレームを表示する。このようなシーンエンティティの数が増加する、又はシーンエンティティに設定可能な側面が多様化すると、これらのシーンエンティティ又はシーンエンティティの様々な側面を定義するサブアイテムは、その数又はデータサイズが増加し得る。したがって、これらのシーンエンティティ又は該サブアイテムの検索は、セカンダリメモリ(例えば、ハードディスクドライブ)からプライマリメモリ(例えば、RAM)への検索が優先される場合がある。シーン変更が実行される前に、新しいシーンに表示され得るシーンエンティティ又はそれらのサブエンティティのサブセットのデータは、レンダリング及び他のオペレーションのためにセカンダリメモリからプライマリメモリに転送されてもよい。
【発明の概要】
【発明が解決しようとする課題】
【0004】
シーンエンティティのすべてのデータをすぐに次のシーンで更新することが好ましいが、セカンダリメモリ及びプライマリメモリ間のデータ伝送帯域幅などの性能制限により、重要なシーンエンティティ又は該サブアイテムを他のものよりも早く更新するように選択的に優先させることが考えられる。シーンエンティティ及び該サブアイテムは階層的に構成されているため、シーンエンティティ又はそれらのサブエンティティの処理時間を予測することは困難となり得る。
【課題を解決するための手段】
【0005】
実施形態は、コンピュータゲームのシーンにおけるレンダリングの優先度を決定するための、更新済シーンエンティティのサブアイテムの平坦化リストを生成することに関する。更新済シーンエンティティの少なくともサブセットは、階層構造化されたサブアイテムを含む。各サブアイテムは、シーンエンティティの少なくとも一部のメッシュ又はテクスチャと関連付けられている。該サブアイテムは、シーンエンティティの少なくともサブアイテムから抽出される。抽出されたサブアイテムの平坦化リストが生成される。優先度付けタスクは、平坦化リストのサブアイテムに対して実行され、該サブアイテムの各々に対して優先情報が生成される。
【図面の簡単な説明】
【0006】
【
図1】
図1は、ある実施形態による、システムのブロック図である。
【
図2】
図2は、ある実施形態による、
図1のクライアント装置のブロック図である。
【
図3】
図3は、ある実施形態による、
図1のクライアント装置のメモリ内のソフトウェアモジュールのブロック図である。
【
図4A】
図4Aは、ある実施形態による、シーンエンティティのデータ構造図である。
【
図4B】
図4Bは、ある実施形態による、更新済シーンエンティティのリストを説明する図である。
【
図4C】
図4Cは、ある実施形態による、更新済シーンエンティティのサブアイテムの平坦化リストを説明する図である。
【
図5】
図5は、ある実施形態による、シーンのリソースコレクタのブロック図である。
【
図6】
図6は、ある実施形態による、本明細書に記載された技術を実装するためのプロセスを示すフローチャートである。
【0007】
図は、説明の目的のみに、本開示の様々な実施形態を描いている。当業者は、以下の説明から、本明細書に記載された開示の原理、又は述べられた利点から逸脱することなく、本明細書に図示された構造及び方法の代替の実施形態を採用可能であることを容易に認識することができるだろう。
【発明を実施するための形態】
【0008】
以下の実施形態の説明では、より深い理解のために、具体的な内容を多数記載している。しかし、該実施形態は、これらの具体的な内容のうちの1又は2以上がなくても実施され得ることに留意されたい。他の例では、既知の特徴については、説明を不必要に複雑にすることを避けるために、詳細には説明していない。
【0009】
実施形態は、シーンエンティティの階層構造化されたサブアイテムを、サブアイテムの平坦化リストに変換し、該平坦化リストから該サブアイテムに対して時間制約を伴うタスクを実行することに関する。サブアイテムを平坦化リストに記憶することにより、サブアイテムの処理にかかるおおよその時間をより正確に見積もることが可能であるため、サブアイテムの処理にかかる時間を過度に保守的に見積もる可能性を低減させ得る。更新済シーンエンティティの1又は2以上のサブアイテムは、並列に実行される複数のコレクタによって抽出され、平坦化リストに記憶される。次に、サブアイテムは、並行して実行される複数の優先度付けジョブによってアクセスされ、後続のフレームにおけるサブアイテムのインクルージョン及びレンダリングに関連する優先情報が決定される。該優先情報にしたがって、より高い優先度を有するサブアイテムに関連するデータは、セカンダリメモリからプライマリメモリへの転送に高い優先度が与えられる。
【0010】
本明細書で説明するシーンエンティティは、シーンにインクルードするために処理されるデータオブジェクトを指す。シーンエンティティは、グラフィックスレンダリングオペレーションのための1又は2以上のサブアイテムをインクルードするように階層的に構造化されてもよい。異なるシーンエンティティは、異なる数のサブアイテム及び/又は異なるレベルの階層をインクルードしてもよい。シーンエンティティ(例えば、木)は、複数のサブエンティティ(例えば、枝及び果実)に分割されてもよい。
【0011】
本明細書で説明するサブアイテムは、シーンエンティティ又はサブエンティティのグラフィックスオペレーションに関連するデータの単位を指す。サブアイテムは、例えば、シーンエンティティ又はそのサブエンティティのメッシュデータ又はテクスチャデータの識別情報をインクルードしてもよい。識別情報は、プライマリメモリ又はセカンダリメモリにおけるメッシュデータ又はテクスチャデータのメモリ位置を示してもよい。異なるシーンエンティティ又はサブエンティティは、サブアイテムの異なるタイプ及び/又は数を有してもよい。また、サブアイテムは、対応するメッシュデータ又はテクスチャデータに関連するメタデータを含んでもよい。
【0012】
ゲーム環境のアーキテクチャ例
図1は、ある実施形態による、本明細書に記載された技術が実施され得るシステム100のブロック図である。システム100は、コンテンツ生成部110と、サーバ120と、クライアント端末装置140と、ネットワーク144とを含む。他の実施形態では、システム100は、追加のコンテンツ生成部110又はサーバ120を含んでもよく、あるいは、単一のクライアント端末装置140を含んでもよい。
【0013】
コンテンツ生成部110、サーバ120、及びクライアント端末装置140は、ネットワーク144を介して通信するように構成される。ネットワーク144は、有線及び/又は無線通信システムの両方を使用する、ローカルエリア及び/又はワイドエリアネットワークの任意の組合せを含む。一の実施形態では、ネットワーク144は、標準的な通信技術及び/又はプロトコルを使用する。例えば、ネットワーク144は、イーサネット、802.11、マイクロ波を利用した世界標準の通信方式(WiMAX)、3G、4G、符号分割多重アクセス(CDMA)、デジタル加入者線(DSL)等の技術を使用した通信リンクを含んでいる。ネットワーク144を介して通信するために使用されるネットワーキング・プロトコルの例としては、MPLS(multiprotocol label Switching)、TCP/IP(transmission control protocol/internet protocol)、HTTP(hypertext transport protocol)、SMTP(simple mail transfer protocol)、FTP(file transfer protocol)等が挙げられる。ネットワーク144を介して交換されるデータは、ハイパーテキストマークアップ言語(HTML)又は拡張可能マークアップ言語(XML)などの任意の適切なフォーマットを使用して表現されてもよい。一部の実施形態では、ネットワーク144の通信リンクの全て又は一部は、任意の適切な技術又は技法を用いて暗号化されてもよい。
【0014】
コンテンツ生成部110は、ゲーミングシステム、パーソナルコンピュータ、携帯電話、タブレットなどのコンピューティングデバイスである。コンテンツ生成部110のユーザは、画像、地形、キャラクタ、ゲームオブジェクトなどの様々なゲームリソースを作成する。作成されたゲームリソースは動的であってもよく、時間の経過とともに変化するため、ゲームリソースを更新してサーバ120に送信し、サーバ120に記憶するようにしてもよい。
【0015】
サーバ120は、特に、クライアント端末装置140がアクセスするためのゲームリソース130を記憶するコンピューティングデバイスである。ゲームリソース130の一部又は該ゲームリソース130は、コンピュータゲームを実行するためにクライアント端末装置140に転送されてもよい。また、サーバ120は、ユーザアカウントや、請求などの他の管理機能を管理してもよい。
【0016】
各クライアント端末装置140は、ゲーム等のソフトウェアを含むコンピューティングデバイスである。クライアント端末装置140は、サーバ120からゲームリソース(例えば、データオブジェクト)を受信し、該ゲームリソースを使用してコンピュータゲームを実行する。異なるクライアント端末装置140は、サーバ120から異なるゲームリソースを要求することが可能である。
【0017】
該ゲームリソースは、
図1においてサーバ120からクライアント端末装置140に送信されるものとして説明されているが、本明細書で説明する実施形態は、ゲームリソースが有形記憶媒体(例えば、DVD又はCD-ROM)から完全に又は部分的に記憶及びインストールされるゲームにおいても使用することが可能である。該ゲームリソースが(
図1に示すように)サーバを介して受信されるか、有形記憶媒体から取得されるかにかかわらず、該ゲームリソースの大部分は典型的にはセカンダリメモリに記憶され、該ゲームリソースのより小さい部分は、より高速なアクセスを実現するためにプライマリメモリに記憶される。
【0018】
クライアント装置の実施形態例
図2は、ある実施形態による、
図1のクライアント端末装置140のブロック図である。ある実施形態に応じて、コンテンツ生成部110及び/又はサーバ120は、本明細書に記載されたクライアント端末装置140のハードウェア要素及び/又はソフトウェア要素の一部又は全部を含むコンピューティングデバイスで構成されてもよい。クライアント端末装置140、コンテンツ生成部110、及び/又はサーバ120は、命令を実行することが可能である任意の機械であり、各々がスタンドアロン装置であっても、接続された(例えば、ネットワーク接続された)装置のセットであってもよい。例えば、一の実施形態では、コンテンツ生成部110は、クライアント端末装置140である。
【0019】
クライアント端末装置140は、バス216によって接続される中央処理装置(「CPU」)202、グラフィックス処理装置(「GPU」)204、プライマリメモリ206、セカンダリメモリ214、表示制御部208、ユーザインタフェース210、及びサウンド制御部212を含む。単一のクライアント端末装置140のみが図示されているが、他の実施形態は、本明細書で議論される方法論のいずれか1又は2以上を実行するための命令を個別に又は共同で実行するクライアント端末装置140の任意のコレクションを含んでもよい。
【0020】
プライマリメモリ206は、本明細書に記載される方法論又は機能のいずれか1又は2以上を具現化する命令(例えば、ソフトウェア)を記憶する機械可読媒体である。例えば、プライマリメモリ206は、CPU202によって実行されると、
図6を参照して以下に詳細に説明するプロセスを実行するようにCPU202を構成する命令を記憶し得る。命令はまた、該命令の実行中に、部分的又は完全に、CPU202及び/又はGPU204内、例えば、キャッシュメモリ内に存在してもよい。
【0021】
「機械可読媒体」という用語は、命令を記憶することが可能である単一の媒体又は複数の媒体(例えば、集中型又は分散型データベース、又は関連するキャッシュ及びサーバ)を含むと解釈されるべきである。また、「機械可読媒体」という用語は、該装置による実行のための命令を記憶することができ、該装置に本明細書に開示される方法論のいずれか1又は2以上を実行させる任意の媒体を含むと解釈されるものとする。「機械可読媒体」という用語は、固体メモリ、光学媒体、及び磁気媒体の形態のデータリポジトリを含むが、これらに限定されるものではない。
【0022】
セカンダリメモリ214は、プライマリメモリ206とは別のメモリであるが、プライマリメモリ206に対してアクセス速度はより遅い。プライマリメモリ206と同様に、セカンダリメモリ214は、本明細書に記載の方法論又は機能のいずれか1又は2以上を具現化する命令(例えば、ソフトウェア)を記憶する機械可読媒体である。例えば、プライマリメモリ206は、クライアント端末装置140のハードディスクであってもよく、セカンダリメモリ214は、地形を利用するゲームのゲームディスクであってもよい。具体例として、プライマリメモリ206は、セカンダリメモリ214に記憶された十六進データ(hex data)を使用するゲームシステム300を記憶してもよい。プライマリメモリ206及びセカンダリメモリ214は、以下の
図3を参照してより詳細に説明される。1又は2以上の実施形態において、セカンダリメモリ214は、プライマリメモリ206と比較してより容量の大きなメモリ領域を有する。
【0023】
CPU202は、プライマリメモリ206及び/又はセカンダリメモリ214に記憶された命令を実行するように構成された処理回路である。CPU202は、様々な命令セットアーキテクチャ(ISAs)のいずれかを使用する汎用プロセッサ又は組込型プロセッサであってよい。
図2には単一のCPUが図示されているが、クライアント端末装置140は、複数のCPU202を含んでもよい。マルチプロセッサシステムにおいて、CPU202の各々は、必ずしも同じISAを実装する必要はないが、共通に実装してもよい。
【0024】
GPU204は、グラフィックス画像を効率的に処理するために特別に設計された処理回路である。GPU204は、CPU202からの命令に基づいて、表示すべきオブジェクトをフレームバッファ(例えば、フレーム全体の画素データを含むもの)にレンダリングしてもよい。GPU204は、グラフィックスオペレーションの一部又は全部を実行するためにグラフィックスソフトウェアを実行し得る1又は2以上のグラフィックスプロセッサを含んでもよい。
【0025】
表示制御部208は、GPU204からのグラフィカルデータを用いて映像信号を生成する回路である。例えば、表示制御部208は、表示装置(例えば、液晶ディスプレイ(LCD)、プロジェクタ)を駆動する。このように、表示制御部208を介して、地形を含むゲームを画像や映像列として表示することが可能である。
【0026】
サウンド制御部212は、クライアント端末装置140との間で音声信号の入出力を行う回路である。
【0027】
ユーザインタフェース210は、ユーザがクライアント端末装置140とインタラクトすることを可能にするハードウェア、ソフトウェア、ファームウェア、又はそれらの組合せである。ユーザインタフェース210は、英数字入力装置(例えば、キーボード)及びカーソル制御装置(例えば、マウス、トラックボール、ジョイスティック、モーションセンサー、又は他のポインティング機器)を含むことが可能である。例えば、ユーザは、クライアント端末装置140によってレンダリングされた地形又はハイブ(hive)を含むゲーム環境内で、キーボード及びマウスを使用してキャラクタの行動を制御する。
【0028】
クライアント端末装置140は、本明細書に記載された機能性を提供するためのコンピュータプログラムモジュールを実行する。本明細書で使用されるように、用語「モジュール」は、指定された機能性を提供するために使用されるコンピュータプログラム命令及び/又は他のロジックを指す。したがって、モジュールは、ハードウェア、ファームウェア、及び/又はソフトウェアで実装されることが可能である。一部の実施形態では、実行可能なコンピュータプログラム命令で形成されたプログラムモジュールは、メモリ206にロードされ、CPU202又はGPU204によって実行される。例えば、本明細書で説明するプロセスのためのプログラム命令は、プライマリメモリ206及び/又はセカンダリメモリ214にロードされ、CPU202及びGPU204によって実行されることが可能である。
【0029】
ゲームシステムにおけるソフトウェア・アーキテクチャの実施形態例
図3は、一の実施形態による、
図1のクライアント端末装置140が有するソフトウェアモジュールのブロック図である。特に、
図3は、クライアント端末装置140のプライマリメモリ206及びセカンダリメモリ214内のソフトウェアモジュールを示す。プライマリメモリ206は、他のモジュールの中で、ゲームシステム300及びオペレーティングシステム(「OS」)380を記憶してもよい。セカンダリメモリ214は、他のモジュールの中で、リソースストレージ318を含んでもよい。プライマリメモリ206及びセカンダリメモリ214は、
図3に図示されていない他のモジュールを含んでもよい。さらに、他の実施形態において、プライマリメモリ206及びセカンダリメモリ214は、各々、他方に記憶された、本明細書で表されるソフトウェアモジュール及びデータを記憶するようにしてもよい。
【0030】
ゲームシステム300は、物理システム328、サウンドモジュール332、アニメーションモジュール340、シーンリソースコレクタ348、シーンリソースリトリーバ352、シーンリソースストレージ356、及びグラフィックスレンダリングモジュール344を含む。これらのモジュールは、集合的にゲームシステム300の「ゲームエンジン」を形成する。ゲームシステム300は、さらにソフトウェアモジュールを含んでもよいし、
図3に例示されたモジュールのうちの1又は2以上を省略してもよい。
【0031】
ゲームシステム300は、オペレーション312Aから312N(まとめて「オペレーション312」と呼ぶ)を実行して、ゲームの様々なアクションやタスクを達成する。具体的には、ゲームシステム300は、ゲーム内のオブジェクトとのインタラクション(例えば、ユーザのゲームキャラクタが相手キャラクタと戦うこと)のシミュレーション、カットシーンの生成、シーンの環境の生成などのオペレーションを実行してもよい。オペレーション312は、特定のイベント(例えば、ユーザインタラクション、時間切れ、ゲーム内で発生するトリガー)に基づき、様々なパラメータ(例えば、オブジェクトの状態、ユーザの状態)の変化をもたらすコンピューティングオペレーションを指す。これらのオペレーション312のいくつかは、物理システム328又はアニメーションモジュール340などの他のモジュールと相互運用してもよい。
【0032】
これらのオペレーション312の1又は2以上は、ゲームのシーンに表示されるシーンエンティティの変更に関連するものである。そのようなオペレーション例には、キャラクタの外観を変更すること、木から枝や果実を取り除くこと、壁に亀裂や穴を作ることが含まれる。このようなオペレーションが行われると、シーンエンティティ(キャラクタ、木、壁など)が更新され、それに応じてシーンエンティティ又はそのサブエンティティのサブアイテム(テクスチャ、メッシュなど)が更新されることがある。このような更新が発生すると、シーンエンティティ又はそのサブエンティティのサブアイテムが変更され、これらのサブアイテムを更新するプロセスが、グラフィックスレンダリングモジュール344で行われるレンダリングプロセスに変更を反映するために実行されてもよい。
【0033】
物理システム328は、ゲーム環境内のオブジェクトの動態(dynamics)をモデル化し、シミュレートする。ゲームシステム300においてオペレーション312が開始された後、物理システム328は、そのアクションがオペレーション312に関連するオブジェクトにどのように影響を与えるかをモデル化する。例えば、物理システムは、岩が坂を転がるのをモデル化する。アクション及びオブジェクトに応じて、他のオブジェクト及びアクションが関連付けられるようになってもよい。例えば、投げられた岩が、他のオブジェクトを倒してもよい。これにより、オブジェクトが岩にぶつかるという新たなオペレーション312が発生する可能性がある。物理システム328は、ゲーム環境内のオブジェクトの動態(dynamics)をモデル化及びシミュレートする際に、地形情報、例えば、地形生成部350によって生成された地形に係るデータを使用する。例えば、転がる岩の例に戻ると、物理システム328は、岩が丘の斜面にあるような地形内に配置されていることを識別することによって、岩が丘を転がらなければならないと判断してもよい。
【0034】
アニメーションシステム340は、ゲームシステム300からのオペレーション312に基づいて、オブジェクト又はゲーム環境のキネマティク・アニメーションを実行するモジュールである。例えば、オペレーション312が、ロボットアームが動くことを指定した場合、該アニメーションシステムは、アームの動きのキネマティクスをアニメーション化する。アニメーションシステム340は、特定のアニメーションタスクを実行する任意の数の特殊モジュールを含んでもよい。
【0035】
サウンドモジュール332は、ゲーム環境内で発生するアクションに対応する音を生成する。アニメーションシステム340からのアニメーションデータは、サウンドモジュール332が音を生成することを可能にするために、サウンドモジュール332に送信されてもよい。サウンドモジュール332は、音データをサウンド制御部212に送信する。
【0036】
グラフィックスレンダリングモジュール344は、様々なソース(例えば、アニメーションシステム340)からグラフィックスをレンダリングして、ゲーム環境のシーンを生成する。例えば、グラフィックスレンダリングモジュール344は、シーンリソースストレージ356からキャラクタのメッシュデータ及びテクスチャデータを受信し、キャラクタをレンダリングするためのグラフィックスデータを生成する。グラフィックスレンダリングモジュール344は、グラフィカルデータをGPU204に送り、表示制御部208を介して、ディスプレイ、例えば、クライアント端末装置140のディスプレイ又はクライアント端末装置140に接続されたディスプレイ上に画像をレンダリングする。
【0037】
シーンリソースコレクタ348は、オペレーション312の結果として更新済シーンエンティティを検出し、セカンダリメモリ214のリソースストレージ318からシーンリソースストレージ356への関連サブアイテムの取得を優先させるソフトウェアモジュールである。シーンエンティティに対する全ての更新がシーンの後続フレームに直ちに反映されることが望ましいが、プライマリメモリ206のメモリ可用性及びセカンダリメモリ214のデータ転送速度は、リソースストレージ318からシーンリソースストレージ356へのサブアイテムに関連する関連データの転送を遅延させる場合がある。したがって、シーンリソースリトリーバ352は、
図5を参照して詳細に後述するように、より重要度の高いサブアイテムが、より重要度の低いサブアイテムのデータよりも早くリソースストレージ318からシーンリソースストレージ356にそのデータを転送させ得るように、更新済みサブアイテムの優先情報及び識別情報をシーンリソースリトリーバ352に提供してもよい。
【0038】
シーンリソースリトリーバ352は、リソースストレージ318からデータを取得し、シーンリソースストレージ356に記憶するソフトウェアモジュールである。シーンリソースストレージ356に割り当てられたメモリに制限があるため、シーンエンティティに対する全てのデータを同時にシーンリソースストレージ356に記憶することは不可能である。したがって、将来のフレームのレンダリングに使用される可能性が高いシーンエンティティのためのデータのサブセット又は重要なシーンエンティティ用のデータのみが、シーンリソースリトリーバ352に記憶される。シーンリソースリトリーバ352は、シーンリソースコレクタ348から提供される優先情報を考慮して、リソースストレージ318からデータを取得してシーンリソースストレージ356に記憶する速度を決定してもよい。
【0039】
シーンリソースストレージ356は、シーンエンティティのデータを記憶するために割り当てられたプライマリメモリ206内のメモリ領域である。シーンリソースストレージ356は、例えば、様々なシーンエンティティ又はそれらのサブエンティティのテクスチャデータ及びメッシュデータ(例えば、サブアイテム)を記憶する。シーンリソースストレージ356に割り当てられた記憶領域が限られているため、シーンエンティティのテクスチャデータ及びメッシュデータのサブセットのみのデータが、グラフィックスレンダリングモジュール344によるアクセスのためにシーンリソースストレージ356から記憶され、利用可能である。シーンリソースストレージ356内のテクスチャデータ及びメッシュデータは、近い将来に使用される可能性が高い他のテクスチャデータ及びメッシュデータ用のスペースを作るために選択的に削除されてもよい。
【0040】
OS380は、コンピュータのハードウェア及びソフトウェアリソースを管理する。具体的には、OS380は、プログラム及びコンピュータ・ハードウェアとの間の仲介役として機能する。例えば、OS380は、ユーザインタフェース210からの入力を認識し、表示制御部208に出力を送信するなどの基本的なタスクを実行することが可能である。
【0041】
シーンエンティティのデータ構造及び更新処理
図4Aは、ある実施形態による、シーンエンティティのデータ構造図である。シーンは、複数のシーンエンティティSE1からSENを含んでもよい。これらのエンティティのいくつかは、複数のサブエンティティを含んでもよい。
図4Aの例に示すように、シーンエンティティSE1は、2つのサブエンティティ1及び2を含んでもよい。また、該サブエンティティの各々は、1又は2以上のサブアイテムを含んでもよい。例えば、サブエンティティ1は、1つのメッシュデータ(すなわち、メッシュ1)及び1つのテクスチャデータ(すなわち、メッシュ2)の3つのサブエンティティを有してもよい。一方、サブエンティティ2は、1つのメッシュデータ(すなわち、メッシュ2)と、2つのテクスチャデータ(すなわち、テクスチャ1及びテクスチャ2)の2つのサブエンティティを有していてもよい。したがって、シーンエンティティSE1は、合計5個のサブアイテムを有する。他のシーンエンティティは、異なる数のサブエンティティ及び異なる数のサブアイテムを有し、また、異なる階層のレベルを有していてもよい。
【0042】
シーンリソースコレクタ348は、オペレーション312によりサブアイテムが更新された、更新済シーンエンティティを受信する。これらのシーンエンティティは、そのデータがシーンリソースストレージ356から利用可能でない可能性がある1又は2以上の更新されたサブアイテムを有する。更新されたサブアイテムは、その優先度に従って、セカンダリメモリ214内のリソースストレージ318からシーンリソースストレージ356に順次転送され得る。したがって、該更新済シーンエンティティ又は該更新されたサブアイテムに対して、かかる優先度を決定するタスク(以下、「優先度決定タスク」と称する)が実行されてもよい。
図4Bは、一の実施形態による、更新済シーンエンティティのリストを説明する図である。この例では、シーンエンティティSE1、SE3、SE11、SE15、SE22…SEZが更新され、他のシーンエンティティ(例えば、SE2、SE4からSE10など)は更新されない。
【0043】
このような優先度付けタスクを実行する1つの方法は、シーンエンティティの単位で処理を実行することである。すなわち、あるシーンエンティティ(例えば、SE1)のサブアイテムの全てを処理し、その後に次のシーンエンティティ(例えば、SE3)のサブアイテムの全てを処理する。このような方法を用いる場合、全てのサブエンティティを処理するために、優先度付けタスクは、シーンエンティティ内のサブアイテムの階層を横断して、サブアイテムを抽出することになる。例えば、シーンエンティティSE1を処理するために、優先度付けタスクは、最初にメッシュ1、次にテクスチャ1、次にメッシュ2、次にテクスチャ2及び3などを処理することになる。しかし、各シーンエンティティは、サブアイテムの数が異なるだけでなく、階層のレベルも異なる場合がある。したがって、各シーンエンティティに優先度付けタスクを実行するための時間は、各シーンエンティティのサブアイテムの数及び階層レベルの数に応じて異なり得る。シーンエンティティに優先度付けタスクを実行するための時間量は、時間制約又は時間周期に制限される場合がある。したがって、シーンエンティティに対する優先度付けタスクのスケジューリング又はプランニングは、過度に保守的になる傾向があり、その結果、シーンエンティティの処理を途中で停止することに関連するペナルティ又は損失が発生するため、他の方法よりも少ないシーンエンティティの処理が行われることになる。
【0044】
したがって、実施形態は、サブアイテムの平坦化リストを生成し、そのような優先度付けタスクを実行するための単位としてサブアイテムを使用する。
図4Cは、実施形態による、更新済シーンエンティティのサブアイテムの平坦化リストを示す図である。
図4Bの全ての更新済シーンエンティティにおけるサブアイテムは、
図4Cに例示されるように、サブアイテムの平坦化リストに抽出され、記憶される。すなわち、平坦化リストのサブアイテムは、階層構造化されていない。1又は2以上の実施形態において、更新済シーンエンティティのサブアイテムは、平坦化リストにおいて順次順序付けされる。サブエンティティを平坦化リストに記憶した後、シーンエンティティを単位として使用する代わりに、サブアイテムの単位でタスクが実行されてもよい。
【0045】
優先度付けタスクによる各サブアイテムの処理はほぼ同じ時間を要するので、処理時間の過度に保守的な推定は低減又は除去され、優先度付けタスクを実行するための単位としてシーンエンティティを用いる場合と比較して、制約された時間内に多くのサブエンティティを処理するに至る可能性がある。さらに、
図4Cの平坦化リストのサブアイテムは、階層構造化されたシーンエンティティ(例えば、
図4Aに例示されるような)と比較して、プライマリメモリ206により近いメモリ領域に記憶されてもよい。したがって、
図4Cの平坦化リストにおける一連のサブアイテムは、階層的なデータ構造を使用することと比較して、プライマリメモリ206からより速くアクセスされてもよい。
【0046】
1又は2以上の実施形態において、C-インデックスは、優先度付けタスクによって処理される次のサブアイテムを識別するために使用されてもよい。サブアイテムが処理されると、C-インデックスは、
図4Cのリスト内の次のサブアイテムに移動する。このようにして、処理のためのサブアイテムは、複数の優先タスクサイクルにわたって追跡されてもよい。優先タスクサイクルとは、優先度付けタスクの一部を実行するサイクルのことであり、時間的制約内で終了させるものである。典型的には、優先タスクサイクルの時間的制約は、コンピュータゲーム用のフレームレートによって支配される。
【0047】
平坦化リスト内のサブアイテムのすべてが優先タスクサイクル内で処理できない場合、平坦化リスト内のサブアイテムのサブセットが優先度付けタスクによって処理され、サブアイテムの残りは後続の優先タスクサイクルで処理されてもよい。
図4Cにおいて、F-インデックスは、現在の優先タスクサイクルで処理された最初のサブアイテムを示す。具体的には、メッシュ1、テクスチャ1及びメッシュ2は、前のサイクルで処理され、現在のサイクルは、テクスチャ2の処理から開始される。現在の優先タスクサイクルが終了した後、F-インデックスは次のサイクルで処理される最初のサブアイテムを示すように更新される。したがって、該F-インデックスを追跡することにより、優先度付けタスクは、重複したジョブを実行することなく、次の優先タスクサイクルで再開してもよい。平坦化リスト内の全てのサブアイテムの処理は、多くのサイクルを要することがあり、本明細書では、優先度付けタスクの「パス」と称される。
【0048】
平坦化リストは、オペレーション312が行われるにつれて連続して更新されてもよい。例えば、ゲームキャラクタが衣装を変更すると、そのキャラクタに対応するシーンエンティティは、その衣装の変更を反映するように更新されてもよい。このような変更は、衣装に対応するメッシュデータ又はテクスチャデータの更新を伴うため、キャラクタのシーンエンティティは、更新済シーンエンティティのリストに追加され、該サブアイテムは、平坦化リストに追加される。優先度付けタスクによるサブアイテムの処理の終了後、サブアイテムのいくつかを削除するための削除操作が開始されるまで、サブアイテムは平坦化リストに留まる。1又は2以上の実施形態において、前のフレームで更新済シーンエンティティの平坦化リストのサブアイテムは、次のフレームで更新されるべきシーンエンティティの新しいサブアイテムが受信される前に除去される。
【0049】
シーンリソースコレクタのアーキテクチャ例
図5は、ある実施形態による、シーンリソースコレクタ348のブロック図である。シーンリソースコレクタ348は、オペレーション312の結果として更新済シーンエンティティリスト512を受け取り、更新済シーンエンティティのサブアイテムの平坦化リスト522を生成し、シーン内のサブアイテムのレンダリングの優先度を示す優先情報PInfo1、PInfo2を生成する。この目的のために、シーンリソースコレクタ348は、他の構成要素のうち、更新済シーンエンティティリスト512、コレクタモジュール518、平坦化サブアイテムリスト522、及びレンダリングヒューリスティックモジュール526を含んでもよい。
【0050】
1又は2以上のオペレーション312がシーンエンティティの更新をもたらしたとき、更新済シーンエンティティは、更新済シーンエンティティリスト512に記憶される。
図5の例では、該オペレーションは、シーンエンティティSE1、SE3・・・SE(Z-13)、SE(Z-12)、SE(Z-10)、SE(Z-5)、SE(Z-3)及びSEZの更新をもたらす。残りのシーンエンティティは更新されないが、これらのシーンエンティティのサブアイテムは、以前のオペレーションの結果として、平坦化サブアイテムリスト522に未だ存在していてもよい。
【0051】
コレクタモジュール518は、更新済シーンエンティティを処理して、平坦化サブアイテムリスト522に記憶するためのサブアイテムを抽出するためのソフトウェアモジュールである。クライアント端末装置140においてマルチスレッド又はマルチプロセッシングが有効である場合、複数の更新済シーンエンティティを一度に処理するために、複数のコレクタジョブが並行して実行される場合もある。
図5の例に示すように、3つのコレクタジョブが実行され、一度に最大3つのシーンエンティティからサブアイテムを抽出する。
【0052】
サブアイテムを抽出する時間は、時間的制約を受けてもよい。したがって、更新済シーンエンティティが多数ある場合、更新済シーンエンティティのサブセットのみがコレクタサイクルで処理され、残りのシーンエンティティは後続のコレクタサイクルで処理されてもよい。コレクタサイクルは、更新済シーンエンティティのサブセットを横断し、それらのサブエンティティを抽出する時間制約のあるプロセスを意味する。該コレクタサイクルは、コンピュータゲームのフレームレートにも支配され、優先度付けタスクサイクルと同じ長さであってもよいし、異なる長さであってもよい。
【0053】
シーンエンティティインデックスは、コレクタモジュール518によって取り出され、処理される次のシーンエンティティを示すために使用されてもよい。
図5の例では、網掛け模様(hatch patterned)のボックス内のシーンエンティティは、既に処理された、又は現在処理中のシーンエンティティを示す。したがって、シーンエンティティインデックスは、コレクタモジュール518によって処理されるべき次のシーンエンティティのためのSE(Z-5)を指す。更新済シーンエンティティリスト512内のシーンエンティティが処理された後、処理されたシーンエンティティは、更新済シーンエンティティリスト512から削除されてもよいし、オペレーションの結果として新しいセットの更新済シーンエンティティが受信されるまで保持されてもよい。
【0054】
コレクタジョブ1、2、3の各々は、更新済シーンエンティティを読み取り、更新済シーンエンティティの階層を横断し、更新済シーンエンティティからサブアイテムを抽出し、抽出されたサブアイテムを平坦化サブアイテムリスト522の末尾に付加する。1又は2以上の実施形態において、コレクタモジュール518は、
図5におけるリストの下方向である連続順序でシーンエンティティを処理する。
【0055】
平坦化サブアイテムリスト522は、コレクタモジュール518によって抽出されたサブアイテムを記憶する。平坦化サブアイテム522の各エントリは、メタデータと、プライマリメモリ206又はセカンダリメモリ214内の対応するテクスチャデータ又はメッシュデータのメモリ位置へのポインタとを含む場合のあるサブアイテムのデータを含む。該メタデータは、特に、メッシュデータ又はテクスチャデータについて利用可能な詳細レベルの数、及びサブアイテムの位置情報を含んでもよい。該位置情報は、サブアイテムによって占有される仮想ゲーム空間の座標であってもよいし、視聴カメラ位置に最も近いサブアイテムのポリゴン(polygon)の座標であってもよい。1又は2以上の実施形態において、サブアイテムの1又は2以上のエントリは、前のパスで実行された優先度付けタスクに関連する追加の情報をさらに記憶してもよい。そのような追加情報は、優先度付けタスクの前のパスで決定された詳細度レベルであってもよい。該詳細度レベルは、テクスチャデータ又はメッシュデータの解像度レベル(例えば、高解像度及び低解像度)を指す。リソースストレージ318は、同じサブアイテムについて、異なる詳細度レベルを有する複数のバージョンのテクスチャデータ又はメッシュデータを記憶してもよい。より高いレベルの詳細度又は解像度を有するテクスチャデータ又はメッシュデータは、より高い優先度のシーンエンティティ又はサブアイテムをレンダリングする際に使用される可能性が高い。逆に、シーンエンティティ又はサブアイテムの優先順位が低い場合、クライアント端末装置140のメモリを節約し、計算負荷を軽減するために、より低い解像度のテクスチャデータ又はメッシュデータが使用される可能性が高い。エントリに記憶された追加情報は、優先度付けタスクの次のパスを検証するため、又は促進するために使用されてもよい。
【0056】
レンダリングヒューリスティックモジュール526は、平坦化サブアイテムリスト522内のサブアイテムに優先度付けタスクを実行するソフトウェアモジュールである。レンダリングヒューリスティックモジュール526は、マルチプロセッシング又はマルチスレッドを実行して、複数の優先度付けジョブ(例えば、P_Job1及びP_Job2)を並行して実行してもよい。レンダリングヒューリスティックモジュール526は、
図4Cを参照して上述したようなC-インデックスを使用して、次に処理すべきサブアイテムを決定してもよい。
【0057】
レンダリングヒューリスティックモジュール526は、優先度付けタスクを実行するための1又は2以上のパラメータ530を受信して記憶してもよい。そのようなパラメータは、例えば、仮想環境においてシーンがキャプチャされる視聴カメラ位置の座標を示す場合もある。シーン内の該シーンエンティティ又はそのサブアイテムをレンダリングするか否か、及び/又は該シーンエンティティ又はそのサブアイテムの詳細度のレベルは、例えば、視聴カメラ位置から該シーンエンティティ又は該サブアイテムまでの距離に基づいて決定されてもよい。したがって、パラメータ530は、受信され、サブアイテムの優先度を示す優先情報(例えば、PInfo1、PInfo2)を生成するために優先度付けジョブによって使用される。優先情報が示すサブアイテムの優先度が高い場合、シーンリソースリトリーバ352によってリソースストレージ318からシーンリソースストレージ356に転送する際に、サブアイテムに対応するテクスチャデータ又はメッシュデータにより高い優先度を与える。また、優先度が高いほど、該サブアイテムに関連する詳細度が高くなる可能性が高い。
【0058】
シーンリソースリトリーバ352は、シーンリソースコレクタ348からサブアイテムの優先情報を受け取った後、例えば、シーンリソースストレージ356の利用可能なメモリ領域、プライマリメモリ206とセカンダリメモリ214との間のデータ伝送帯域幅、ゲームのグラフィックス設定などを考慮に入れたアルゴリズムを実行し、サブアイテムに対応するテクスチャデータ又はメッシュデータの詳細をいつ取得するのか、テクスチャデータ又はメッシュデータのいずれのバージョン(例えば、高解像度版又は低解像度版)を取得するのかを決定する。
【0059】
レンダリングヒューリスティックモジュール526は、該優先情報によって示されるサブアイテムの優先度を決定するために、他の様々なファクタを使用してもよい。そのようなファクタは、例えば、ゲーム開発者又はユーザによって定義される該シーンエンティティ又は該サブアイテムの重要性、シーンエンティティのタイプ(例えば、キャラクタオブジェクト又は背景オブジェクト)、及びゲームの現在のモード(例えば、カットシーンを再生するためのモード、ゲームプレイモード、又は装備プレビューモード)などを含んでもよい。
【0060】
前記優先情報又はその一部は、平坦化サブアイテムリスト522のサブアイテムのエントリに記憶されてもよい。そして、記憶された情報は、例えば、後続のパスで計算された優先度の正確性を検証するために、後続のパスで使用されてもよい。
【0061】
図5には、3つのコレクタジョブ及び2つの優先度付けジョブのみが図示されているが、これは単に説明の便宜のためである。実際には、更新済シーンエンティティ及びそれらのサブアイテムを処理するために、より多くのコレクタジョブ及び優先度付けジョブが使用されてもよい。
【0062】
サブアイテムの平坦化リストの生成と利用のプロセス例
図6は、ある実施形態による、本明細書に記載された技術を実装するためのプロセスを示すフローチャートである。更新済シーンエンティティのリストは、シーンリソースコレクタ610で受信され、その更新済シーンエンティティリスト512に記憶される。
【0063】
更新済シーンエンティティの少なくともサブセットのサブアイテムは、コレクタサイクル614で抽出される。更新済シーンエンティティ又はそれらのサブアイテムの数が多い場合、更新済シーンエンティティから全てのサブアイテムを抽出するために、複数のコレクタサイクルが必要になる場合がある。コレクタサイクルは、予め定められた時間内に終了するように設定されてもよい。
【0064】
次に、抽出されたサブアイテムは、618により平坦化サブアイテムリストに追加される。1又は2以上の実施形態において、より新しい抽出されたサブアイテムは、該平坦化リストの末尾に付加される。
【0065】
追加のシーンエンティティがシーンリソースコレクタによって受信されるか、又は以前に受信された全てのシーンエンティティがそれらのサブアイテムの抽出のために処理されなかった場合、該処理は、次のコレクタサイクルで残りのシーンエンティティ及び/又は新たに受信されたシーンエンティティを処理するために622を進める。該シーンエンティティからサブアイテムを抽出するプロセスは、処理するシーンエンティティがなくなるまで、複数のコレクタサイクルにわたって繰り返されてもよい。
【0066】
優先タスクサイクルでは、平坦化リスト内の抽出されたサブアイテムの少なくともサブセットに対して626により優先度付けタスクが実行される。その結果、抽出されたサブアイテムのサブセットに関する優先情報が生成される。該優先度付けタスクの一部として、現在の優先タスクサイクルにおいて処理されるべきサブアイテムの数を決定するために、スケジューリング又はプランニングのオペレーションが実行されてもよい。
【0067】
処理する残りのサブアイテム又は追加のサブアイテムがある場合、プロセスは630に進み、次の優先タスクサイクルでこれらの残りのサブアイテム又は追加のサブアイテムに対して優先度付けタスクを実行する。
【0068】
次に、生成された各サブアイテムの優先情報が、634によりシーンリソースリトリーバに送信される。
【0069】
図6を参照して上述したステップ及びステップの順序は、単に例示的なものである。例えば、614によるサブアイテムを抽出するプロセス、及び626による優先度付けタスクを実行するプロセスは、並行して実行されてもよい。更に、全ての更新済シーンエンティティから該サブアイテムを抽出する代わりに、又は全ての抽出されたサブアイテムに対して優先度付けタスクを実行する代わりに、いくつかの更新済シーンエンティティ及び/又はサブアイテムが処理から破棄されてもよい。
【0070】
上述した実施形態は、主にゲームシステムを参照して説明したが、該実施形態は、エンジニアリングソフトウェア、ナビゲーションソフトウェア、教育ソフトウェアのような他のアプリケーションに適用してもよい。
【0071】
特定の実施形態及び用途を図示及び説明したが、本発明は、本明細書に開示された通りの構造及び構成要素に限定されず、当業者に明らかな様々な修正、変更及び変形が、本開示の精神及び範囲から逸脱せずに本明細書に開示された方法及び装置のアレンジメント、オペレーション及び詳細においてなされてもよいことは、理解されるであろう。