画像生成システム、プログラム及び情報記憶媒体
【課題】複数の領域担当処理装置を有効活用して高品質な画像を生成できる画像生成システム、プログラム及び情報記憶媒体等の提供。
【解決手段】画像生成システムは、複数の領域担当処理装置の各領域担当処理装置が、仮想3次元空間を分割した複数の領域の各領域のオブジェクトの制御処理及び仮想カメラから見える各領域の画像の描画処理を行い、描画処理により得られた描画画像データを送信した場合に、描画画像データを受信する通信処理部と、受信した描画画像データに基づいて画像合成処理を行って、仮想カメラから見える表示画像を生成する画像合成部を含む。
【解決手段】画像生成システムは、複数の領域担当処理装置の各領域担当処理装置が、仮想3次元空間を分割した複数の領域の各領域のオブジェクトの制御処理及び仮想カメラから見える各領域の画像の描画処理を行い、描画処理により得られた描画画像データを送信した場合に、描画画像データを受信する通信処理部と、受信した描画画像データに基づいて画像合成処理を行って、仮想カメラから見える表示画像を生成する画像合成部を含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像生成システム、プログラム及び情報記憶媒体等に関する。
【背景技術】
【0002】
近年、いわゆる並列コンピューティングで画像(映像)を生成するシステムが提案されている(例えば特許文献1)。このような並列コンピューティングの画像生成手法として、大規模なシステムを用いて長時間をかけてプリレンダによりCG画像を生成する第1の手法と、比較的小さな規模で密に結合されたハードウェア上でインタラクティブ性のある画像を生成する第2の手法がある。
【0003】
しかしながら、上記の第1の手法では、描画対象となるオブジェクト数が多くなると、物理演算やモーション制御等で計算されたデータが膨大な量になる。従って、この膨大な量のデータを共有し、当該共有データを用いて画面更新時間内に破綻無く画像を描画することは非常に困難になる。このため、リアルタイムで画像を生成することは難しく、プリレンダによるCG画像を生成するしかなかった。
【0004】
また、上記の第2の手法では、第1の手法のような問題は生じないが、そもそも、扱える情報の量が少ないため、画面更新時間内に描画できるオブジェクト数も少なく、出力される画像の品質は低くなりがちであった。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2005−334110号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の幾つかの態様によれば、複数の領域担当処理装置を有効活用して高品質な画像を生成できる画像生成システム、プログラム及び情報記憶媒体等を提供できる。
【課題を解決するための手段】
【0007】
本発明は、複数の領域担当処理装置の各領域担当処理装置が、仮想3次元空間を分割した複数の領域の各領域のオブジェクトの制御処理及び仮想カメラから見える前記各領域の画像の描画処理を行い、描画処理により得られた描画画像データを送信した場合に、前記描画画像データを受信する通信処理部と、受信した前記描画画像データに基づいて画像合成処理を行って、前記仮想カメラから見える表示画像を生成する画像合成部とを含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【0008】
本発明によれば、各領域担当処理装置は、仮想3次元空間を分割した複数の領域の各領域のオブジェクトの制御処理及び仮想カメラから見える各領域の画像の描画処理を行う。そして描画処理により得られた描画画像データを送信する。すると通信処理部が、送信された描画画像データを受信し、画像合成部が、受信した描画画像データに基づいて画像合成処理を行って、仮想カメラから見える表示画像を生成する。このようにすれば、各領域でのオブジェクトの制御処理や描画処理は、その領域を担当する領域担当処理装置により実行される。そして、画像合成部が、領域担当処理装置からの描画画像データに基づく画像合成を行うだけで、表示画像を合成できる。従って、複数の領域担当処理装置を有効活用して、高品質な画像を生成できるようになる。
【0009】
また本発明では、前記仮想カメラの管理処理を行う管理処理部を含み、前記管理処理部は、前記仮想カメラの情報を前記各領域担当処理装置に送信し、前記各領域担当処理装置は、受信した前記仮想カメラの情報に基づいて、前記仮想カメラから見える前記各領域の画像の描画処理を行ってもよい。
【0010】
このようにすれば、管理処理部により仮想カメラの制御を一元的に管理でき、各領域担当処理装置は、管理処理部からの仮想カメラの情報に基づいて、各領域の画像の描画処理を実行できるようになる。
【0011】
また本発明では、前記管理処理部は、操作者が操作する操作オブジェクトの情報に基づいて、前記仮想カメラの情報を取得し、前記各領域担当処理装置に送信してもよい。
【0012】
このようにすれば、操作者により操作される操作オブジェクトの情報に応じて、仮想カメラの情報が設定され、仮想カメラから見える各領域の画像を描画できるようになる。
【0013】
また本発明では、前記複数の領域担当処理装置を含んでもよい。
【0014】
また本発明では、操作者が操作する操作オブジェクトの管理処理を行う管理処理部を含み、前記複数の領域担当処理装置のうち、前記操作オブジェクトの制御処理を行う領域担当処理装置は、制御処理後の前記操作オブジェクトの情報を、前記管理処理部に送信してもよい。
【0015】
このようにすれば、例えばその担当領域に操作オブジェクトが存在する領域担当処理装置が、制御処理後の操作オブジェクトの情報を管理処理部に送信することで、管理処理部は、操作オブジェクトの情報を取得できる。これにより、操作者による操作オブジェクトの操作に応じて変化する表示画像の生成等が可能になる。
【0016】
また本発明では、前記各領域担当処理装置は、担当する領域から移動オブジェクトが出た場合に、前記移動オブジェクトの情報を、他の領域を担当する領域担当処理装置に知らせるための処理を行ってもよい。
【0017】
このようにすれば、担当領域から移動オブジェクトが出た場合に、例えばその移動オブジェクトがその担当領域入った他の領域担当処理装置は、当該移動オブジェクトの情報を取得できるようになり、当該移動オブジェクトの制御処理や描画処理が可能になる。
【0018】
また本発明では、前記各領域担当処理装置は、前記移動オブジェクトの情報として、前記移動オブジェクトの移動情報及び制御用情報の少なくとも1つを、前記他の領域を担当する領域担当処理装置に知らせるための処理を行ってもよい。
【0019】
このようにすれば、他の領域担当処理装置は、取得した移動情報や制御用情報を用いて、移動オブジェクトの制御処理等を実現できるようになる。
【0020】
また本発明では、前記各領域担当処理装置は、領域間を移動する移動オブジェクトのモデルデータを記憶するモデルデータ記憶部を含んでもよい。
【0021】
このようにすれば、領域間を移動オブジェクトが移動した場合にも、移動オブジェクトのモデルデータについては通信しなくても済むようになるため、通信負荷を軽減できる。
【0022】
また本発明では、前記通信処理部は、前記各領域担当処理装置から、前記描画画像データとして画像データ及び奥行きデータを受信し、前記画像合成部は、受信した前記奥行きデータに基づいて画像合成処理を行ってもよい。
【0023】
このようにすれば、各領域担当処理装置で生成された奥行きデータを有効活用して、描画画像の画像合成処理における隠面消去等を実現できる。
【0024】
また本発明では、前記画像合成部は、前記仮想カメラから遠い領域から順に、前記描画画像データに基づく画像合成処理を行ってもよい。
【0025】
このようにすれば、簡素な処理で描画画像の画像合成処理を実現できる。
【0026】
また本発明では、前記通信処理部は、前記表示画像の領域のうち前記各領域担当処理装置により画像が描画された描画領域を特定するための描画領域特定情報を、前記各領域担当処理装置から受信し、前記画像合成部は、受信した前記描画領域特定情報により特定される描画領域に、前記各領域担当処理装置から受信した前記描画画像データに基づく画像を合成する処理を行ってもよい。
【0027】
このようにすれば、描画領域特定情報により特定される領域に描画画像を書き込むだけで済むため、画像合成部の処理負荷を軽減できる。
【0028】
また本発明では、前記各領域担当処理装置での描画画像が書き込まれる複数の受信用バッファと、表示用バッファとを含み、前記画像合成部は、前記複数の受信用バッファの描画画像を合成した画像を前記表示用バッファに書き込んでもよい。
【0029】
このようにすれば、待ち時間を最小限に抑えて、描画画像データを各受信用バッファに書き込むことが可能になる。
【0030】
また本発明では、複数の分割領域に分割された受信用バッファを含み、前記画像合成部は、各サブ画像合成部が、前記複数の分割領域の各分割領域の書き込み処理を担当する複数のサブ画像合成部と、メイン画像合成部とを含み、前記各サブ画像合成部は、前記各領域担当処理装置から受信した前記描画画像データに基づいて、担当する分割領域への書き込み処理を行い、前記メイン画像合成部は、前記受信用バッファの前記複数の分割領域の描画画像を合成する処理を行ってもよい。
【0031】
このようにすれば、画像合成の並列化を容易化でき、複数のサブ画像合成装置を用いて品質の高い表示画像を生成できるようになる。
【図面の簡単な説明】
【0032】
【図1】本実施形態の画像生成システムの構成例。
【図2】複数の領域及びそれを担当する複数の領域担当処理装置の説明図。
【図3】領域担当処理装置の構成例。
【図4】画像生成システムのハードウェア構成例。
【図5】画像生成システムの画像生成手法の説明図。
【図6】本実施形態の動作を説明するためのデータフロー図。
【図7】本実施形態の動作を説明するためのデータフロー図。
【図8】図8(A)、図8(B)は移動オブジェクトが領域の外に出た場合の処理の説明図。
【図9】拡張領域を設定する手法の説明図。
【図10】図10(A)、図10(B)は本実施形態の画像生成手法の説明図。
【図11】本実施形態の画像生成手法の説明図。
【図12】本実施形態の画像生成手法の他の例の説明図。
【図13】複数の受信用バッファを設ける手法の説明図。
【図14】受信用バッファを複数の分割領域に分割する手法の説明図。
【発明を実施するための形態】
【0033】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0034】
1.画像生成システムの構成例
図1に本実施形態の画像生成システムの構成例を示す。画像生成システムは通信処理部20、画像合成部30を含む。また領域担当処理装置10-1〜10-nや管理処理部40を含むことができる。或いは受信用バッファ50や表示用バッファ60を含んでもよい。なお本実施形態は図1の構成に限定されず、その構成要素の一部(例えば領域担当処理装置、管理処理部、受信用バッファ、表示用バッファ等)を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0035】
複数の領域担当処理装置(グリッドコンピュータ)10-1〜10-nの各領域担当処理装置(以下、適宜、領域担当処理装置10と呼ぶ)は、仮想3次元空間(ゲーム空間、ゲームフィールド)を分割した複数の領域(例えばグリッド領域)の各領域のオブジェクトの制御処理を行う。具体的には、各領域に存在する操作オブジェクト(例えばキャラクタ)や移動オブジェクト(例えば弾、ボール)などのオブジェクトについての移動処理や動作(モーション)処理等の制御処理を行う。また仮想カメラから見える各領域の画像の描画処理を行う。具体的には、仮想カメラから見た場合に表示画像に映し出されるその領域の画像の描画処理を行う。即ち、仮想カメラの視点、視線方向で、その領域に存在するオブジェクトを描画して、描画画像データを生成する。
【0036】
通信処理部20は、有線や無線のネットワーク(伝送路)を介して外部(例えば領域担当処理装置、管理処理部)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。具体的には通信処理部20は、各領域担当処理装置10が、各領域の画像の描画処理を行い、描画処理により得られた描画画像データを送信した場合に、その描画画像データを受信する。
【0037】
なおネットワークは、インターネットのような広域ネットワーク(WAN)であってもよいし、広域ネットワークに接続される局所的なネットワーク(LAN)であってもよい。また例えばCPUとメモリが実装された回路ボード間を接続するネットワークであってもよいし、集積回路装置(IC)間を接続する更に局所的なネットワークであってもよい。
【0038】
画像合成部30は種々の画像合成処理を行う。具体的には各領域担当処理装置10から受信した描画画像データに基づいて画像合成処理を行って、仮想カメラから見える表示画像を生成する。即ち領域担当処理装置10-1〜10-nの描画画像を合成して、フレーム画像である表示画像を生成する。
【0039】
例えば通信処理部20が、各領域担当処理装置10から、描画画像データとして画像データ及び奥行きデータ(Z値等)を受信したとする。この場合には画像合成部30は、受信した奥行きデータに基づいて画像合成処理を行うことで、表画像を生成する。或いは画像合成部30は、仮想カメラから遠い領域から順に(例えば領域の代表点のZ値が近い順に)、描画画像データに基づく画像合成処理を行って、表示画像を生成してもよい。
【0040】
また例えば通信処理部20が、表示画像の領域のうち各領域担当処理装置10により画像が描画された描画領域を特定するための描画領域特定情報(描画位置や描画サイズを特定する情報)を、各領域担当処理装置10から受信したとする。この場合には画像合成部30は、受信した描画領域特定情報により特定される描画領域に、各領域担当処理装置10から受信した描画画像データに基づく画像を合成する。
【0041】
なお受信用バッファ50は、各領域担当処理装置10での描画画像が書き込まれるバッファであり、表示用バッファ60は、表示画像を表示するためのバッファである。例えば各領域担当処理装置10から描画画像データを受信すると、その描画画像データに対応する描画画像が受信用バッファ50に書き込まれる。そして画像合成部30は、この受信用バッファ50に書き込まれた描画画像を合成して、表示画像を生成する。この表示画像は表示用バッファ60により、表示部100を介して操作者(プレーヤ)に表示される。この場合に受信用バッファ50と表示用バッファ60は、受信用と表示用が交互に入れ替わるダブルバッファ構造とすることができる。
【0042】
この場合に、受信用バッファ50として複数の受信用バッファを設け、画像合成部30が、これらの複数の受信用バッファの描画画像を合成した画像を、表示用バッファ60に書き込んでもよい。或いは受信用バッファ50を複数の分割領域に分割し、画像合成部30に複数のサブ画像合成部と、メイン画像合成部を設ける。そして各サブ画像合成部が、各領域担当処理装置10から受信した描画画像データに基づいて、担当する分割領域への書き込み処理を行い、メイン画像合成部は、受信用バッファ50の複数の分割領域の描画画像を合成するようにしてもよい。
【0043】
管理処理部40は種々の管理処理を行うものであり、例えば操作オブジェクトの管理処理や仮想カメラの管理処理を行う。ここで操作オブジェクトの管理処理は操作オブジェクト管理部44が行い、仮想カメラの管理処理は仮想カメラ管理部46が行う。
【0044】
例えば管理処理部40は、仮想カメラの情報(視点情報や視線情報)を、各領域担当処理装置10に送信する。具体的には、操作者(例えばプレーヤ)が操作する操作オブジェクト(例えばキャラクタ)の情報(移動情報等)に基づいて、仮想カメラの情報を取得して、各領域担当処理装置10に送信する。すると各領域担当処理装置10は、受信した仮想カメラの情報に基づいて、仮想カメラから見える各領域の画像の描画処理を行う。即ち仮想カメラ情報で設定される視点、視線の仮想カメラで領域内のオブジェクトを描画する。
【0045】
図2に、複数の領域R1〜Rnと、これらの領域R1〜Rnでの処理を担当する領域担当処理装置10-1〜10-nの例を示す。領域R1〜Rnは仮想3次元空間(オブジェクト空間、ゲーム空間)を分割した領域である。図2では仮想3次元空間を複数のグリッド領域に分割している。また図2では説明を簡素化するために2次元的に分割した例を示しているが、領域は3次元的な分割とすることができる。例えば高さ方向においても複数の領域に分割してもよい。また領域の分割形状は、図2のようなグリッド形状には限定されず、グリッド形状以外の種々の形状を採用できる。
【0046】
領域担当処理装置10-1〜10-nは領域R1〜Rnの対応する領域についてのオブジェクトの制御処理や描画処理を担当する。例えば領域担当処理装置10-1は、領域R1に存在するオブジェクトの制御処理(移動処理、動作処理等)を実行する。また仮想カメラVCの視点で、領域R1に存在するオブジェクトを描画する。そして、得られた描画画像データ(仮想カメラVCから見える領域R1の描画画像のデータ)を送信する。他の領域R2〜Rnを担当する領域担当処理装置10-2〜10-nの処理も同様である。
【0047】
図3に領域担当処理装置10の構成例を示す。領域担当処理装置10は、処理部200、記憶部220、通信処理部230を含む。この領域担当処理装置10は、例えばサーバのような情報処理装置により実現してもよいし、CPU(マイクロコンピュータ)とメモリが実装された回路ボードにより実現したり、並列コンピューティングを実現するプロセッサ等の集積回路装置により実現してもよい。なお、領域担当処理装置10は図3の構成に限定されず、その構成要素の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0048】
処理部200(プロセッサ)は、例えば仮想カメラの情報、操作オブジェクト(キャラクタ等)の操作情報、プログラムなどに基づいて、オブジェクト制御処理、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部200は記憶部220をワーク領域として各種処理を行う。この処理部200の機能は、各種プロセッサ(CPU、GPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0049】
処理部200は、オブジェクト空間設定部210、オブジェクト制御部212、描画部214を含む。なおこれらの構成要素の一部を省略したり、他の構成要素(例えばゲーム処理部、音生成部)を追加するなどの種々の変形実施が可能である。
【0050】
オブジェクト空間設定部210は、各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間(仮想3次元空間)に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部220のモデルデータ記憶部222には、モデルオブジェクトの形状や画像を規定する各種モデルデータ(ポリゴンデータ、テクスチャデータ等)が記憶される。また記憶部220のオブジェクトデータ記憶部224には、オブジェクトの位置、回転角度、移動速度、移動方向等のデータであるオブジェクトデータがオブジェクト番号に対応づけて記憶される。そしてこのオブジェクトデータは、オブジェクト制御部212のオブジェクト制御処理(移動演算処理)により順次更新される。なお、オブジェクトとしては、人、ロボット、車、戦闘機、ミサイル、弾等を表す移動オブジェクトや、マップ(地形)、建物、コース(道路)、樹木、壁などを表す固定オブジェクトがある。またオブジェクトとして非表示のオブジェクトを設けてもよい。
【0051】
オブジェクト制御部212は、オブジェクトを移動させるための処理や、オブジェクトを動作させるための処理を行う。即ち、図1の管理処理部40から受信した操作オブジェクトの操作情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクト(移動オブジェクト)をオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させる処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理(物理演算)を行う。なおフレームは、移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0052】
例えばオブジェクト制御部212は、モーションデータに基づいて、オブジェクトのモーションを再生する処理を行う。即ち、オブジェクト(スケルトン)を構成する各パーツオブジェクト(スケルトンを構成する骨)の位置又は回転角度(方向)等を含むモーションデータを用いて、オブジェクトの各パーツオブジェクト(骨)を動かすことで(スケルトン形状を変形させることで)、オブジェクトのモーションを再生する。
【0053】
描画部214は移動オブジェクトや固定オブジェクトなどのオブジェクトの描画処理を行う。例えば処理部200で行われる種々の処理(シミュレーション処理、ゲーム処理)の結果に基づいて描画処理を行い、これにより描画画像を生成する。いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクトの各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が生成され、これらのデータに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0054】
頂点処理(頂点シェーダ処理)では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、
カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。
【0055】
ピクセル処理(ピクセルシェーダ処理)では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、図示しないテクスチャ記憶部に記憶されるテクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定する。そして透視変換されたモデルの描画色を描画バッファ226(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット、フレームバッファ)に出力(描画)する。即ち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0056】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0057】
記憶部220は、処理部200や通信処理部230などのワーク領域となるもので、その機能はRAM(DRAM、VRAM)などにより実現できる。この記憶部220が含むモデルデータ記憶部222は、オブジェクト(例えば領域間を移動する移動オブジェクト)のモデルデータを記憶する。またオブジェクトデータ記憶部224は、リアルタイムに更新されるオブジェクトデータを記憶する。
【0058】
通信処理部230は、有線や無線のネットワーク(伝送路)を介して外部(例えば図1の通信処理部20、管理処理部40)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【0059】
例えば領域担当処理装置10の担当領域にキャラクタ等の操作オブジェクト(操作者の操作対象となるオブジェクト)が存在し、領域担当処理装置10が操作オブジェクトの制御処理を担当していたとする。この場合には領域担当処理装置10は、制御処理後(移動処理後)の操作オブジェクトの情報(位置、方向等の移動情報)を、通信処理部230を介して図1の管理処理部40に送信する。また領域担当処理装置10は、担当する領域から移動オブジェクトが出た場合に、移動オブジェクトの情報を、他の領域を担当する領域担当処理装置に知らせるための処理を行う。即ち移動オブジェクトの情報を通信処理部230を介して送信し、例えば管理処理部40等を介して他の領域担当処理装置に知らせる。この場合の移動オブジェクトの情報としては、移動オブジェクトの位置情報や方向情報等の移動情報や、モーション情報等の制御用情報がある。
【0060】
図4に本実施形態の画像生成システムのハードウェア構成例を示す。図4では、図1の管理処理部40が、管理サーバ等の管理処理装置42により実現され、画像合成部30が、画像合成装置32により実現される。
【0061】
図4において領域担当処理装置10-1〜10-n(グリッドコンピュータ)は、領域R1〜Rn(グリッド)に存在するオブジェクト(物体)の情報を有している。そして管理処理装置42からネットワーク(ネットワークスイッチ22)を介して仮想カメラVCの情報を受信する。そして仮想カメラVCから見える領域R1〜Rnの画像を描画し、得られた描画画像データを、ネットワークを介して画像合成装置32に送信する。すると画像合成装置32は、受信した描画画像データに基づいて画像合成処理を行って、表示部100の表示画像を生成する。
【0062】
具体的には図5において、平面をグリッドを切って、各グリッドに領域担当処理装置10-1〜10-nを配置設定する。各領域担当処理装置10は、仮想カメラ情報を管理処理装置42から受信すると、自身の担当領域(担当グリッド)のオブジェクトのみをレンダリングする。そして各領域担当処理装置10は、担当分の処理が完了すると、例えばRGB(RGBα)の画像データと奥行きデータ(Z値)を含む描画画像データを、画像合成装置32に送信する。この際に例えば自身が描画を担当してない空白分をトリミングした描画画像データを送信してもよい。
【0063】
画像合成装置32は、各領域担当処理装置10の描画画像の合成処理を行う。そして合成処理が終了すると、受信用バッファ50(フレームバッファ)が表示用バッファ60に切り替わり、操作者が見る表示部100に表示画像が表示される。
【0064】
以上の本実施形態の画像生成システムによれば、各領域担当処理装置は、例えばグリッド等で区切られた自身の担当領域の処理だけを行えば済むため、有限の短い時間で処理を終えることができ、大規模な並列コンピューティングを容易に実現できる。また領域担当処理装置からは描画画像データが送信されるため、ネットワークのデータ転送量は描画画像データ量以上にならなくて済む。従って、有限の短い時間でデータを転送することができ、ネットワークのデータ転送量の不足に起因する不具合を防止できる。また画像合成装置(画像合成部)は、転送されて来た各領域担当処理装置の描画画像を合成すれば済むため、並列処理が容易になる。即ち画像合成処理装置が行う処理は、ピクセル単位の奥行きデータによる並べ替えと合成だけで済むため、処理を単純化できる。従って本実施形態によれば、大規模な演算処理結果を比較的短時間で実行し、これまでにない高品質な動画を生成することが可能になる。
【0065】
なお本実施形態の画像生成システムのハードウェア構成としては種々のものを想定できる。例えば領域担当処理装置や画像合成装置や管理処理装置は、CPUやメモリ等が実装された回路ボードや、集積回路装置であってもよく、この場合には、ネットワークは、回路ボード上の配線や集積回路装置の接続線により実現される。
【0066】
また例えば領域担当処理装置として、インターネット等のネットワークに接続された家庭用ゲーム装置を用いてもよい。この場合には、ネットワークには接続されているが、ネットワークを実際には利用していない家庭用ゲーム装置を、ネットワークの中から検索し、これらの検索された家庭用ゲーム装置を領域担当処理装置に割り当てる。そして、このサービスを利用するプレーヤの家庭用ゲーム装置に接続される表示部(テレビ等)に対して、生成された表示画像を表示する。即ちプレーヤが、その家庭用ゲーム装置のゲームコントローラを操作すると、その操作情報が、他の領域担当処理装置である他の家庭用ゲーム装置に伝えられ、他の家庭用ゲーム装置が、担当する領域に存在するオブジェクトの制御処理や描画処理を実行する。そして、その処理結果に基づく描画画像が、例えばゲームメーカ等が運営する画像合成用のサーバ(画像合成装置)に送信され、画像合成用のサーバが描画画像を合成して表示画像を生成する。そして画像合成用のサーバは、生成された表示画像を、当該サービスを利用するプレーヤの家庭用ゲーム装置に対してネットワークを介して送信する。これにより、当該プレーヤが見る表示部に対して高品質なゲーム画像を表示できるようになる。
【0067】
2.動作
次に本実施形態の動作について図6、図7のデータフロー図等を用いて詳細に説明する。図6は、図1の操作オブジェクト管理部44、仮想カメラ管理部46、領域担当処理装置10、画像合成部30の間のデータフロー図である。
【0068】
まず操作オブジェクト管理部44が、プレーヤが操作するキャラクタ等の操作オブジェクトの位置、方向を仮想カメラ管理部46に知らせる(ステップS1)。すると仮想カメラ管理部46は、操作オブジェクトの位置、方向から、仮想カメラ情報を生成し、仮想カメラ情報を、すべての領域担当処理装置10-1〜10-nに送信する(ステップS2、S3)。例えば三人称視点の場合には、操作オブジェクトに仮想カメラが追従するように仮想カメラの視点位置、視線方向を求める。一方、一人称視点の場合には、操作オブジェクトの視点に仮想カメラを設定すればよい。
【0069】
各領域担当処理装置10は、仮想カメラ情報を受信すると、受信した仮想カメラ情報に基づいて、担当領域のオブジェクトを仮想カメラから見た時の画像を描画する(ステップS4、S5)。そして生成された描画画像を画像合成部30(画像合成装置32)に送信する(ステップS6)。すると画像合成部30は、受信した描画画像を合成して、表示画像を生成して、表示部100に出力する(ステップS7、S8)。
【0070】
また領域担当処理装置がキャラクタ等の操作オブジェクトを担当する処理装置である場合には、操作オブジェクト管理部44は、操作オブジェクトの操作情報を、操作オブジェクトが存在する領域の担当処理装置に知らせる(ステップS9、S10)。即ち図示しない操作部を用いて操作者(プレーヤ)が操作オブジェクトの操作を行うと、その操作情報が、操作オブジェクトが存在する領域の担当処理装置に知らされる。
【0071】
操作情報を受信した領域担当処理装置10は、操作情報に基づいて、自身の領域に存在する操作オブジェクトの移動や動作などの制御処理を実行する(ステップS11)。また担当領域のオブジェクト(例えば他のキャラクタや弾等の移動オブジェクト)の物理演算などの制御処理を実行する(ステップS12)。そして操作オブジェクトの最終的な位置、方向を操作オブジェクト管理部44に知らせ、操作オブジェクト管理部44は、操作オブジェクトの最終的な位置、方向を、当該フレームの情報として保存する(ステップS13、S14)。また操作オブジェクト管理部44は、領域境界を越えた移動オブジェクトの別領域への登録処理を行う(ステップ15)。即ち移動オブジェクトが領域を出た場合に、移動オブジェクトの情報を他の領域の担当処理装置に知らせるための処理を行う。
【0072】
図7に領域担当処理装置CP1、CP2、CP3と画像合成部30の間のデータフロー図である。図7では、説明を簡単にするために領域担当処理装置が3つである場合の例を示す。
【0073】
領域担当処理装置CP3は、担当領域の描画処理が終了すると、描画終了宣言を画像合成部30に伝え、画像合成部30が保存する(ステップS21、S22)。そして画像合成部30は、領域担当処理装置CP3に対して画像送信のリクエストを出し、CP3が画像を送信する(ステップS23、S24)。画像合成部30は、画像を受信すると、その合成を行う(ステップS25)。
【0074】
同様に領域担当処理装置CP1は、担当領域の描画処理が終了すると、描画終了宣言を画像合成部30に伝え、画像合成部30が保存する(ステップS26、S27)。そして画像合成部30は、領域担当処理装置CP1に対して画像送信のリクエストを出し、CP1が画像を送信する(ステップS28、S29)。画像合成部30は、画像を受信すると、その合成を行う(ステップS30)。
【0075】
また領域担当処理装置CP2は、担当領域の描画処理が終了すると、描画終了宣言を画像合成部30に伝え、画像合成部30が保存する(ステップS31、S32)。そして画像合成部30は、領域担当処理装置CP2に対して画像送信のリクエストを出し、CP2が画像を送信する(ステップS33、S34)。画像合成部30は、画像を受信すると、その合成を行う(ステップS35)。このようにして領域担当処理装置CP1〜CP3の描画画像が合成され、表示画像が生成されるようになる。
【0076】
本実施形態では図6のステップS3、S4に示すように、管理処理部(仮想カメラ管理部)は、仮想カメラの情報を各領域担当処理装置に送信する。具体的にはステップS1、S2に示すように、管理処理部は、操作オブジェクトの情報に基づいて、仮想カメラの情報を取得し、各領域担当処理装置に送信する。そしてステップS5に示すように各領域担当処理装置は、受信した仮想カメラの情報に基づいて、仮想カメラから見える各領域の画像を描画する。このようにすれば各領域担当処理装置が仮想カメラを管理しなくても、管理処理部により仮想カメラの制御を一元的に管理できるようになる。そして各領域担当処理装置は、管理処理部から仮想カメラ情報を受信することで、仮想カメラから見た各領域の画像を生成できるようになる。
【0077】
またステップS11、S13、S14に示すように、操作オブジェクトの制御処理を行う領域担当処理装置は、制御処理後の操作オブジェクトの情報を、管理処理部(操作オブジェクト管理部)に送信する。そして管理処理部は、受信した操作オブジェクトの情報を保存する。このようにすれば、保存した操作オブジェクトの位置、方向等の情報を、例えば次のフレームにおいて、ステップS1に示すように仮想カメラ管理部に伝えたり、ステップS10に示すように領域担当処理装置に伝えることが可能になる。このようにすれば各領域担当処理装置10が操作オブジェクトの制御等を管理しなくても、管理処理部により操作オブジェクトの制御等を一元的に管理できるようになる。
【0078】
またステップS15に示すように、各領域担当処理装置は、担当領域から移動オブジェクトが出た場合に、その移動オブジェクトの情報を、他の領域を担当する領域担当処理装置に知らせるための処理を行う。
【0079】
例えば図8(A)では、移動オブジェクトMOBは、領域R5から出て、隣の領域R4に移動している。この場合に領域R5の担当処理装置は、移動オブジェクトMOBの情報として、MOBの移動情報や制御用情報を、領域R4の担当処理装置に知らせるための処理を行う。ここで図8(B)に示すように、移動オブジェクトMOBの移動情報は、MOBの位置(X、Y、Z)、方向(θX、θY、θZ)、速度(VX、VY、VZ)、加速度(AX、AY、AZ)などの情報である。また制御用情報は、モーション番号、モーションマトリックス(関節の角度情報)、AI(Artificial Intelligence)情報などである。
【0080】
例えば移動オブジェクトMOBが領域R5に存在する場合には、領域R5の担当処理装置がMOBを制御する。このため領域R4の担当処理装置は移動オブジェクトMOBの移動情報や制御用情報を知ることができない。
【0081】
この点、本実施形態では、移動オブジェクトMOBが領域R5からR4に移動すると、MOBの移動情報や制御用情報が領域R4の担当処理装置に知らされる。従って領域R4の担当処理装置は、MOBの位置、方向、速度、加速度などの移動情報を用いて、領域R5で実行されていた物理演算等を受け継いで実行できる。また移動オブジェクトMOBのモーション再生が行われていた場合には、領域R4の担当処理装置は、領域R5を出た時のモーション番号を知ることで、次に再生するモーションを特定して、モーション再生を引き続き実行できる。また、物理演算等により基準モーションを補正するモーション生成を行っている場合には、領域R5でのモーションマトリックスを用いることで、モーション生成(基準モーションとのモーション合成)を実行できる。また移動オブジェクトMOBが、所定のAIにしたがって動作する場合には、領域R5で適用されていたAI情報を用いることで、領域R4においてもそのAIにしたがって移動オブジェクトMOBを動作させることができる。
【0082】
なお、各領域を実際の大きさよりも拡張した領域(緩衝領域、糊代領域)を設定するようにしてもよい。例えば図9では、領域R5よりも広い拡張領域R5’が設定されており、領域R5の担当処理装置は、移動オブジェクトMOBが拡張領域R5’を超えるまで、MOBの制御を担当する。このようにすれば、例えば移動オブジェクトMOBが領域の境界付近で移動する場合に、制御が不安定になるなどの不具合が発生することを防止できる。
【0083】
3.画像生成手法
次に本実施形態の画像生成手法の具体例について説明する。
【0084】
図10(A)では、操作オブジェクトに追従する仮想カメラVCは、領域R5に存在している。そして仮想カメラVCの視点からは、領域R5、R4、R1、R2のオブジェクトが見えている。この場合に領域R5、R4、R1、R2の担当処理装置は、各領域に存在するオブジェクトを仮想カメラVCの視点で描画することで、仮想カメラVCから見える描画画像を生成する。そして図5(B)に示すように、画像合成部は、領域R5、R4、R1、R2の担当処理装置により生成された描画画像を合成して、表示画像を生成する。このようにすれば、R5、R4、R1、R2の各領域内に多数のオブジェクトが存在する場合にも、各領域の担当処理装置により並列にオブジェクトの制御処理及び描画処理が実行されるため、従来では生成できなかった高品質な動画を生成できる。
【0085】
即ち、これまでの画像生成システムでは、ゲームフィールド上に多数のキャラクタ等のオブジェクトが存在する場合に、これらの多数のオブジェクトの全てを制御して、精細な画像を生成することは難しかった。
【0086】
この点、本実施形態によれば、これらの多数のオブジェクトの制御処理や描画処理が複数の領域担当処理装置により分担して実行されるため、ゲームフィールド上に多数のオブジェクトが登場するような動画を生成できる。また本実施形態によれば、このような動画を、プリレンダではなくリアルタイム(インタラクティブ)に生成することが可能になる。例えば操作者がゲームコントローラなどの操作部により操作を行うと、その操作の影響がゲームフィールド上の全てのオブジェクトに及ぶような動画も生成できる。例えば操作者が、爆発物のスイッチを押す操作を行うことで、ゲームフィールド上の全てのオブジェクトが爆風で吹き飛ぶというような動画の生成も可能になる。
【0087】
さて領域担当処理装置からの描画画像データに基づく画像の合成手法としては、種々の手法が考えられる。
【0088】
例えば図11では、画像合成部は、各領域担当処理装置から描画画像データとして画像データ及び奥行きデータを受信する。ここで画像データとしては、例えばRGBデータや半透明合成用のα値が考えられる。また奥行きデータとしては、Z比較用のZ値が考えられる。画像合成部は、このようなRGB(RGBα)データと奥行きデータを受信すると、受信した奥行きデータに基づいて画像合成処理を行う。具体的には図11のように奥行きデータであるZ値に基づくZ比較処理を行い、RGBデータを描画する。即ち、元の画像のZプレーンのZ値と、各領域担当処理装置の描画画像のZ値を比較し、仮想カメラから見て手前側にあると判断されたピクセルについては、各領域担当処理装置からのRGBデータを描画する。このとき必要であればα値に基づく半透明合成処理を行う。
【0089】
図11の手法によれば、各領域担当処理装置の描画処理により得られたZ値を有効活用して、描画画像の合成処理を実現できる。この場合に、ピクセル単位で隠面消去が行われるため、高品質な表示画像の生成が可能になる。
【0090】
なお、処理の簡素化や処理負荷の軽減を図るためには、画像合成部が、仮想カメラから遠い領域から順に、描画画像データに基づく画像合成処理を行うようにしてもよい。例えば図12において、PR1〜PR9は、領域R1〜R9の代表点である。またZR1、ZR2、ZR4、ZR5は、仮想カメラVCの座標系における領域R1、R2、R4、R5の代表点PR1、PR2、PR4、PR5のZ値である。そしてこれらのZ値ZR1、ZR2、ZR4、ZR5に基づき判断すると、領域R1が最も遠く、領域R5が最も近いと判断される。従って、この場合には、まずR1の領域担当処理装置の描画画像を描画し、次にR2の領域担当処理装置の描画画像を描画し、次にR4の領域担当処理装置の描画画像を描画し、最後にR5の領域担当処理装置の描画画像を描画する。このようにすれば、描画画像データにZ値を含ませなくても、適正な隠面消去処理を実現できる。
【0091】
なお、各領域担当処理装置の描画領域を特定するための描画領域特定情報を、各領域担当処理装置が画像合成部に送信するようにしてもよい。例えば図11において、描画領域の座標(X1、Y1)、(X2、Y2)、(X3、Y3)、(X4、Y4)を描画領域特定情報として送信する。この場合に、描画領域以外の画像についてはトリミングして送信してもよい。そして画像合成部は、この描画領域特定情報により特定される描画領域に、各領域担当処理装置からの描画画像を合成する。このようにすれば、画像合成部は、描画領域特定情報により特定される領域に描画画像を書き込むだけで済むため、処理を単純・簡素化でき、画像合成部の処理負荷を軽減できる。
【0092】
なお描画領域特定情報としては種々の態様の情報を想定できる。例えば描画領域の原点と大きさにより特定してもよい。或いは、描画領域を含むようなバウンディングボリュームを設定して、このバウンディングボリュームにより描画領域を特定するようにしてもよい。
【0093】
さて、前述の図5のようにネットワーク(ネットワークスイッチ22)に対して多数の領域担当処理装置10-1〜10-nが接続された場合に、ネットワークのデータ転送がボトルネックになって、受信用バッファへの描画画像データの書き込みに長い待ち時間が発生してしまうおそれがある。
【0094】
そこで図13では、領域担当処理装置での描画画像が書き込まれる複数の受信用バッファ50-1〜50-mを設けている。そして複数の受信用バッファ50-1〜50-mに対応して設けられた複数のサブ画像合成部により、受信用バッファ50-1〜50-mの各々に対する描画画像の合成処理を行う。例えば第1のサブ画像合成装置(画像合成部)が第1の受信用バッファ50-1に対して描画画像を書き込んでいる時に、他の領域担当処理装置から描画画像のデータを受信した場合には、処理が空いている第2のサブ画像合成装置が第2の受信用バッファ50-2に対してその描画画像を書き込む。またこの描画処理の際に、他の領域担当処理装置から描画画像のデータを受信した場合には、処理が空いている第3のサブ画像合成装置が第3の受信用バッファ50-3に対してその描画画像を書き込む。そしてメインの画像合成装置は、受信用バッファ50-1〜50-mの描画画像を合成した画像を表示用バッファ60に書き込んで、表示画像を生成する。
【0095】
このようにすれば、複数の領域担当処理装置から同時に複数の描画画像データが送られて来た場合にも、待ち時間を最小限に抑えて、描画画像データを受信用バッファに書き込むことが可能になる。従って、ネットワークのデータ転送がボトルネックになって受信用バッファへの描画画像データの書き込みに長い待ち時間が発生してしまうという事態を解消できる。
【0096】
また図14では、受信用バッファ50が複数の分割領域に分割されている。具体的にはグリッド状に分割されている。そしてサブ画像合成装置34-1〜34-kの各サブ画像合成装置は、複数の分割領域の各分割領域の書き込み処理を担当する。例えば第1の分割領域については第1のサブ画像合成装置34-1が担当し、第2の分割領域については第2のサブ画像合成装置34-2が担当する。
【0097】
そして各サブ画像合成装置(サブ画像合成部)は、各領域担当処理装置から受信した描画画像データに基づいて、担当する分割領域への描画画像の書き込み処理を行う。例えば第1のサブ画像合成装置34-1は、各領域担当処理装置から描画画像データを受信して、第1の分割領域に描画画像を書き込む。また第2のサブ画像合成装置34-2は、各領域担当処理装置から描画画像データを受信して、第2の分割領域に描画画像を書き込む。
【0098】
そしてメイン画像合成装置(メイン画像合成部)は、受信用バッファ50の複数の分割領域の描画画像を合成する処理を行う。即ちサブ画像合成装置34-1〜34-kが担当する第1〜第kの分割領域の描画画像を合成した表示画像を、表示用バッファ60に書き込む。
【0099】
このようにすれば、各サブ画像合成装置が担当する領域のサイズを小さくできるため、サブ画像合成装置のパフォーマンスがそれほど高くなくても、描画画像の書き込み処理を短い時間で完了することができる。従って、画像合成の並列化を容易化でき、複数のサブ画像合成装置を用いて品質の高い表示画像を生成できるようになる。
【0100】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、画像合成手法、通信手法、処理の並列化手法等も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【符号の説明】
【0101】
10、10-1〜10-n 領域担当処理装置、20 通信処理部、
22 ネットワークスイッチ、30 画像合成部、32 画像合成装置、
34-1〜34-k サブ画像合成装置、36 メイン画像合成装置、
40 管理処理部、 42 管理処理装置、44 操作オブジェクト管理部、
46 仮想カメラ管理部、50、50-1〜50-m 受信用バッファ、
60 表示用バッファ、100 表示部、200 処理部、
210 オブジェクト空間設定部、212 オブジェクト制御部、214 描画部、
220 記憶部、222 モデルデータ記憶部、224、オブジェクトデータ記憶部、
226 描画バッファ、230 通信処理部
【技術分野】
【0001】
本発明は、画像生成システム、プログラム及び情報記憶媒体等に関する。
【背景技術】
【0002】
近年、いわゆる並列コンピューティングで画像(映像)を生成するシステムが提案されている(例えば特許文献1)。このような並列コンピューティングの画像生成手法として、大規模なシステムを用いて長時間をかけてプリレンダによりCG画像を生成する第1の手法と、比較的小さな規模で密に結合されたハードウェア上でインタラクティブ性のある画像を生成する第2の手法がある。
【0003】
しかしながら、上記の第1の手法では、描画対象となるオブジェクト数が多くなると、物理演算やモーション制御等で計算されたデータが膨大な量になる。従って、この膨大な量のデータを共有し、当該共有データを用いて画面更新時間内に破綻無く画像を描画することは非常に困難になる。このため、リアルタイムで画像を生成することは難しく、プリレンダによるCG画像を生成するしかなかった。
【0004】
また、上記の第2の手法では、第1の手法のような問題は生じないが、そもそも、扱える情報の量が少ないため、画面更新時間内に描画できるオブジェクト数も少なく、出力される画像の品質は低くなりがちであった。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2005−334110号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
本発明の幾つかの態様によれば、複数の領域担当処理装置を有効活用して高品質な画像を生成できる画像生成システム、プログラム及び情報記憶媒体等を提供できる。
【課題を解決するための手段】
【0007】
本発明は、複数の領域担当処理装置の各領域担当処理装置が、仮想3次元空間を分割した複数の領域の各領域のオブジェクトの制御処理及び仮想カメラから見える前記各領域の画像の描画処理を行い、描画処理により得られた描画画像データを送信した場合に、前記描画画像データを受信する通信処理部と、受信した前記描画画像データに基づいて画像合成処理を行って、前記仮想カメラから見える表示画像を生成する画像合成部とを含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【0008】
本発明によれば、各領域担当処理装置は、仮想3次元空間を分割した複数の領域の各領域のオブジェクトの制御処理及び仮想カメラから見える各領域の画像の描画処理を行う。そして描画処理により得られた描画画像データを送信する。すると通信処理部が、送信された描画画像データを受信し、画像合成部が、受信した描画画像データに基づいて画像合成処理を行って、仮想カメラから見える表示画像を生成する。このようにすれば、各領域でのオブジェクトの制御処理や描画処理は、その領域を担当する領域担当処理装置により実行される。そして、画像合成部が、領域担当処理装置からの描画画像データに基づく画像合成を行うだけで、表示画像を合成できる。従って、複数の領域担当処理装置を有効活用して、高品質な画像を生成できるようになる。
【0009】
また本発明では、前記仮想カメラの管理処理を行う管理処理部を含み、前記管理処理部は、前記仮想カメラの情報を前記各領域担当処理装置に送信し、前記各領域担当処理装置は、受信した前記仮想カメラの情報に基づいて、前記仮想カメラから見える前記各領域の画像の描画処理を行ってもよい。
【0010】
このようにすれば、管理処理部により仮想カメラの制御を一元的に管理でき、各領域担当処理装置は、管理処理部からの仮想カメラの情報に基づいて、各領域の画像の描画処理を実行できるようになる。
【0011】
また本発明では、前記管理処理部は、操作者が操作する操作オブジェクトの情報に基づいて、前記仮想カメラの情報を取得し、前記各領域担当処理装置に送信してもよい。
【0012】
このようにすれば、操作者により操作される操作オブジェクトの情報に応じて、仮想カメラの情報が設定され、仮想カメラから見える各領域の画像を描画できるようになる。
【0013】
また本発明では、前記複数の領域担当処理装置を含んでもよい。
【0014】
また本発明では、操作者が操作する操作オブジェクトの管理処理を行う管理処理部を含み、前記複数の領域担当処理装置のうち、前記操作オブジェクトの制御処理を行う領域担当処理装置は、制御処理後の前記操作オブジェクトの情報を、前記管理処理部に送信してもよい。
【0015】
このようにすれば、例えばその担当領域に操作オブジェクトが存在する領域担当処理装置が、制御処理後の操作オブジェクトの情報を管理処理部に送信することで、管理処理部は、操作オブジェクトの情報を取得できる。これにより、操作者による操作オブジェクトの操作に応じて変化する表示画像の生成等が可能になる。
【0016】
また本発明では、前記各領域担当処理装置は、担当する領域から移動オブジェクトが出た場合に、前記移動オブジェクトの情報を、他の領域を担当する領域担当処理装置に知らせるための処理を行ってもよい。
【0017】
このようにすれば、担当領域から移動オブジェクトが出た場合に、例えばその移動オブジェクトがその担当領域入った他の領域担当処理装置は、当該移動オブジェクトの情報を取得できるようになり、当該移動オブジェクトの制御処理や描画処理が可能になる。
【0018】
また本発明では、前記各領域担当処理装置は、前記移動オブジェクトの情報として、前記移動オブジェクトの移動情報及び制御用情報の少なくとも1つを、前記他の領域を担当する領域担当処理装置に知らせるための処理を行ってもよい。
【0019】
このようにすれば、他の領域担当処理装置は、取得した移動情報や制御用情報を用いて、移動オブジェクトの制御処理等を実現できるようになる。
【0020】
また本発明では、前記各領域担当処理装置は、領域間を移動する移動オブジェクトのモデルデータを記憶するモデルデータ記憶部を含んでもよい。
【0021】
このようにすれば、領域間を移動オブジェクトが移動した場合にも、移動オブジェクトのモデルデータについては通信しなくても済むようになるため、通信負荷を軽減できる。
【0022】
また本発明では、前記通信処理部は、前記各領域担当処理装置から、前記描画画像データとして画像データ及び奥行きデータを受信し、前記画像合成部は、受信した前記奥行きデータに基づいて画像合成処理を行ってもよい。
【0023】
このようにすれば、各領域担当処理装置で生成された奥行きデータを有効活用して、描画画像の画像合成処理における隠面消去等を実現できる。
【0024】
また本発明では、前記画像合成部は、前記仮想カメラから遠い領域から順に、前記描画画像データに基づく画像合成処理を行ってもよい。
【0025】
このようにすれば、簡素な処理で描画画像の画像合成処理を実現できる。
【0026】
また本発明では、前記通信処理部は、前記表示画像の領域のうち前記各領域担当処理装置により画像が描画された描画領域を特定するための描画領域特定情報を、前記各領域担当処理装置から受信し、前記画像合成部は、受信した前記描画領域特定情報により特定される描画領域に、前記各領域担当処理装置から受信した前記描画画像データに基づく画像を合成する処理を行ってもよい。
【0027】
このようにすれば、描画領域特定情報により特定される領域に描画画像を書き込むだけで済むため、画像合成部の処理負荷を軽減できる。
【0028】
また本発明では、前記各領域担当処理装置での描画画像が書き込まれる複数の受信用バッファと、表示用バッファとを含み、前記画像合成部は、前記複数の受信用バッファの描画画像を合成した画像を前記表示用バッファに書き込んでもよい。
【0029】
このようにすれば、待ち時間を最小限に抑えて、描画画像データを各受信用バッファに書き込むことが可能になる。
【0030】
また本発明では、複数の分割領域に分割された受信用バッファを含み、前記画像合成部は、各サブ画像合成部が、前記複数の分割領域の各分割領域の書き込み処理を担当する複数のサブ画像合成部と、メイン画像合成部とを含み、前記各サブ画像合成部は、前記各領域担当処理装置から受信した前記描画画像データに基づいて、担当する分割領域への書き込み処理を行い、前記メイン画像合成部は、前記受信用バッファの前記複数の分割領域の描画画像を合成する処理を行ってもよい。
【0031】
このようにすれば、画像合成の並列化を容易化でき、複数のサブ画像合成装置を用いて品質の高い表示画像を生成できるようになる。
【図面の簡単な説明】
【0032】
【図1】本実施形態の画像生成システムの構成例。
【図2】複数の領域及びそれを担当する複数の領域担当処理装置の説明図。
【図3】領域担当処理装置の構成例。
【図4】画像生成システムのハードウェア構成例。
【図5】画像生成システムの画像生成手法の説明図。
【図6】本実施形態の動作を説明するためのデータフロー図。
【図7】本実施形態の動作を説明するためのデータフロー図。
【図8】図8(A)、図8(B)は移動オブジェクトが領域の外に出た場合の処理の説明図。
【図9】拡張領域を設定する手法の説明図。
【図10】図10(A)、図10(B)は本実施形態の画像生成手法の説明図。
【図11】本実施形態の画像生成手法の説明図。
【図12】本実施形態の画像生成手法の他の例の説明図。
【図13】複数の受信用バッファを設ける手法の説明図。
【図14】受信用バッファを複数の分割領域に分割する手法の説明図。
【発明を実施するための形態】
【0033】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0034】
1.画像生成システムの構成例
図1に本実施形態の画像生成システムの構成例を示す。画像生成システムは通信処理部20、画像合成部30を含む。また領域担当処理装置10-1〜10-nや管理処理部40を含むことができる。或いは受信用バッファ50や表示用バッファ60を含んでもよい。なお本実施形態は図1の構成に限定されず、その構成要素の一部(例えば領域担当処理装置、管理処理部、受信用バッファ、表示用バッファ等)を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0035】
複数の領域担当処理装置(グリッドコンピュータ)10-1〜10-nの各領域担当処理装置(以下、適宜、領域担当処理装置10と呼ぶ)は、仮想3次元空間(ゲーム空間、ゲームフィールド)を分割した複数の領域(例えばグリッド領域)の各領域のオブジェクトの制御処理を行う。具体的には、各領域に存在する操作オブジェクト(例えばキャラクタ)や移動オブジェクト(例えば弾、ボール)などのオブジェクトについての移動処理や動作(モーション)処理等の制御処理を行う。また仮想カメラから見える各領域の画像の描画処理を行う。具体的には、仮想カメラから見た場合に表示画像に映し出されるその領域の画像の描画処理を行う。即ち、仮想カメラの視点、視線方向で、その領域に存在するオブジェクトを描画して、描画画像データを生成する。
【0036】
通信処理部20は、有線や無線のネットワーク(伝送路)を介して外部(例えば領域担当処理装置、管理処理部)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。具体的には通信処理部20は、各領域担当処理装置10が、各領域の画像の描画処理を行い、描画処理により得られた描画画像データを送信した場合に、その描画画像データを受信する。
【0037】
なおネットワークは、インターネットのような広域ネットワーク(WAN)であってもよいし、広域ネットワークに接続される局所的なネットワーク(LAN)であってもよい。また例えばCPUとメモリが実装された回路ボード間を接続するネットワークであってもよいし、集積回路装置(IC)間を接続する更に局所的なネットワークであってもよい。
【0038】
画像合成部30は種々の画像合成処理を行う。具体的には各領域担当処理装置10から受信した描画画像データに基づいて画像合成処理を行って、仮想カメラから見える表示画像を生成する。即ち領域担当処理装置10-1〜10-nの描画画像を合成して、フレーム画像である表示画像を生成する。
【0039】
例えば通信処理部20が、各領域担当処理装置10から、描画画像データとして画像データ及び奥行きデータ(Z値等)を受信したとする。この場合には画像合成部30は、受信した奥行きデータに基づいて画像合成処理を行うことで、表画像を生成する。或いは画像合成部30は、仮想カメラから遠い領域から順に(例えば領域の代表点のZ値が近い順に)、描画画像データに基づく画像合成処理を行って、表示画像を生成してもよい。
【0040】
また例えば通信処理部20が、表示画像の領域のうち各領域担当処理装置10により画像が描画された描画領域を特定するための描画領域特定情報(描画位置や描画サイズを特定する情報)を、各領域担当処理装置10から受信したとする。この場合には画像合成部30は、受信した描画領域特定情報により特定される描画領域に、各領域担当処理装置10から受信した描画画像データに基づく画像を合成する。
【0041】
なお受信用バッファ50は、各領域担当処理装置10での描画画像が書き込まれるバッファであり、表示用バッファ60は、表示画像を表示するためのバッファである。例えば各領域担当処理装置10から描画画像データを受信すると、その描画画像データに対応する描画画像が受信用バッファ50に書き込まれる。そして画像合成部30は、この受信用バッファ50に書き込まれた描画画像を合成して、表示画像を生成する。この表示画像は表示用バッファ60により、表示部100を介して操作者(プレーヤ)に表示される。この場合に受信用バッファ50と表示用バッファ60は、受信用と表示用が交互に入れ替わるダブルバッファ構造とすることができる。
【0042】
この場合に、受信用バッファ50として複数の受信用バッファを設け、画像合成部30が、これらの複数の受信用バッファの描画画像を合成した画像を、表示用バッファ60に書き込んでもよい。或いは受信用バッファ50を複数の分割領域に分割し、画像合成部30に複数のサブ画像合成部と、メイン画像合成部を設ける。そして各サブ画像合成部が、各領域担当処理装置10から受信した描画画像データに基づいて、担当する分割領域への書き込み処理を行い、メイン画像合成部は、受信用バッファ50の複数の分割領域の描画画像を合成するようにしてもよい。
【0043】
管理処理部40は種々の管理処理を行うものであり、例えば操作オブジェクトの管理処理や仮想カメラの管理処理を行う。ここで操作オブジェクトの管理処理は操作オブジェクト管理部44が行い、仮想カメラの管理処理は仮想カメラ管理部46が行う。
【0044】
例えば管理処理部40は、仮想カメラの情報(視点情報や視線情報)を、各領域担当処理装置10に送信する。具体的には、操作者(例えばプレーヤ)が操作する操作オブジェクト(例えばキャラクタ)の情報(移動情報等)に基づいて、仮想カメラの情報を取得して、各領域担当処理装置10に送信する。すると各領域担当処理装置10は、受信した仮想カメラの情報に基づいて、仮想カメラから見える各領域の画像の描画処理を行う。即ち仮想カメラ情報で設定される視点、視線の仮想カメラで領域内のオブジェクトを描画する。
【0045】
図2に、複数の領域R1〜Rnと、これらの領域R1〜Rnでの処理を担当する領域担当処理装置10-1〜10-nの例を示す。領域R1〜Rnは仮想3次元空間(オブジェクト空間、ゲーム空間)を分割した領域である。図2では仮想3次元空間を複数のグリッド領域に分割している。また図2では説明を簡素化するために2次元的に分割した例を示しているが、領域は3次元的な分割とすることができる。例えば高さ方向においても複数の領域に分割してもよい。また領域の分割形状は、図2のようなグリッド形状には限定されず、グリッド形状以外の種々の形状を採用できる。
【0046】
領域担当処理装置10-1〜10-nは領域R1〜Rnの対応する領域についてのオブジェクトの制御処理や描画処理を担当する。例えば領域担当処理装置10-1は、領域R1に存在するオブジェクトの制御処理(移動処理、動作処理等)を実行する。また仮想カメラVCの視点で、領域R1に存在するオブジェクトを描画する。そして、得られた描画画像データ(仮想カメラVCから見える領域R1の描画画像のデータ)を送信する。他の領域R2〜Rnを担当する領域担当処理装置10-2〜10-nの処理も同様である。
【0047】
図3に領域担当処理装置10の構成例を示す。領域担当処理装置10は、処理部200、記憶部220、通信処理部230を含む。この領域担当処理装置10は、例えばサーバのような情報処理装置により実現してもよいし、CPU(マイクロコンピュータ)とメモリが実装された回路ボードにより実現したり、並列コンピューティングを実現するプロセッサ等の集積回路装置により実現してもよい。なお、領域担当処理装置10は図3の構成に限定されず、その構成要素の一部を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0048】
処理部200(プロセッサ)は、例えば仮想カメラの情報、操作オブジェクト(キャラクタ等)の操作情報、プログラムなどに基づいて、オブジェクト制御処理、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部200は記憶部220をワーク領域として各種処理を行う。この処理部200の機能は、各種プロセッサ(CPU、GPU等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0049】
処理部200は、オブジェクト空間設定部210、オブジェクト制御部212、描画部214を含む。なおこれらの構成要素の一部を省略したり、他の構成要素(例えばゲーム処理部、音生成部)を追加するなどの種々の変形実施が可能である。
【0050】
オブジェクト空間設定部210は、各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト)をオブジェクト空間(仮想3次元空間)に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。具体的には、記憶部220のモデルデータ記憶部222には、モデルオブジェクトの形状や画像を規定する各種モデルデータ(ポリゴンデータ、テクスチャデータ等)が記憶される。また記憶部220のオブジェクトデータ記憶部224には、オブジェクトの位置、回転角度、移動速度、移動方向等のデータであるオブジェクトデータがオブジェクト番号に対応づけて記憶される。そしてこのオブジェクトデータは、オブジェクト制御部212のオブジェクト制御処理(移動演算処理)により順次更新される。なお、オブジェクトとしては、人、ロボット、車、戦闘機、ミサイル、弾等を表す移動オブジェクトや、マップ(地形)、建物、コース(道路)、樹木、壁などを表す固定オブジェクトがある。またオブジェクトとして非表示のオブジェクトを設けてもよい。
【0051】
オブジェクト制御部212は、オブジェクトを移動させるための処理や、オブジェクトを動作させるための処理を行う。即ち、図1の管理処理部40から受信した操作オブジェクトの操作情報や、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)などに基づいて、オブジェクト(移動オブジェクト)をオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させる処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(パーツオブジェクトの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理(物理演算)を行う。なおフレームは、移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0052】
例えばオブジェクト制御部212は、モーションデータに基づいて、オブジェクトのモーションを再生する処理を行う。即ち、オブジェクト(スケルトン)を構成する各パーツオブジェクト(スケルトンを構成する骨)の位置又は回転角度(方向)等を含むモーションデータを用いて、オブジェクトの各パーツオブジェクト(骨)を動かすことで(スケルトン形状を変形させることで)、オブジェクトのモーションを再生する。
【0053】
描画部214は移動オブジェクトや固定オブジェクトなどのオブジェクトの描画処理を行う。例えば処理部200で行われる種々の処理(シミュレーション処理、ゲーム処理)の結果に基づいて描画処理を行い、これにより描画画像を生成する。いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクトの各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等)が生成され、これらのデータに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0054】
頂点処理(頂点シェーダ処理)では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換(ワールド座標変換、
カメラ座標変換)、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。
【0055】
ピクセル処理(ピクセルシェーダ処理)では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、図示しないテクスチャ記憶部に記憶されるテクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定する。そして透視変換されたモデルの描画色を描画バッファ226(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット、フレームバッファ)に出力(描画)する。即ち、ピクセル処理では、画像情報(色、法線、輝度、α値等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。
【0056】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0057】
記憶部220は、処理部200や通信処理部230などのワーク領域となるもので、その機能はRAM(DRAM、VRAM)などにより実現できる。この記憶部220が含むモデルデータ記憶部222は、オブジェクト(例えば領域間を移動する移動オブジェクト)のモデルデータを記憶する。またオブジェクトデータ記憶部224は、リアルタイムに更新されるオブジェクトデータを記憶する。
【0058】
通信処理部230は、有線や無線のネットワーク(伝送路)を介して外部(例えば図1の通信処理部20、管理処理部40)との間で通信を行うものであり、その機能は、通信用ASIC又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【0059】
例えば領域担当処理装置10の担当領域にキャラクタ等の操作オブジェクト(操作者の操作対象となるオブジェクト)が存在し、領域担当処理装置10が操作オブジェクトの制御処理を担当していたとする。この場合には領域担当処理装置10は、制御処理後(移動処理後)の操作オブジェクトの情報(位置、方向等の移動情報)を、通信処理部230を介して図1の管理処理部40に送信する。また領域担当処理装置10は、担当する領域から移動オブジェクトが出た場合に、移動オブジェクトの情報を、他の領域を担当する領域担当処理装置に知らせるための処理を行う。即ち移動オブジェクトの情報を通信処理部230を介して送信し、例えば管理処理部40等を介して他の領域担当処理装置に知らせる。この場合の移動オブジェクトの情報としては、移動オブジェクトの位置情報や方向情報等の移動情報や、モーション情報等の制御用情報がある。
【0060】
図4に本実施形態の画像生成システムのハードウェア構成例を示す。図4では、図1の管理処理部40が、管理サーバ等の管理処理装置42により実現され、画像合成部30が、画像合成装置32により実現される。
【0061】
図4において領域担当処理装置10-1〜10-n(グリッドコンピュータ)は、領域R1〜Rn(グリッド)に存在するオブジェクト(物体)の情報を有している。そして管理処理装置42からネットワーク(ネットワークスイッチ22)を介して仮想カメラVCの情報を受信する。そして仮想カメラVCから見える領域R1〜Rnの画像を描画し、得られた描画画像データを、ネットワークを介して画像合成装置32に送信する。すると画像合成装置32は、受信した描画画像データに基づいて画像合成処理を行って、表示部100の表示画像を生成する。
【0062】
具体的には図5において、平面をグリッドを切って、各グリッドに領域担当処理装置10-1〜10-nを配置設定する。各領域担当処理装置10は、仮想カメラ情報を管理処理装置42から受信すると、自身の担当領域(担当グリッド)のオブジェクトのみをレンダリングする。そして各領域担当処理装置10は、担当分の処理が完了すると、例えばRGB(RGBα)の画像データと奥行きデータ(Z値)を含む描画画像データを、画像合成装置32に送信する。この際に例えば自身が描画を担当してない空白分をトリミングした描画画像データを送信してもよい。
【0063】
画像合成装置32は、各領域担当処理装置10の描画画像の合成処理を行う。そして合成処理が終了すると、受信用バッファ50(フレームバッファ)が表示用バッファ60に切り替わり、操作者が見る表示部100に表示画像が表示される。
【0064】
以上の本実施形態の画像生成システムによれば、各領域担当処理装置は、例えばグリッド等で区切られた自身の担当領域の処理だけを行えば済むため、有限の短い時間で処理を終えることができ、大規模な並列コンピューティングを容易に実現できる。また領域担当処理装置からは描画画像データが送信されるため、ネットワークのデータ転送量は描画画像データ量以上にならなくて済む。従って、有限の短い時間でデータを転送することができ、ネットワークのデータ転送量の不足に起因する不具合を防止できる。また画像合成装置(画像合成部)は、転送されて来た各領域担当処理装置の描画画像を合成すれば済むため、並列処理が容易になる。即ち画像合成処理装置が行う処理は、ピクセル単位の奥行きデータによる並べ替えと合成だけで済むため、処理を単純化できる。従って本実施形態によれば、大規模な演算処理結果を比較的短時間で実行し、これまでにない高品質な動画を生成することが可能になる。
【0065】
なお本実施形態の画像生成システムのハードウェア構成としては種々のものを想定できる。例えば領域担当処理装置や画像合成装置や管理処理装置は、CPUやメモリ等が実装された回路ボードや、集積回路装置であってもよく、この場合には、ネットワークは、回路ボード上の配線や集積回路装置の接続線により実現される。
【0066】
また例えば領域担当処理装置として、インターネット等のネットワークに接続された家庭用ゲーム装置を用いてもよい。この場合には、ネットワークには接続されているが、ネットワークを実際には利用していない家庭用ゲーム装置を、ネットワークの中から検索し、これらの検索された家庭用ゲーム装置を領域担当処理装置に割り当てる。そして、このサービスを利用するプレーヤの家庭用ゲーム装置に接続される表示部(テレビ等)に対して、生成された表示画像を表示する。即ちプレーヤが、その家庭用ゲーム装置のゲームコントローラを操作すると、その操作情報が、他の領域担当処理装置である他の家庭用ゲーム装置に伝えられ、他の家庭用ゲーム装置が、担当する領域に存在するオブジェクトの制御処理や描画処理を実行する。そして、その処理結果に基づく描画画像が、例えばゲームメーカ等が運営する画像合成用のサーバ(画像合成装置)に送信され、画像合成用のサーバが描画画像を合成して表示画像を生成する。そして画像合成用のサーバは、生成された表示画像を、当該サービスを利用するプレーヤの家庭用ゲーム装置に対してネットワークを介して送信する。これにより、当該プレーヤが見る表示部に対して高品質なゲーム画像を表示できるようになる。
【0067】
2.動作
次に本実施形態の動作について図6、図7のデータフロー図等を用いて詳細に説明する。図6は、図1の操作オブジェクト管理部44、仮想カメラ管理部46、領域担当処理装置10、画像合成部30の間のデータフロー図である。
【0068】
まず操作オブジェクト管理部44が、プレーヤが操作するキャラクタ等の操作オブジェクトの位置、方向を仮想カメラ管理部46に知らせる(ステップS1)。すると仮想カメラ管理部46は、操作オブジェクトの位置、方向から、仮想カメラ情報を生成し、仮想カメラ情報を、すべての領域担当処理装置10-1〜10-nに送信する(ステップS2、S3)。例えば三人称視点の場合には、操作オブジェクトに仮想カメラが追従するように仮想カメラの視点位置、視線方向を求める。一方、一人称視点の場合には、操作オブジェクトの視点に仮想カメラを設定すればよい。
【0069】
各領域担当処理装置10は、仮想カメラ情報を受信すると、受信した仮想カメラ情報に基づいて、担当領域のオブジェクトを仮想カメラから見た時の画像を描画する(ステップS4、S5)。そして生成された描画画像を画像合成部30(画像合成装置32)に送信する(ステップS6)。すると画像合成部30は、受信した描画画像を合成して、表示画像を生成して、表示部100に出力する(ステップS7、S8)。
【0070】
また領域担当処理装置がキャラクタ等の操作オブジェクトを担当する処理装置である場合には、操作オブジェクト管理部44は、操作オブジェクトの操作情報を、操作オブジェクトが存在する領域の担当処理装置に知らせる(ステップS9、S10)。即ち図示しない操作部を用いて操作者(プレーヤ)が操作オブジェクトの操作を行うと、その操作情報が、操作オブジェクトが存在する領域の担当処理装置に知らされる。
【0071】
操作情報を受信した領域担当処理装置10は、操作情報に基づいて、自身の領域に存在する操作オブジェクトの移動や動作などの制御処理を実行する(ステップS11)。また担当領域のオブジェクト(例えば他のキャラクタや弾等の移動オブジェクト)の物理演算などの制御処理を実行する(ステップS12)。そして操作オブジェクトの最終的な位置、方向を操作オブジェクト管理部44に知らせ、操作オブジェクト管理部44は、操作オブジェクトの最終的な位置、方向を、当該フレームの情報として保存する(ステップS13、S14)。また操作オブジェクト管理部44は、領域境界を越えた移動オブジェクトの別領域への登録処理を行う(ステップ15)。即ち移動オブジェクトが領域を出た場合に、移動オブジェクトの情報を他の領域の担当処理装置に知らせるための処理を行う。
【0072】
図7に領域担当処理装置CP1、CP2、CP3と画像合成部30の間のデータフロー図である。図7では、説明を簡単にするために領域担当処理装置が3つである場合の例を示す。
【0073】
領域担当処理装置CP3は、担当領域の描画処理が終了すると、描画終了宣言を画像合成部30に伝え、画像合成部30が保存する(ステップS21、S22)。そして画像合成部30は、領域担当処理装置CP3に対して画像送信のリクエストを出し、CP3が画像を送信する(ステップS23、S24)。画像合成部30は、画像を受信すると、その合成を行う(ステップS25)。
【0074】
同様に領域担当処理装置CP1は、担当領域の描画処理が終了すると、描画終了宣言を画像合成部30に伝え、画像合成部30が保存する(ステップS26、S27)。そして画像合成部30は、領域担当処理装置CP1に対して画像送信のリクエストを出し、CP1が画像を送信する(ステップS28、S29)。画像合成部30は、画像を受信すると、その合成を行う(ステップS30)。
【0075】
また領域担当処理装置CP2は、担当領域の描画処理が終了すると、描画終了宣言を画像合成部30に伝え、画像合成部30が保存する(ステップS31、S32)。そして画像合成部30は、領域担当処理装置CP2に対して画像送信のリクエストを出し、CP2が画像を送信する(ステップS33、S34)。画像合成部30は、画像を受信すると、その合成を行う(ステップS35)。このようにして領域担当処理装置CP1〜CP3の描画画像が合成され、表示画像が生成されるようになる。
【0076】
本実施形態では図6のステップS3、S4に示すように、管理処理部(仮想カメラ管理部)は、仮想カメラの情報を各領域担当処理装置に送信する。具体的にはステップS1、S2に示すように、管理処理部は、操作オブジェクトの情報に基づいて、仮想カメラの情報を取得し、各領域担当処理装置に送信する。そしてステップS5に示すように各領域担当処理装置は、受信した仮想カメラの情報に基づいて、仮想カメラから見える各領域の画像を描画する。このようにすれば各領域担当処理装置が仮想カメラを管理しなくても、管理処理部により仮想カメラの制御を一元的に管理できるようになる。そして各領域担当処理装置は、管理処理部から仮想カメラ情報を受信することで、仮想カメラから見た各領域の画像を生成できるようになる。
【0077】
またステップS11、S13、S14に示すように、操作オブジェクトの制御処理を行う領域担当処理装置は、制御処理後の操作オブジェクトの情報を、管理処理部(操作オブジェクト管理部)に送信する。そして管理処理部は、受信した操作オブジェクトの情報を保存する。このようにすれば、保存した操作オブジェクトの位置、方向等の情報を、例えば次のフレームにおいて、ステップS1に示すように仮想カメラ管理部に伝えたり、ステップS10に示すように領域担当処理装置に伝えることが可能になる。このようにすれば各領域担当処理装置10が操作オブジェクトの制御等を管理しなくても、管理処理部により操作オブジェクトの制御等を一元的に管理できるようになる。
【0078】
またステップS15に示すように、各領域担当処理装置は、担当領域から移動オブジェクトが出た場合に、その移動オブジェクトの情報を、他の領域を担当する領域担当処理装置に知らせるための処理を行う。
【0079】
例えば図8(A)では、移動オブジェクトMOBは、領域R5から出て、隣の領域R4に移動している。この場合に領域R5の担当処理装置は、移動オブジェクトMOBの情報として、MOBの移動情報や制御用情報を、領域R4の担当処理装置に知らせるための処理を行う。ここで図8(B)に示すように、移動オブジェクトMOBの移動情報は、MOBの位置(X、Y、Z)、方向(θX、θY、θZ)、速度(VX、VY、VZ)、加速度(AX、AY、AZ)などの情報である。また制御用情報は、モーション番号、モーションマトリックス(関節の角度情報)、AI(Artificial Intelligence)情報などである。
【0080】
例えば移動オブジェクトMOBが領域R5に存在する場合には、領域R5の担当処理装置がMOBを制御する。このため領域R4の担当処理装置は移動オブジェクトMOBの移動情報や制御用情報を知ることができない。
【0081】
この点、本実施形態では、移動オブジェクトMOBが領域R5からR4に移動すると、MOBの移動情報や制御用情報が領域R4の担当処理装置に知らされる。従って領域R4の担当処理装置は、MOBの位置、方向、速度、加速度などの移動情報を用いて、領域R5で実行されていた物理演算等を受け継いで実行できる。また移動オブジェクトMOBのモーション再生が行われていた場合には、領域R4の担当処理装置は、領域R5を出た時のモーション番号を知ることで、次に再生するモーションを特定して、モーション再生を引き続き実行できる。また、物理演算等により基準モーションを補正するモーション生成を行っている場合には、領域R5でのモーションマトリックスを用いることで、モーション生成(基準モーションとのモーション合成)を実行できる。また移動オブジェクトMOBが、所定のAIにしたがって動作する場合には、領域R5で適用されていたAI情報を用いることで、領域R4においてもそのAIにしたがって移動オブジェクトMOBを動作させることができる。
【0082】
なお、各領域を実際の大きさよりも拡張した領域(緩衝領域、糊代領域)を設定するようにしてもよい。例えば図9では、領域R5よりも広い拡張領域R5’が設定されており、領域R5の担当処理装置は、移動オブジェクトMOBが拡張領域R5’を超えるまで、MOBの制御を担当する。このようにすれば、例えば移動オブジェクトMOBが領域の境界付近で移動する場合に、制御が不安定になるなどの不具合が発生することを防止できる。
【0083】
3.画像生成手法
次に本実施形態の画像生成手法の具体例について説明する。
【0084】
図10(A)では、操作オブジェクトに追従する仮想カメラVCは、領域R5に存在している。そして仮想カメラVCの視点からは、領域R5、R4、R1、R2のオブジェクトが見えている。この場合に領域R5、R4、R1、R2の担当処理装置は、各領域に存在するオブジェクトを仮想カメラVCの視点で描画することで、仮想カメラVCから見える描画画像を生成する。そして図5(B)に示すように、画像合成部は、領域R5、R4、R1、R2の担当処理装置により生成された描画画像を合成して、表示画像を生成する。このようにすれば、R5、R4、R1、R2の各領域内に多数のオブジェクトが存在する場合にも、各領域の担当処理装置により並列にオブジェクトの制御処理及び描画処理が実行されるため、従来では生成できなかった高品質な動画を生成できる。
【0085】
即ち、これまでの画像生成システムでは、ゲームフィールド上に多数のキャラクタ等のオブジェクトが存在する場合に、これらの多数のオブジェクトの全てを制御して、精細な画像を生成することは難しかった。
【0086】
この点、本実施形態によれば、これらの多数のオブジェクトの制御処理や描画処理が複数の領域担当処理装置により分担して実行されるため、ゲームフィールド上に多数のオブジェクトが登場するような動画を生成できる。また本実施形態によれば、このような動画を、プリレンダではなくリアルタイム(インタラクティブ)に生成することが可能になる。例えば操作者がゲームコントローラなどの操作部により操作を行うと、その操作の影響がゲームフィールド上の全てのオブジェクトに及ぶような動画も生成できる。例えば操作者が、爆発物のスイッチを押す操作を行うことで、ゲームフィールド上の全てのオブジェクトが爆風で吹き飛ぶというような動画の生成も可能になる。
【0087】
さて領域担当処理装置からの描画画像データに基づく画像の合成手法としては、種々の手法が考えられる。
【0088】
例えば図11では、画像合成部は、各領域担当処理装置から描画画像データとして画像データ及び奥行きデータを受信する。ここで画像データとしては、例えばRGBデータや半透明合成用のα値が考えられる。また奥行きデータとしては、Z比較用のZ値が考えられる。画像合成部は、このようなRGB(RGBα)データと奥行きデータを受信すると、受信した奥行きデータに基づいて画像合成処理を行う。具体的には図11のように奥行きデータであるZ値に基づくZ比較処理を行い、RGBデータを描画する。即ち、元の画像のZプレーンのZ値と、各領域担当処理装置の描画画像のZ値を比較し、仮想カメラから見て手前側にあると判断されたピクセルについては、各領域担当処理装置からのRGBデータを描画する。このとき必要であればα値に基づく半透明合成処理を行う。
【0089】
図11の手法によれば、各領域担当処理装置の描画処理により得られたZ値を有効活用して、描画画像の合成処理を実現できる。この場合に、ピクセル単位で隠面消去が行われるため、高品質な表示画像の生成が可能になる。
【0090】
なお、処理の簡素化や処理負荷の軽減を図るためには、画像合成部が、仮想カメラから遠い領域から順に、描画画像データに基づく画像合成処理を行うようにしてもよい。例えば図12において、PR1〜PR9は、領域R1〜R9の代表点である。またZR1、ZR2、ZR4、ZR5は、仮想カメラVCの座標系における領域R1、R2、R4、R5の代表点PR1、PR2、PR4、PR5のZ値である。そしてこれらのZ値ZR1、ZR2、ZR4、ZR5に基づき判断すると、領域R1が最も遠く、領域R5が最も近いと判断される。従って、この場合には、まずR1の領域担当処理装置の描画画像を描画し、次にR2の領域担当処理装置の描画画像を描画し、次にR4の領域担当処理装置の描画画像を描画し、最後にR5の領域担当処理装置の描画画像を描画する。このようにすれば、描画画像データにZ値を含ませなくても、適正な隠面消去処理を実現できる。
【0091】
なお、各領域担当処理装置の描画領域を特定するための描画領域特定情報を、各領域担当処理装置が画像合成部に送信するようにしてもよい。例えば図11において、描画領域の座標(X1、Y1)、(X2、Y2)、(X3、Y3)、(X4、Y4)を描画領域特定情報として送信する。この場合に、描画領域以外の画像についてはトリミングして送信してもよい。そして画像合成部は、この描画領域特定情報により特定される描画領域に、各領域担当処理装置からの描画画像を合成する。このようにすれば、画像合成部は、描画領域特定情報により特定される領域に描画画像を書き込むだけで済むため、処理を単純・簡素化でき、画像合成部の処理負荷を軽減できる。
【0092】
なお描画領域特定情報としては種々の態様の情報を想定できる。例えば描画領域の原点と大きさにより特定してもよい。或いは、描画領域を含むようなバウンディングボリュームを設定して、このバウンディングボリュームにより描画領域を特定するようにしてもよい。
【0093】
さて、前述の図5のようにネットワーク(ネットワークスイッチ22)に対して多数の領域担当処理装置10-1〜10-nが接続された場合に、ネットワークのデータ転送がボトルネックになって、受信用バッファへの描画画像データの書き込みに長い待ち時間が発生してしまうおそれがある。
【0094】
そこで図13では、領域担当処理装置での描画画像が書き込まれる複数の受信用バッファ50-1〜50-mを設けている。そして複数の受信用バッファ50-1〜50-mに対応して設けられた複数のサブ画像合成部により、受信用バッファ50-1〜50-mの各々に対する描画画像の合成処理を行う。例えば第1のサブ画像合成装置(画像合成部)が第1の受信用バッファ50-1に対して描画画像を書き込んでいる時に、他の領域担当処理装置から描画画像のデータを受信した場合には、処理が空いている第2のサブ画像合成装置が第2の受信用バッファ50-2に対してその描画画像を書き込む。またこの描画処理の際に、他の領域担当処理装置から描画画像のデータを受信した場合には、処理が空いている第3のサブ画像合成装置が第3の受信用バッファ50-3に対してその描画画像を書き込む。そしてメインの画像合成装置は、受信用バッファ50-1〜50-mの描画画像を合成した画像を表示用バッファ60に書き込んで、表示画像を生成する。
【0095】
このようにすれば、複数の領域担当処理装置から同時に複数の描画画像データが送られて来た場合にも、待ち時間を最小限に抑えて、描画画像データを受信用バッファに書き込むことが可能になる。従って、ネットワークのデータ転送がボトルネックになって受信用バッファへの描画画像データの書き込みに長い待ち時間が発生してしまうという事態を解消できる。
【0096】
また図14では、受信用バッファ50が複数の分割領域に分割されている。具体的にはグリッド状に分割されている。そしてサブ画像合成装置34-1〜34-kの各サブ画像合成装置は、複数の分割領域の各分割領域の書き込み処理を担当する。例えば第1の分割領域については第1のサブ画像合成装置34-1が担当し、第2の分割領域については第2のサブ画像合成装置34-2が担当する。
【0097】
そして各サブ画像合成装置(サブ画像合成部)は、各領域担当処理装置から受信した描画画像データに基づいて、担当する分割領域への描画画像の書き込み処理を行う。例えば第1のサブ画像合成装置34-1は、各領域担当処理装置から描画画像データを受信して、第1の分割領域に描画画像を書き込む。また第2のサブ画像合成装置34-2は、各領域担当処理装置から描画画像データを受信して、第2の分割領域に描画画像を書き込む。
【0098】
そしてメイン画像合成装置(メイン画像合成部)は、受信用バッファ50の複数の分割領域の描画画像を合成する処理を行う。即ちサブ画像合成装置34-1〜34-kが担当する第1〜第kの分割領域の描画画像を合成した表示画像を、表示用バッファ60に書き込む。
【0099】
このようにすれば、各サブ画像合成装置が担当する領域のサイズを小さくできるため、サブ画像合成装置のパフォーマンスがそれほど高くなくても、描画画像の書き込み処理を短い時間で完了することができる。従って、画像合成の並列化を容易化でき、複数のサブ画像合成装置を用いて品質の高い表示画像を生成できるようになる。
【0100】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また、画像合成手法、通信手法、処理の並列化手法等も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【符号の説明】
【0101】
10、10-1〜10-n 領域担当処理装置、20 通信処理部、
22 ネットワークスイッチ、30 画像合成部、32 画像合成装置、
34-1〜34-k サブ画像合成装置、36 メイン画像合成装置、
40 管理処理部、 42 管理処理装置、44 操作オブジェクト管理部、
46 仮想カメラ管理部、50、50-1〜50-m 受信用バッファ、
60 表示用バッファ、100 表示部、200 処理部、
210 オブジェクト空間設定部、212 オブジェクト制御部、214 描画部、
220 記憶部、222 モデルデータ記憶部、224、オブジェクトデータ記憶部、
226 描画バッファ、230 通信処理部
【特許請求の範囲】
【請求項1】
複数の領域担当処理装置の各領域担当処理装置が、仮想3次元空間を分割した複数の領域の各領域のオブジェクトの制御処理及び仮想カメラから見える前記各領域の画像の描画処理を行い、描画処理により得られた描画画像データを送信した場合に、前記描画画像データを受信する通信処理部と、
受信した前記描画画像データに基づいて画像合成処理を行って、前記仮想カメラから見える表示画像を生成する画像合成部と、
を含むことを特徴とする画像生成システム。
【請求項2】
請求項1において、
前記仮想カメラの管理処理を行う管理処理部を含み、
前記管理処理部は、
前記仮想カメラの情報を前記各領域担当処理装置に送信し、
前記各領域担当処理装置は、
受信した前記仮想カメラの情報に基づいて、前記仮想カメラから見える前記各領域の画像の描画処理を行うことを特徴とする画像生成システム。
【請求項3】
請求項2において、
前記管理処理部は、
操作者が操作する操作オブジェクトの情報に基づいて、前記仮想カメラの情報を取得し、前記各領域担当処理装置に送信することを特徴とする画像生成システム。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記複数の領域担当処理装置を含むことを特徴とする画像生成システム。
【請求項5】
請求項4において、
操作者が操作する操作オブジェクトの管理処理を行う管理処理部を含み、
前記複数の領域担当処理装置のうち、前記操作オブジェクトの制御処理を行う領域担当処理装置は、
制御処理後の前記操作オブジェクトの情報を、前記管理処理部に送信することを特徴とする画像生成システム。
【請求項6】
請求項4又は5において、
前記各領域担当処理装置は、
担当する領域から移動オブジェクトが出た場合に、前記移動オブジェクトの情報を、他の領域を担当する領域担当処理装置に知らせるための処理を行うことを特徴とする画像生成システム。
【請求項7】
請求項6において、
前記各領域担当処理装置は、
前記移動オブジェクトの情報として、前記移動オブジェクトの移動情報及び制御用情報の少なくとも1つを、前記他の領域を担当する領域担当処理装置に知らせるための処理を行うことを特徴とする画像生成システム。
【請求項8】
請求項4乃至7のいずれかにおいて、
前記各領域担当処理装置は、
領域間を移動する移動オブジェクトのモデルデータを記憶するモデルデータ記憶部を含むことを特徴とする画像生成システム。
【請求項9】
請求項1乃至8のいずれかにおいて、
前記通信処理部は、
前記各領域担当処理装置から、前記描画画像データとして画像データ及び奥行きデータを受信し、
前記画像合成部は、
受信した前記奥行きデータに基づいて画像合成処理を行うことを特徴とする画像生成システム。
【請求項10】
請求項1乃至8のいずれかにおいて、
前記画像合成部は、
前記仮想カメラから遠い領域から順に、前記描画画像データに基づく画像合成処理を行うことを特徴とする画像生成システム。
【請求項11】
請求項1乃至10のいずれかにおいて、
前記通信処理部は、
前記表示画像の領域のうち前記各領域担当処理装置により画像が描画された描画領域を特定するための描画領域特定情報を、前記各領域担当処理装置から受信し、
前記画像合成部は、
受信した前記描画領域特定情報により特定される描画領域に、前記各領域担当処理装置から受信した前記描画画像データに基づく画像を合成する処理を行うことを特徴とする画像生成システム。
【請求項12】
請求項1乃至11のいずれかにおいて、
前記各領域担当処理装置での描画画像が書き込まれる複数の受信用バッファと、
表示用バッファとを含み、
前記画像合成部は、
前記複数の受信用バッファの描画画像を合成した画像を前記表示用バッファに書き込むことを特徴とする画像生成システム。
【請求項13】
請求項1乃至11のいずれかにおいて、
複数の分割領域に分割された受信用バッファを含み、
前記画像合成部は、
各サブ画像合成部が、前記複数の分割領域の各分割領域の書き込み処理を担当する複数のサブ画像合成部と、
メイン画像合成部とを含み、
前記各サブ画像合成部は、
前記各領域担当処理装置から受信した前記描画画像データに基づいて、担当する分割領域への書き込み処理を行い、
前記メイン画像合成部は、
前記受信用バッファの前記複数の分割領域の描画画像を合成する処理を行うことを特徴とする画像生成システム。
【請求項14】
複数の領域担当処理装置の各領域担当処理装置が、仮想3次元空間を分割した複数の領域の各領域のオブジェクトの制御処理及び仮想カメラから見える前記各領域の画像の描画処理を行い、描画処理により得られた描画画像データを送信した場合に、前記描画画像データを受信する通信処理部と、
受信した前記描画画像データに基づいて画像合成処理を行って、前記仮想カメラから見える表示画像を生成する画像合成部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項15】
コンピュータ読み取り可能な情報記憶媒体であって、請求項14に記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項1】
複数の領域担当処理装置の各領域担当処理装置が、仮想3次元空間を分割した複数の領域の各領域のオブジェクトの制御処理及び仮想カメラから見える前記各領域の画像の描画処理を行い、描画処理により得られた描画画像データを送信した場合に、前記描画画像データを受信する通信処理部と、
受信した前記描画画像データに基づいて画像合成処理を行って、前記仮想カメラから見える表示画像を生成する画像合成部と、
を含むことを特徴とする画像生成システム。
【請求項2】
請求項1において、
前記仮想カメラの管理処理を行う管理処理部を含み、
前記管理処理部は、
前記仮想カメラの情報を前記各領域担当処理装置に送信し、
前記各領域担当処理装置は、
受信した前記仮想カメラの情報に基づいて、前記仮想カメラから見える前記各領域の画像の描画処理を行うことを特徴とする画像生成システム。
【請求項3】
請求項2において、
前記管理処理部は、
操作者が操作する操作オブジェクトの情報に基づいて、前記仮想カメラの情報を取得し、前記各領域担当処理装置に送信することを特徴とする画像生成システム。
【請求項4】
請求項1乃至3のいずれかにおいて、
前記複数の領域担当処理装置を含むことを特徴とする画像生成システム。
【請求項5】
請求項4において、
操作者が操作する操作オブジェクトの管理処理を行う管理処理部を含み、
前記複数の領域担当処理装置のうち、前記操作オブジェクトの制御処理を行う領域担当処理装置は、
制御処理後の前記操作オブジェクトの情報を、前記管理処理部に送信することを特徴とする画像生成システム。
【請求項6】
請求項4又は5において、
前記各領域担当処理装置は、
担当する領域から移動オブジェクトが出た場合に、前記移動オブジェクトの情報を、他の領域を担当する領域担当処理装置に知らせるための処理を行うことを特徴とする画像生成システム。
【請求項7】
請求項6において、
前記各領域担当処理装置は、
前記移動オブジェクトの情報として、前記移動オブジェクトの移動情報及び制御用情報の少なくとも1つを、前記他の領域を担当する領域担当処理装置に知らせるための処理を行うことを特徴とする画像生成システム。
【請求項8】
請求項4乃至7のいずれかにおいて、
前記各領域担当処理装置は、
領域間を移動する移動オブジェクトのモデルデータを記憶するモデルデータ記憶部を含むことを特徴とする画像生成システム。
【請求項9】
請求項1乃至8のいずれかにおいて、
前記通信処理部は、
前記各領域担当処理装置から、前記描画画像データとして画像データ及び奥行きデータを受信し、
前記画像合成部は、
受信した前記奥行きデータに基づいて画像合成処理を行うことを特徴とする画像生成システム。
【請求項10】
請求項1乃至8のいずれかにおいて、
前記画像合成部は、
前記仮想カメラから遠い領域から順に、前記描画画像データに基づく画像合成処理を行うことを特徴とする画像生成システム。
【請求項11】
請求項1乃至10のいずれかにおいて、
前記通信処理部は、
前記表示画像の領域のうち前記各領域担当処理装置により画像が描画された描画領域を特定するための描画領域特定情報を、前記各領域担当処理装置から受信し、
前記画像合成部は、
受信した前記描画領域特定情報により特定される描画領域に、前記各領域担当処理装置から受信した前記描画画像データに基づく画像を合成する処理を行うことを特徴とする画像生成システム。
【請求項12】
請求項1乃至11のいずれかにおいて、
前記各領域担当処理装置での描画画像が書き込まれる複数の受信用バッファと、
表示用バッファとを含み、
前記画像合成部は、
前記複数の受信用バッファの描画画像を合成した画像を前記表示用バッファに書き込むことを特徴とする画像生成システム。
【請求項13】
請求項1乃至11のいずれかにおいて、
複数の分割領域に分割された受信用バッファを含み、
前記画像合成部は、
各サブ画像合成部が、前記複数の分割領域の各分割領域の書き込み処理を担当する複数のサブ画像合成部と、
メイン画像合成部とを含み、
前記各サブ画像合成部は、
前記各領域担当処理装置から受信した前記描画画像データに基づいて、担当する分割領域への書き込み処理を行い、
前記メイン画像合成部は、
前記受信用バッファの前記複数の分割領域の描画画像を合成する処理を行うことを特徴とする画像生成システム。
【請求項14】
複数の領域担当処理装置の各領域担当処理装置が、仮想3次元空間を分割した複数の領域の各領域のオブジェクトの制御処理及び仮想カメラから見える前記各領域の画像の描画処理を行い、描画処理により得られた描画画像データを送信した場合に、前記描画画像データを受信する通信処理部と、
受信した前記描画画像データに基づいて画像合成処理を行って、前記仮想カメラから見える表示画像を生成する画像合成部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項15】
コンピュータ読み取り可能な情報記憶媒体であって、請求項14に記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【公開番号】特開2010−165100(P2010−165100A)
【公開日】平成22年7月29日(2010.7.29)
【国際特許分類】
【出願番号】特願2009−5597(P2009−5597)
【出願日】平成21年1月14日(2009.1.14)
【出願人】(507301626)株式会社セリウス (12)
【Fターム(参考)】
【公開日】平成22年7月29日(2010.7.29)
【国際特許分類】
【出願日】平成21年1月14日(2009.1.14)
【出願人】(507301626)株式会社セリウス (12)
【Fターム(参考)】
[ Back to top ]