(58)【調査した分野】(Int.Cl.,DB名)
前記第1の種別に分類された描画オブジェクトは、前記表示する画面における背景オブジェクトであることを特徴とする請求項1乃至4のいずれか1項に記載の描画システム。
前記パーツ送信手段は、前記描画内容を決定するための情報が所定の条件を満たした場合に、前記背景オブジェクトのテクスチャデータを送信することを特徴とする請求項6または7に記載の描画システム。
クライアント機器に接続された表示手段に表示する画面に描画される描画オブジェクトのうち、第2の種別に分類された描画オブジェクトの描画を担当する描画サーバであって、
前記表示する画面の描画内容を決定するための情報に基づいて、前記第2の種別に分類された描画オブジェクトを描画した提供画面を生成する描画手段と、
前記描画手段により生成された前記提供画面を前記クライアント機器に送信する送信手段と、を有し、
前記描画内容を決定するための情報は、前記表示する画面を定義するカメラ位置及び方向を示す情報を含み、
前記表示する画面に描画される描画オブジェクトは、前記第2の種別とは異なる第1の種別に分類された描画オブジェクトを含み、
前記第1の種別に分類された描画オブジェクトの描画処理は、前記提供画面の生成に係り、前記描画手段によって行われた描画と同一の前記カメラ位置及び方向について前記クライアント機器において実行され、
前記第1の種別と前記第2の種別の分類は、前記第2の種別に分類されたオブジェクトが、描画において前記第1の種別に分類された描画オブジェクトに基づく隠面処理を要しないように、前記カメラ位置及び方向を示す情報に応じて行われる
ことを特徴とする描画サーバ。
前記描画手段は、前記第1の種別に分類された描画オブジェクトの描画処理の描画結果に依らず、前記第2の種別に分類された描画オブジェクトの描画処理を行うことを特徴とする請求項9に記載の描画サーバ。
前記第2の種別に分類された描画オブジェクトは、前記表示する画面に描画される描画オブジェクトのうち、背景オブジェクトを除いた描画オブジェクトであることを特徴とする請求項9乃至12のいずれか1項に記載の描画サーバ。
前記描画内容を決定するための情報に基づいて、前記背景オブジェクトのテクスチャデータを前記クライアント機器に送信するパーツ送信手段をさらに有することを特徴とする請求項13に記載の描画サーバ。
前記パーツ送信手段は、前記描画内容を決定するための情報が所定の条件を満たした場合に、前記背景オブジェクトのテクスチャデータを送信することを特徴とする請求項14に記載の描画サーバ。
クライアント機器に接続された表示手段に表示する画面に描画される描画オブジェクトのうち、第2の種別に分類された描画オブジェクトの描画を担当する描画サーバの制御方法であって、
前記描画サーバの描画手段が、前記表示する画面の描画内容を決定するための情報に基づいて、前記第2の種別に分類された描画オブジェクトを描画した提供画面を生成する描画工程と、
前記描画サーバの送信手段が、前記描画工程において生成された前記提供画面を前記クライアント機器に送信する送信工程と、を有し、
前記描画内容を決定するための情報は、前記表示する画面を定義するカメラ位置及び方向を示す情報を含み、
前記表示する画面に描画される描画オブジェクトは、前記第2の種別とは異なる第1の種別に分類された描画オブジェクトを含み、
前記第1の種別に分類された描画オブジェクトの描画処理は、前記提供画面の生成に係り、前記描画工程において行われた描画と同一の前記カメラ位置及び方向について前記クライアント機器において実行され、
前記第1の種別と前記第2の種別の分類は、前記第2の種別に分類されたオブジェクトが、描画において前記第1の種別に分類された描画オブジェクトに基づく隠面処理を要しないように、前記カメラ位置及び方向を示す情報に応じて行われる
ことを特徴とする描画サーバの制御方法。
【発明を実施するための形態】
【0014】
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、描画システムの一例としての、描画サーバ200において実行されるゲームプログラムに係る画面の描画処理について、画面に含まれる描画オブジェクト単位で分担するPC100と描画サーバ200とに、本発明を適用した例を説明する。しかし、本発明は、1つの画面に係る描画処理を、複数の機器間で分担して実行可能な任意の機器及びシステムに適用可能である。
【0015】
<描画システムの構成>
図1は、本発明の実施形態に係る描画システムのシステム構成を示す図である。
【0016】
図示されるように、PC100と描画サーバ200とはインターネット等のネットワーク300を介して接続されている。本実施形態では描画サーバ200で実行されるゲームプログラムにおいて、ゲームプログラムに係る画面(ゲーム画面)についての描画処理をPC100と描画サーバ200とで分担して処理する。
【0017】
具体的には1つの画面について、PC100は、ネットワーク300を介して描画サーバ200から画面の描画内容を決定するための情報を受信し、該画面に含まれる描画オブジェクトのうち、シーンの背景にあたる背景オブジェクトを描画した第1の画面の生成を行う。
【0018】
ゲーム画面等の3次元シーンの描画処理において、カメラ(視点)から遠く離れた景色等の描画オブジェクト(例えば山や雲等)は、それぞれ単体の3次元モデルに対してテクスチャを適用して描画されるわけではない。実際は、これらの描画オブジェクトは例えば1枚の2次元画像のテクスチャとして用意されて表示される。これは、描画処理に係る演算量を低減する目的と、遠方のオブジェクトについては3次元的に認識されにくいため、3次元モデルを使用する必要性が低いことに起因する。つまり、描画処理において遠方の景色等の背景は、背景のテクスチャを簡素な3次元モデルに適用するのみで表現することができるため、背景オブジェクトに係る描画処理には高い描画性能は要求されない。即ち、背景オブジェクトの描画は簡素な3次元モデルの描画を行う、一般的な描画性能を有するGPUであれば実行可能である。このため本実施形態の描画システムでは、背景オブジェクトの描画は、描画サーバ200よりも低い描画性能のGPUを有するPC100に割り当てる。
【0019】
また描画サーバ200は、該画面に含まれる描画オブジェクトのうち、背景オブジェクト以外の描画オブジェクト(前景オブジェクト)を描画した第2の画面の生成し、生成した第2の画面を、ネットワーク300を介してPC100に送信する。そしてPC100は、受信した第2の画面と生成した第1の画面とを合成して表示するゲーム画面を生成し、接続されている表示装置に出力する。
【0020】
このように本実施形態の描画システムでは、1つの画面に係る描画処理について、該画面に含まれる描画オブジェクトを背景オブジェクトと前景オブジェクトとに分け、それぞれを2つの機器(PC100及び描画サーバ200)で分担する。そして、各機器で描画した画面を合成し、最終的に全ての描画オブジェクトが描画された画面を生成する。
【0021】
なお、本実施形態では描画サーバ200に接続するクライアント機器として、PC100を用いて説明するが、本発明の実施はこれに限られるものではない。例えば描画サーバ200と接続するクライアント機器は、家庭用ゲーム機、携帯ゲーム機、携帯電話、PDA、タブレット等の描画処理能力を有する機器であればよい。
【0022】
<PC100の構成>
図2は、本発明の実施形態に係るPC100の機能構成を示すブロック図である。
【0023】
CPU101は、PC100が有する各ブロックの動作を制御する。具体的にはCPU101は、例えばROM102や記録媒体106に記録されている画面生成処理等の動作プログラムを読み出し、RAM103に展開して実行することにより、各ブロックの動作を制御する。
【0024】
ROM102は、例えば書き換え可能な不揮発性メモリである。ROM102は、PC100が有する各ブロックの動作プログラムに加え、各ブロックの動作に必要な定数等の情報を記憶する。
【0025】
RAM103は、揮発性メモリである。RAM103は、動作プログラムの展開領域としてだけでなく、PC100が有する各ブロックの動作において出力された中間データ等を一時的に記憶する格納領域としても用いられる。
【0026】
GPU104は、後述する表示部108に表示するゲーム画面の生成を行う。GPU104は、ゲーム画面の描画領域としてビデオメモリ(VRAM)105が接続されている。またGPU104は不図示のGPUメモリを有する。GPU104は、CPU101より描画命令を受信すると、該描画命令に係る描画オブジェクトのデータを取得してGPUメモリに格納する。そしてGPU104は、描画命令に応じて描画オブジェクトを、接続されたVRAM105に描画する。本実施形態ではGPU104は、表示するゲーム画面に含まれる描画オブジェクトのうち、背景オブジェクトのみを描画した第1の画面の生成を行う。
【0027】
記録媒体106は、例えばHDDやSSD等のPC100に着脱可能に接続された記録装置である。本実施形態では、記録媒体106には画面生成処理等の動作プログラムに加えて、描画サーバ200から受信した、ゲーム画面に描画される描画オブジェクトについてのモデルデータ(あるいは頂点データ及び結線データ)等が記録されるものとする。本実施形態ではPC100は、表示するゲーム画面に含まれる描画オブジェクトのうちの背景オブジェクトの描画を行う。本実施形態では背景オブジェクトの描画は、天球モデルに対して遠景用のテクスチャを適用することで行われる。このため、本実施形態の記録媒体106には、描画サーバ200から受信した、背景オブジェクトの描画処理に用いられる天球モデルが記録される。
【0028】
なお、本実施形態では背景オブジェクトの描画に用いられる天球モデルは描画サーバ200からPC100に配信されるものとして説明するが、これに限られるものではない。即ち、背景オブジェクトの描画に用いられる天球モデルのデータは、予めPC100に記録されていてもよいし、PC100における描画処理においてプリミティブセットを用いて毎フレーム生成されてもよい。また背景オブジェクトの描画は天球モデルへの背景テクスチャの適用として説明するが、背景テクスチャを適用するモデルは天球モデル以外のモデルを使用してもよい。
【0029】
通信部107は、PC100が有する通信インタフェースである。通信部107は、ネットワーク300を介して接続した、描画サーバ200等の他の機器との間におけるデータ送受信を行う。データ送信時には通信部107は、ネットワーク300あるいは送信先の機器との間で定められたデータ伝送形式にデータを変換し、送信先の機器へのデータ送信を行う。またデータ受信時には通信部107は、ネットワーク300を介して受信したデータを、PC100において読み取り可能な任意のデータ形式に変換し、例えばRAM103に記憶させる。
【0030】
なお、本実施形態ではPC100と描画サーバ200とは、ネットワーク300を介して接続されるものとして説明するが、例えばPC100と描画サーバ200とが直接ケーブルにより接続される形態であってもよいことは容易に想像されよう。また、PC100と描画サーバ200とは、それ以外の他の機器を介して接続される形態であってもよい。
【0031】
表示部108は、例えばLCDモニタ等のPC100に接続された表示装置である。表示部108は、入力されたゲーム画面を表示領域に表示する表示制御を行う。なお、表示部108は、ラップトップPCのようにPC100に内蔵される表示装置であってもよいし、ケーブルを用いてPC100に外部接続された表示装置であってもよい。
【0032】
操作入力部109は、例えばマウス、キーボード、ゲームパッド等のPC100が有するユーザインタフェースである。操作入力部109は、ユーザによりユーザインタフェースの操作がなされたことを検出すると、該操作に対応する制御信号をCPU101に対して出力する。
【0033】
<描画サーバ200の構成>
図3は、本発明の実施形態に係る描画サーバ200の機能構成を示すブロック図である。
【0034】
サーバCPU201は、描画サーバ200が有する各ブロックの動作を制御する。具体的にはサーバCPU201は、例えばサーバROM202やサーバ記録媒体206に記憶されているゲーム処理やサーバ側描画処理の動作プログラムを読み出し、サーバRAM203に展開して実行することにより、各ブロックの動作を制御する。
【0035】
サーバROM202は、例えば書き換え可能な不揮発性メモリである。サーバROM202は、サーバ側描画処理等の動作プログラムに加え、描画サーバ200が有する各ブロックの動作において必要となる定数等の情報を記憶する。
【0036】
サーバRAM203は、揮発性メモリである。サーバRAM203は、動作プログラムの展開領域としてだけでなく、描画サーバ200が有する各ブロックの動作において出力された中間データ等を一時的に記憶する格納領域としても用いられる。
【0037】
サーバGPU204は、PC100の表示部108に表示するゲーム画面について、ゲーム画面に含まれる描画オブジェクトのうちの、背景オブジェクト以外の描画オブジェクトを描画した画面(第2の画面)の生成を行う。サーバGPU204には、サーバVRAM205が接続される。サーバGPU204は、サーバCPU201より描画命令を受けると、該描画命令に係る描画オブジェクトを受信してGPUメモリに格納する。サーバGPU204は、接続されたサーバVRAM205に対して描画を行う場合、描画オブジェクトのGPUメモリへの展開を行なった後、該展開後の描画オブジェクトをVRAM105に書き込む。
【0038】
サーバ記録媒体206は、例えばHDD等の、描画サーバ200に着脱可能に接続される記録装置である。本実施形態ではサーバ記録媒体206には、描画処理において画面の生成に用いるモデルデータや光源情報等が記録されているものとする。なお、サーバ記録媒体206に記録されるモデルデータは、PC100の記録媒体106に記録されているものと同一である。
【0039】
サーバ通信部207は、描画サーバ200が有する通信インタフェースである。本実施形態ではサーバ通信部207は、ネットワーク300を介して接続したPC100等の、他の機器との間におけるデータ送受信を行う。なお、サーバ通信部207は通信部107と同様に、通信仕様に従ったデータ形式の変換を行う。
【0040】
<ゲーム処理>
このような構成をもつ本実施形態の描画システムの描画サーバ200において実行される、基本的なゲーム処理について、
図4のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、サーバCPU201が、例えばサーバROM202に記録されている対応する処理プログラムを読み出し、サーバRAM203に展開して実行することにより実現することができる。なお、本ゲーム処理は、例えばPC100において描画サーバ200が提供するゲームコンテンツに対応するアプリケーションが実行され、描画サーバ200へのユーザログインがなされた際に開始されるものとして説明する。本ゲーム処理は、ゲームの1フレームごとに繰り返し実行されるものとする。
【0041】
なお、本実施形態の描画サーバ200により提供されるゲームコンテンツは、ゲーム画面に対応するカメラの位置及び方向を示す情報(カメラパラメータ)を使用して3次元シーンを描画したゲーム画面を提供するものである。本実施形態のゲームコンテンツに係る3次元シーンは、含まれる描画オブジェクトを背景オブジェクトと前景オブジェクトとに分類可能であるものとする。また背景オブジェクトは、上述したように簡素な3次元モデルへの背景テクスチャの適用で描画可能であるものとする。
【0042】
S401で、サーバCPU201は、ゲーム画面を規定する、カメラの位置及び方向の変更がなされたか否かを判断する。具体的にはサーバCPU201は、PC100においてなされたカメラの位置及び方向を変更する操作入力の情報が、サーバ通信部207において受信されたか否かを判断する。サーバCPU201は、カメラの位置及び方向の変更がなされたと判断した場合は処理をS402に移し、なされていないと判断した場合は処理をS403に移す。
【0043】
S402で、サーバCPU201は、受信したカメラの位置及び方向を変更する操作入力の情報に基づいて、例えばサーバRAM203に格納されているカメラの位置及び方向を示す情報(描画カメラパラメータ)を更新する。
【0044】
S403で、サーバCPU201は、描画するゲーム画面の背景テクスチャを特定する。上述したように、本実施形態の描画システムでは、背景オブジェクトと前景オブジェクトの各々についての描画処理をPC100と描画サーバ200とで分担して行う。このうち背景オブジェクトの描画処理についてはPC100が担当するため、本ステップにおいてサーバCPU201は、PC100における背景オブジェクトの描画に用いられる背景テクスチャを特定する。
【0045】
(背景テクスチャと背景モデル)
ここで、本実施形態の描画システムのPC100において実行される、背景オブジェクトの描画に用いられる背景テクスチャと背景モデルの関係について図を用いて説明する。
【0046】
上述したように、一般的には3次元シーンの描画処理において背景は、簡易モデルに対して背景テクスチャを適用した背景オブジェクトとして描画される。背景テクスチャを適用するモデル(背景モデル)の形状は様々なものがあるが、本実施形態では
図7に示されるような、視点であるカメラ701の位置を中心とした天球モデル700が用いられる。天球モデルに対して適用される背景テクスチャは360度全周を表現するテクスチャであり、例えば操作対象のキャラクタの位置及び方向に基づいてカメラ位置が決定される場合、該テクスチャには操作対象のキャラクタの周囲の背景が全て含まれる。これにより、全周の背景テクスチャのうち、カメラの方向が決定すれば、該方向に応じた位置の画像702が背景として画面に描画される。この場合、背景テクスチャは天球モデルの中心に存在するカメラから見た際に例えば建物のシルエットや山の稜線が正しく表現されるため、背景テクスチャに含められる風景画像等は、天球の半径に応じて歪められている。
【0047】
なお、カメラを中心とした天球モデルに対して全周の背景テクスチャが適用されているため、カメラの回転のみが生じた場合には、背景テクスチャの更新は不要である。また背景として遠景が表現される場合には、操作対象のキャラクタの移動に合わせてカメラ位置及び方向を変更したとしても、背景テクスチャの更新を行わなくてもよい。即ち、背景として表現される位置までのカメラからの距離に対して、移動したカメラの距離が非常に小さいため、背景の見え方に変化がないことを表現するために、背景テクスチャの更新は行う必要がない。つまり、カメラ位置が特定のフィールドに含まれる間は、常に同一の背景テクスチャが背景オブジェクトに対して適用されてもよい。
【0048】
一方で、背景テクスチャの変更は、以下の場合に行われる。例えばゲームコンテンツ内で時間経過が表現される場合、例えばコンテンツ内で表現する時間帯(朝、昼、夜等。例えば実時間の1時間をコンテンツ内の1日とし、3等分して割り当てる。)に応じて、背景テクスチャを変更してもよい。また山から森等、表現される風景等が変化するフィールド間におけるカメラ移動が生じた場合にも、背景コンテンツの変更が生じてもよい。また、背景として表現される位置までのカメラからの距離が中距離等、予め定められた距離以下のフィールドにおいては、カメラの移動に合わせて、例えばカメラの移動量が所定値以上となった場合等に背景テクスチャが更新されてもよい。
【0049】
このように本ステップにおいてサーバCPU201は、描画カメラパラメータに応じて、PC100における背景オブジェクトの描画に用いられる背景テクスチャを特定する。具体的にはサーバCPU201は、例えばサーバ記録媒体206に格納されている背景テクスチャ決定用のテーブルを参照し、カメラパラメータに応じた背景テクスチャの情報を取得する。背景テクスチャ決定用のテーブルは、例えば
図8のようであってよい。
【0050】
図示されるように、背景テクスチャ決定用のテーブルにはパラメータとして以下が含まれる。
・テクスチャID
・カメラが存在するフィールド
・コンテンツ内時間帯
・テクスチャ格納場所
【0051】
サーバCPU201は、サーバRAM203に格納されている描画カメラパラメータを読み出し、カメラ位置の情報に応じてカメラが存在するフィールドを特定する。またサーバCPU201は、現在のコンテンツ内時間帯を参照し、背景テクスチャ決定用のテーブルから、PC100における背景オブジェクトの描画に用いられる背景テクスチャを特定する。
【0052】
なお、本実施形態では簡単のため、背景オブジェクトの描画内容の変更は、背景テクスチャの変更によってのみ行われるものとして説明するが、背景として表現される位置までのカメラからの距離の変化は、背景テクスチャを変更しなくとも表現可能である。例えば、背景テクスチャを適用する天球モデルの半径を変更することによっても、背景とカメラとの距離変化は表現可能である。具体的には背景に対して近づいたことを表現するために、天球モデルの半径を大きくして描画する画面に含まれる背景の画像を拡大してもよい。
【0053】
S404で、サーバCPU201は、S403において特定した背景テクスチャ、背景テクスチャを提供する3次元モデルである天球モデル、及び描画カメラパラメータをPC100に対して送信する。具体的にはサーバCPU201は、これらの情報をサーバRAM203あるいはサーバ記録媒体206から読み出し、サーバ通信部207に伝送してPC100に対して送信させる。
【0054】
なお、上述したように描画するゲーム画面の背景テクスチャは、描画カメラパラメータのカメラ位置が予め定められたフィールド内に存在する場合は変化しないため、本ステップでは描画カメラパラメータのみが送信されてもよい。即ち、背景テクスチャ及び天球モデルは、カメラ位置が背景テクスチャを変更する領域に移動した際に送信される、カメラ位置の変化量が所定量以上であった場合に送信される、あるいは所定フレームごとに送信される等、毎フレーム送信されなくてもよい。
【0055】
S405で、サーバCPU201は、サーバRAM203に格納されている描画カメラパラメータに従って、ゲーム画面に含まれる描画オブジェクトのうちの、背景オブジェクト以外の前景オブジェクトを描画した第2の画面の生成を行うサーバ側描画処理を実行する。
【0056】
(サーバ側描画処理)
ここで、本実施形態の描画サーバ200において実行される、サーバ側描画処理について、
図5のフローチャートを用いて具体的な処理を説明する。
【0057】
S501で、サーバCPU201は、描画するゲーム画面に含まれる描画オブジェクト(前景オブジェクト)を特定する。具体的にはサーバCPU201は、サーバRAM203から描画カメラパラメータを読み出し、該描画パラメータにより規定される、ワールド上の描画範囲の情報を参照する。そしてサーバCPU201は、該描画範囲に含まれる描画オブジェクトを、例えばワールドに分布する描画オブジェクトの配置位置の情報に基づいて特定する。
【0058】
なお、ワールドに分布する描画オブジェクトの配置位置は、時間変化や操作対象のキャラクタについてのPC100における移動指示等によって、フレームごとに変化するものであってもよい。即ち、サーバCPU201は、フレームごとに描画オブジェクトの配置位置の情報を更新した上で、本ステップにおいてゲーム画面に含まれる描画オブエジェクトの特定を行うものとする。
【0059】
S502で、サーバCPU201は、所定の描画順決定方法により決定された描画順に応じて、まだ描画がなされていない描画オブジェクトを選択する。そしてサーバCPU201は、該描画オブジェクトについての描画命令をサーバGPU204に伝送する。またサーバCPU201は、該描画オブジェクトのモデルデータ(あるいは頂点データ及び結線データ)、テクスチャデータ、ゲーム画面内の光源データ、及び描画オブジェクトについての位置・回転情報のパラメータをサーバ記録媒体206から読み出し、サーバGPU204に転送する。
【0060】
S503で、サーバGPU204はサーバCPU201の制御のもと、選択された描画オブジェクトについての位置・回転情報のパラメータに従って、GPUメモリに格納されたモデルデータを移動及び回転させる。具体的にはサーバGPU204は、選択された描画オブジェクトの拡張点に対し、位置・回転情報のパラメータに対応する空間座標を定義する。
【0061】
S504で、サーバGPU204はサーバCPU201の制御のもと、S503において移動及び回転されたモデルデータの各ポリゴンに対して、GPUメモリに格納したテクスチャデータを用いてテクスチャマッピングを行う。
【0062】
S505で、サーバGPU204はサーバCPU201の制御のもと、S504においてテクスチャマッピングがなされた描画オブジェクトのモデルに対して、光源データを考慮したシェーディング処理を適用し、サーバVRAM205のフレームバッファに描画する。
【0063】
S506で、サーバCPU201は、描画範囲に含まれる前景オブジェクトの全てについて、サーバGPU204によるサーバVRAM205への描画が完了したか否かを判断する。サーバCPU201は、全ての描画オブジェクトのサーバVRAM205への描画が完了したと判断した場合は処理をS507に移し、完了していないと判断した場合は処理をS502に戻す。
【0064】
S507で、サーバGPU204はサーバCPU201の制御のもと、生成した第2の画面に対応するマスクデータを生成する。即ち、
図9に示されるように、上述のS506までの処理によりサーバVRAM205に描画された第2の画面900には、背景オブジェクトが描画されていないため、画面内のピクセルには描画がなされていないピクセル901が存在する。本実施形態では最終的にPC100において表示装置に表示されるゲーム画面は、PC100において後述する画面生成処理を実行することで、背景オブジェクトを描画して得られた第1の画面と第2の画面とを合成することにより生成される。この際、背景を描画した第1の画面上に、第2の画面に描画された前景オブジェクトを重畳することになる。
【0065】
このため本実施形態では、第2の画面に含まれる、前景オブジェクトが描画されていないピクセルをPC100に通知するために、
図9に示されるような第2の画面のマスクデータ910を生成してPC100に送信する。マスクデータは、画素値が合成時の第2の画像の透過値を示しており、例えば各ピクセルの画素値は0〜1の範囲に正規化されている。即ち、前景オブジェクトの描画処理において描画がなされていないピクセル901の位置の画素値は0となり、描画がなされたピクセル902の位置の画素値は1となる。なお、前景オブジェクトに半透明オブジェクトが含まれる場合等は、マスクデータは各ピクセルについて設定されたα値を参照して生成されればよい。
【0066】
このように、本実施形態のサーバ側描画処理を実行することにより、PC100に対して提供するゲーム画面に含まれる描画オブジェクトのうち、背景オブジェクトを除いた前景ボブジェクトを描画した第2の画面の生成を行う。提供するゲームコンテンツにもよるが、一般的に前景オブジェクトとして描画される描画オブジェクトについては、上述したようにモデルデータの移動及び回転に係る処理の実行、さらにテクスチャリングやシェーディングの適用等、計算負荷が高い処理の実行が必要となる。本実施形態では、これらの前景オブジェクトに係る描画処理の実行を描画サーバ200において実行することで、PC100及び描画サーバ200間における、描画処理のロードバランシングを行う。
【0067】
マスクデータの生成が完了すると、サーバCPU201は本サーバ側描画処理を完了し、処理をゲーム処理に戻す。
【0068】
S406で、サーバCPU201は、PC100に対して第2の画面及び第2の画面に対応するマスクデータを送信する。具体的にはサーバCPU201は、第2の画面及びマスクデータをサーバVRAM205から読み出し、サーバ通信部207に伝送してPC100に対して送信させる。送信後、サーバCPU201は、本フレームに係るゲーム処理を完了する。
【0069】
<画面生成処理>
一方、本実施形態のPC100において実行される、ゲーム画面の生成を行う画面生成処理について、
図6のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、CPU101が、例えば記録媒体106に記録されている対応する処理プログラムを読み出し、RAM103に展開して実行することにより実現することができる。なお、本画面生成処理は、PC100において描画サーバ200が提供するゲームコンテンツに対応するアプリケーションの実行指示がなされた際に開始されるものとして説明する。
【0070】
S601で、CPU101は、描画サーバ200から描画する第1の画面(背景オブジェクトを描画した画面)の生成に用いる、描画内容を決定するための情報である描画カメラパラメータを受信したか否かを判断する。具体的にはCPU101は、描画サーバ200から本フレームの描画カメラパラメータを通信部107が受信したか否かを判断する。CPU101は、描画カメラパラメータを受信したと判断した場合は描画カメラパラメータをRAM103に格納した後、処理をS602に移す。またCPU101は、描画カメラパラメータを受信していないと判断した場合は本ステップの処理を繰り返す。
【0071】
S602で、CPU101は、描画カメラパラメータとともに背景テクスチャ及び天球モデルの少なくともいずれかを受信したか否かを判断する。CPU101は、背景テクスチャ及び天球モデルの少なくともいずれかを受信したと判断した場合は処理をS603に移し、背景テクスチャモデル及び天球モデルのいずれも受信していないと判断した場合は処理をS604に移す。
【0072】
S603で、CPU101は、新たに受信した背景テクスチャ及び天球モデルの少なくともいずれかを用いて、RAM103に格納されている既に受信した対応するデータを更新して格納する。
【0073】
S604で、CPU101は、RAM103に格納されている描画カメラパラメータ、背景テクスチャ、及び天球モデルを用いて、第1の画面の描画を行う。具体的にはCPU101は、天球モデル及び背景テクスチャをRAM103から読み出し、GPU104転送する。GPU104は、天球モデルに対して背景テクスチャを適用し、描画カメラパラメータに従って、画面内に含まれる範囲を第1の画面としてVRAM105に描画する。
【0074】
S605で、CPU101は、描画サーバ200から第2の画面及び第2の画面のマスクデータを受信したか否かを判断する。CPU101は、第2の画面及びマスクデータを受信したと判断した場合は、該データをRAM103に格納した後、処理をS606に移す。またCPU101は、第2の画面及びマスクデータを受信していないと判断した場合は本ステップの処理を繰り返す。
【0075】
S606で、CPU101は、第1の画面と第2の画面とを合成して、表示部108に表示する最終的なゲーム画面を例えばVRAM105に生成する。具体的には、CPU101は第2の画面のデータとマスクデータとをRAM103から読み出してGPU104に伝送し、GPU104はマスクデータを参照しながらVRAM105上の第1の画面に対して第2の画面を例えば重畳合成してゲーム画面を生成する。
【0076】
S607で、CPU101はS606において生成した最終的なゲーム画面を、表示部108に転送して表示画面に表示させる。
【0077】
このように、本実施形態の描画システムは、ゲーム画面の描画処理を、ゲーム画面に含まれる描画オブジェクトのうち、背景オブジェクトのみを描画する第1の画面の描画処理と、背景オブジェクト以外の描画オブジェクトを描画する第2の画面の描画処理とに分けて生成することができる。つまり、描画処理において描画性能が要求される複雑な3次元モデルや光源計算が必要となる前景オブジェクトの描画した第1の画面と、簡素な3次元モデルへの背景テクスチャの適用を行う第2の画面とに分けて生成することができる。つまり、描画処理において描画性能が要求される第1の画面の生成については描画サーバに割り当てることで、クライアント機器の描画性能によらず、品質の高いゲーム画面の提供を行うことが可能である。
【0078】
なお、本実施形態ではゲーム画面の描画を背景オブジェクトであるか否かで、描画オブジェクト単位でPC100及び描画サーバ200で分担して行うものとして説明したが、本発明の実施はこれに限られるものではない。本発明は、ゲーム画面の描画処理を、該ゲーム画面に含まれる描画オブジェクト単位に分類して実行し、得られた複数の画面を単純な合成処理で合成することでゲーム画面を生成可能な描画システムであれば適用可能である。
【0079】
本実施形態のように、ゲーム画面に含まれる描画オブジェクトを背景オブジェクトであるか否かにより分類した場合、背景オブジェクトは前景オブジェクトの描画における隠面処理に影響しない。即ち、前景オブジェクトの全ての描画オブジェクトは背景オブジェクトよりも手前に存在するため、前景オブジェクトの描画は、背景オブジェクトとの前後関係により生じる遮蔽を考慮する必要がない。このため、背景オブジェクトを描画して得られた第2の画面と、前景オブジェクトを描画して得られた第1の画面とは、描かれている描画オブジェクトについての前後関係を保っている。つまり、単純に両者を重畳合成することで、全ての描画オブジェクトを一度に描画した場合と等価なゲーム画面を生成することができる。
【0080】
一方、例えば第2の画面に含まれる描画オブジェクトが第1の画面に含まれる描画オブジェクトよりも、カメラに近い位置に存在する場合は、第1の画面と第2の画面との合成には各ピクセルの深度値を考慮する必要がある。即ち、ゲーム画面の生成において各ピクセルについての深度値の比較が必要となってしまうため、PC100における画面合成処理に要する処理時間が増大してしまう。本実施形態の描画システムでは、このような合成処理における計算量を低減することも目的として、背景オブジェクトであるかによってゲーム画面に含まれる描画オブジェクトを分類して描画を行うものとした。
【0081】
このように本発明は、ゲーム画面に含まれる描画オブジェクトを、第1の画面の描画処理において、第2の画面に含まれる描画オブジェクトの隠面処理を考慮する必要がないように分類して描画する場合に適用可能である。即ち、本発明は、背景オブジェクトに限らず、カメラとの距離に応じて、隠面処理が生じないように描画オブジェクトを分類し、複数の機器で分類された描画オブジェクトをそれぞれ描画し、得られた画面を合成して1つの画面を生成するものであれば適用可能である。またこの場合、描画性能の低いGPUを有する機器の描画処理能力に応じて、分類する描画オブジェクトの数を増減させてもよい。
【0082】
以上説明したように、本発明の描画システムは、1つの画面についての描画処理を、複数の機器間で分担して効率的に実行することができる。具体的には描画システムは、表示する画面の描画処理を、第1の機器と第2の機器とに分担して実行する。第1の機器は、表示する画面の描画内容を決定するための情報に基づいて、表示する画面に描画される描画オブジェクトのうち、一部の描画オブジェクトを描画した第1の画面を生成する。また第2の機器は、表示する画面に描画される描画オブジェクトのうち、一部の描画オブジェクトを除いた描画オブジェクトを描画した第2の画面を生成する。第1の機器は、第2の機器から第2の画面を受信し、第1の画面と第2の画面とを合成することで、表示する画面を生成する。
【0083】
このように1つの画面についての描画処理を、描画オブジェクト単位で分離して複数の機器で実行することができるため、クライアント機器の描画性能によらず、安定した品質のゲーム画面の提供を行うことができる。