説明

描画システム、描画サーバ、その制御方法、プログラム、及び記録媒体

【課題】1つの画面についての描画処理を、複数の機器間で分担して効率的に実行する。
【解決手段】複数の機器のうちの1つの機器は、表示する画面の描画内容を決定するための情報を、複数の機器のうちの1つの機器を除く機器の各々に送信する。1つの機器は、描画内容を決定するための情報に応じて、表示する画面の描画処理のうち、第1の処理を含む一部の処理を実行して第1の画面を生成する。一方、1つの機器を除く機器の各々は、該1つの機器から描画内容を決定するための情報を受信すると、該情報に応じて、表示する画面の描画処理のうち、第1の処理を含まず、第1の処理とは異なる第2の処理を含む一部の処理を実行して第2の画面を生成して1つの機器に送信する。そして1つの機器は、該1つの機器を除く機器の各々が生成した第2の画面を受信し、第1の画面と第2の画面とを合成して表示する画面を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、描画システム、描画サーバ、その制御方法、プログラム、及び記録媒体に関し、特にネットワーク接続された複数の機器間で描画処理を分担して1つの画面を生成する技術に関する。
【背景技術】
【0002】
ネットワーク接続可能なパーソナルコンピュータ(PC)等のクライアント機器が普及している。このような機器の普及により、インターネットにおけるネットワーク人口は増加している。近年では、ネットワークユーザに対する、インターネットを利用した様々なサービスが展開されており、ゲーム等のエンターテインメントサービスも提供されている。
【0003】
ネットワークユーザに対するサービスの1つとして、MMORPG(Massively Multiplayer Online Role-Playing Game)等の多人数同時参加型のネットワークゲームがある。多人数同時参加型のネットワークゲームでは、ユーザは使用するクライアント機器を、ゲームを提供するサーバ機器に接続することで、該サーバ機器に接続されているクライアント機器を使用するユーザとの対戦プレイや協力プレイを行うことができる。
【0004】
一般的な多人数参加型のネットワークゲームでは、クライアント機器はサーバ機器との間でゲームの描画に必要なデータの送受信を行う。クライアント機器は、受信した描画に必要なデータを用いて描画処理を実行し、生成したゲーム画面をクライアント機器に接続された表示装置に提示することで、ユーザにゲーム画面を提供する。また、ユーザが入力インタフェースを操作することで入力された情報はサーバ機器に送信され、サーバ機器における演算処理に使用されたり、サーバ機器に接続された他のクライアント機器に伝送されたりする。
【0005】
しかしながら、このようなクライアント機器で描画処理を行うネットワークゲームの中には、十分な描画性能を行うPCや専用のゲーム機をユーザが使用すること必要となるものがある。このため、ネットワークゲーム(1コンテンツ)のユーザ数は、コンテンツに要求される性能を満足する機器の所有ユーザの数に依存してしまう。即ち、例えば美麗なグラフィックを提供するゲーム等の高い描画性能が要求されるゲームでは、ユーザ数を増加させることが困難である。
【0006】
これに対し、近年ではクライアント機器の描画性能等の処理能力に依存せずに、ユーザがプレイ可能なゲームも提供されている。特許文献1のようなゲームでは、サーバ機器はクライアント機器においてなされた操作の情報を取得し、該情報を用いて描画処理を実行して得られたゲーム画面を、クライアント機器に対して提供している。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】国際公開第2009/138878号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【0008】
上述した特許文献1のようなゲームでは、サーバ機器がクライアント機器に対して提供するゲーム画面を描画して転送することについて記載されている。即ち、クライアント機器は、サーバ機器において実行された描画処理により生成されたゲーム画面を受信し、再生することでゲーム画面の表示を行うことができる。しかしながら、描画処理を複数の機器間で分担する具体的な方法についてはこれまで開示されていなかった。
【0009】
本発明は、上述の問題点に鑑みてなされたものであり、1つの画面についての描画処理を、複数の機器間で分担して効率的に実行する描画システム、描画サーバ、その制御方法、プログラム、及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0010】
前述の目的を達成するために、本発明の1つの態様の描画システムは、以下の構成を備える。
表示手段に表示する画面の描画処理を、複数の機器に分担して実行する描画システムであって、複数の機器のうちの1つの機器は、表示する画面の描画内容を決定するための情報を複数の機器のうちの1つの機器を除く機器の各々に送信する送信手段と、描画内容を決定するための情報に応じて、表示する画面の描画処理のうち、第1の処理を含む一部の処理を実行して第1の画面を生成する第1の描画手段と、1つの機器を除く機器の各々が生成した、描画内容に対応する第2の画面を受信する画面受信手段と、第1の描画手段により生成された第1の画面と、画面受信手段により受信された第2の画面とを合成して表示する画面を生成する合成手段と、を有し、1つの機器を除く機器の各々は、1つの機器から描画内容を決定するための情報を受信する受信手段と、受信手段により受信された描画内容を決定するための情報に応じて、表示する画面の描画処理のうち、第1の処理を含まず、第1の処理とは異なる第2の処理を含む一部の処理を実行して第2の画面を生成する第2の描画手段と、第2の描画手段により生成された第2の画面を1つの機器に送信する画面送信手段と、を有することを特徴とする。
【0011】
前述の目的を達成するために、本発明の別の態様の描画システムは、以下の構成を備える。
表示手段に表示する画面の描画処理を、第1の機器と第2の機器とに分担して実行する描画システムであって、第1の機器は、第2の機器から表示する画面の描画内容を決定するための情報を受信する受信手段と、受信手段により受信された描画内容を決定するための情報に応じて、表示する画面の描画処理のうち、第1の処理を含む一部の処理を実行して第1の画面を生成する第1の描画手段と、第2の機器が生成した、描画内容に対応する第2の画面を受信する画面受信手段と、第1の描画手段により生成された第1の画面と、画面受信手段により受信された第2の画面とを合成して表示する画面を生成する合成手段と、を有し、第2の機器は、描画内容を決定するための情報を第1の機器に送信する送信手段と、描画内容を決定するための情報に応じて、表示する画面の描画処理のうち、第1の処理を含まず、第1の処理とは異なる第2の処理を含む一部の処理を実行して第2の画面を生成する第2の描画手段と、第2の描画手段により生成された第2の画面を第1の機器に送信する画面送信手段と、を有することを特徴とする。
【0012】
前述の目的を達成するために、本発明の1つの態様の描画サーバは、以下の構成を備える。
クライアント機器に接続された表示手段に表示する画面の描画処理の一部の処理を担当する描画サーバであって、表示する画面の描画内容を決定するための情報に応じて、表示する画面の描画処理のうち、予め定められた処理を含む一部の処理を実行して提供画面を生成する描画手段と、描画手段により生成された提供画面をクライアント機器に送信する送信手段と、を有することを特徴とする。
【発明の効果】
【0013】
このような構成により本発明によれば、1つの画面についての描画処理を、複数の機器間で分担して効率的に実行することが可能となる。
【図面の簡単な説明】
【0014】
【図1】本発明の実施形態に係る描画システムのシステム構成を示した図
【図2】本発明の実施形態に係るPC100の機能構成を示したブロック図
【図3】本発明の実施形態に係る描画サーバ200の機能構成を示したブロック図
【図4】本発明の実施形態1に係るゲーム処理を例示したフローチャート
【図5】本発明の実施形態1に係るクライアント側描画処理を例示したフローチャート
【図6】本発明の実施形態1に係るサーバ側描画処理を例示したフローチャート
【図7】本発明の実施形態2に係るクライアント側描画処理を例示したフローチャート
【発明を実施するための形態】
【0015】
[実施形態1]
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、描画システムの一例としての、PC100において実行されるゲームプログラムに係る画面の描画処理について、予め定められた一部の処理を実行した画面をPC100に提供する描画サーバ200とに、本発明を適用した例を説明する。しかし、本発明は、1つの画面に係る描画処理を、複数の機器間で分担して実行可能な任意の機器及びシステムに適用可能である。
【0016】
<描画システムの構成>
図1は、本発明の実施形態に係る描画システムのシステム構成を示す図である。
【0017】
図示されるように、PC100と描画サーバ200とはインターネット等のネットワーク300を介して接続されている。本実施形態では描画サーバ200で実行されるゲームプログラムにおいて、ゲームプログラムに係る画面(ゲーム画面)についての描画処理をPC100と描画サーバ200とで分担して処理する。
【0018】
具体的には1つの画面について、PC100は該画面に含まれる描画オブジェクトに対して、グローバルイルミネーションの適用をせずに、テクスチャマッピング(テクスチャリング処理)と基本的な照明モデルを利用した第1の画面の生成を行う。また描画サーバ200は、ネットワーク300を介してPC100から、画面の描画内容を決定するための情報を受信すると、該描画オブジェクトに対して、テクスチャリング処理を適用せずに、グローバルイルミネーションを適用した第2の画面の生成を行う。描画サーバ200は、ネットワーク300を介してPC100に生成した第2の画面を送信し、PC100は、受信した第2の画面と生成した第1の画面とを合成して表示するゲーム画面を生成する。そしてPC100は、該表示する画面を接続されている表示装置に出力する。
【0019】
このように本実施形態の描画システムでは、2つの機器(PC100及び描画サーバ200)で1つの画面の描画処理を分担し、分担された各処理について別々に画面を生成して合成することで、最終的に描画処理に係る全ての処理が実行された画面を生成する。
【0020】
なお、グローバルイルミネーションとは、マテリアルに応じた間接的な光の反射や拡散等の振る舞い等を物理学的に正確に再現するレンダリングアルゴリズムである。グローバルイルミネーションは、リアリティのある写実的な画像を描画する場合に適している。グローバルイルミネーションに係る処理は、様々なアルゴリズムにより高速化も図られてはいるが、一般的に計算量が多く、ゲームのように所定の更新フレームレートが求められる場合には、時間内に該計算を完了する能力がハードウェアに要求される。即ち、例えばゲーム等のコンテンツに係るプログラムを実行するコンピュータにおいてグローバルイルミネーションを適用するためには、コンピュータに対して求められる描画性能あるいは計算性能が非常に高く、コンテンツの利用者を制限することになる。
【0021】
また、本実施形態では描画サーバ200に接続するクライアント機器として、PC100を用いて説明するが、本発明の実施はこれに限られるものではない。例えば描画サーバ200と接続するクライアント機器は、家庭用ゲーム機、携帯ゲーム機、携帯電話、PDA、タブレット等の、第1の画面を描画する描画能力を有する機器であってよい。
【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にはゲーム処理等の動作プログラムに加えて、ゲーム画面に描画される描画オブジェクトについてのモデルデータ(あるいは頂点データ及び結線データ)、テクスチャデータ、設定パラメータ等が記録されているものとする。
【0028】
通信部107は、PC100が有する通信インタフェースである。通信部107は、ネットワーク300を介して接続した、描画サーバ200等の他の機器との間におけるデータ送受信を行う。データ送信時には通信部107は、ネットワーク300あるいは送信先の機器との間で定められたデータ伝送形式にデータを変換し、送信先の機器へのデータ送信を行う。またデータ受信時には通信部107は、ネットワーク300を介して受信したデータを、PC100において読み取り可能な任意のデータ形式に変換し、例えばRAM103に記憶させる。
【0029】
なお、本実施形態ではPC100と描画サーバ200とは、ネットワーク300を介して接続されるものとして説明するが、例えばPC100と描画サーバ200とが直接ケーブルにより接続される形態であってもよいことは容易に想像されよう。また、PC100と描画サーバ200とは、それ以外の他の機器を介して接続される形態であってもよい。
【0030】
表示部108は、例えばLCDモニタ等のPC100に接続された表示装置である。表示部108は、入力されたゲーム画面を表示領域に表示する表示制御を行う。なお、表示部108は、ラップトップPCのようにPC100に内蔵される表示装置であってもよいし、ケーブルを用いてPC100に外部接続された表示装置であってもよい。
【0031】
操作入力部109は、例えばマウス、キーボード、ゲームパッド等のPC100が有するユーザインタフェースである。操作入力部109は、ユーザによりユーザインタフェースの操作がなされたことを検出すると、該操作に対応する制御信号をCPU101に対して出力する。
【0032】
<描画サーバ200の構成>
図3は、本発明の実施形態に係る描画サーバ200の機能構成を示すブロック図である。
【0033】
サーバCPU201は、描画サーバ200が有する各ブロックの動作を制御する。具体的にはサーバCPU201は、例えばサーバROM202やサーバ記録媒体206に記憶されているサーバ側描画処理の動作プログラムを読み出し、サーバRAM203に展開して実行することにより、各ブロックの動作を制御する。
【0034】
サーバROM202は、例えば書き換え可能な不揮発性メモリである。サーバROM202は、サーバ側描画処理等の動作プログラムに加え、描画サーバ200が有する各ブロックの動作において必要となる定数等の情報を記憶する。
【0035】
サーバRAM203は、揮発性メモリである。サーバRAM203は、動作プログラムの展開領域としてだけでなく、描画サーバ200が有する各ブロックの動作において出力された中間データ等を一時的に記憶する格納領域としても用いられる。
【0036】
サーバGPU204は、PC100の表示部108に表示するゲーム画面について、描画処理のうちの、テクスチャリング処理を含まない予め定められた一部の処理を適用した画面(第2の画面)の生成を行う。サーバGPU204には、サーバVRAM205が接続されている。サーバGPU204は、サーバCPU201より描画命令を受信すると、該描画命令に係る描画オブジェクトを受信してGPUメモリに格納する。サーバGPU204は、接続されたサーバVRAM205に対して描画を行う場合、描画オブジェクトのキャッシュメモリへの展開を行なった後、該展開後の描画オブジェクトをVRAM105書き込む。
【0037】
本実施形態ではサーバGPU204は、ゲーム画面についての描画処理のうち、予め定められた一部の処理として、グローバルイルミネーションを適用する処理を担当する。サーバGPU204は、ゲーム画面の描画内容を決定するための情報として受信した、ゲーム画面に対応するカメラ(視点)の位置及び方向の情報に従って、画面の生成を行う。このときサーバGPU204は、ゲーム画面に含まれる描画オブジェクトについて、テクスチャリング処理を適用せずに、グローバルイルミネーションを適用した第2の画面をサーバVRAM205に生成する。
【0038】
サーバ記録媒体206は、例えばHDD等の、描画サーバ200に着脱可能に接続される記録装置である。本実施形態ではサーバ記録媒体206には、描画処理において画面の生成に用いるモデルデータや光源情報等が記録されているものとする。なお、サーバ記録媒体206に記録されるモデルデータは、PC100の記録媒体106に記録されているものと同一である。
【0039】
また本実施形態では、描画サーバ200は上述したように描画内容を決定するための情報としてゲーム画面に対応するカメラの位置及び方向を示す情報を、PC100から受信する。つまり、サーバGPU204はカメラの位置及び方向の情報に基づいて、ゲーム画面に含まれる描画オブジェクトを特定する必要がある。このためサーバ記録媒体206には、ゲーム画面に含まれる描画オブジェクトとして、PC100におけるゲーム処理と同一の描画オブジェクトを特定する処理プログラムが記録される。該処理プログラムは、ゲーム処理と同一であってもよいし、ゲーム処理とは異なるが、カメラの位置及び方向の情報からゲーム画面に含まれる描画オブジェクト及びその位置・回転情報等のパラメータを特定するプログラムであってよい。
【0040】
サーバ通信部207は、描画サーバ200が有する通信インタフェースである。本実施形態ではサーバ通信部207は、ネットワーク300を介して接続したPC100等の、他の機器との間におけるデータ送受信を行う。なお、サーバ通信部207は通信部107と同様に、通信仕様に従ったデータ形式の変換を行う。
【0041】
<ゲーム処理>
このような構成をもつ本実施形態の描画システムのPC100において実行される、基本的なゲーム処理について、図4のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、CPU101が、例えば記録媒体106に記録されている対応する処理プログラムを読み出し、RAM103に展開して実行することにより実現することができる。なお、本ゲーム処理は、例えばPC100においてゲーム処理に対応するアプリケーションの実行指示がなされた際に開始され、ゲームの1フレームごとに繰り返し実行されるものとして説明する。
【0042】
なお、本実施形態では説明を簡単にするため、PC100において実行されるゲームコンテンツは、操作対象のキャラクタの一人称視点がゲーム画面として提供される、所謂FPS(First Person Shooter)等のゲームであるものとする。また、ゲーム画面に含まれるキャラクタ等の描画オブジェクトの移動やアクションは、発生しない、あるいは時間等の一意に決定される変数に応じて定義できるものとする。即ち、本実施形態のPC100において実行されるゲームコンテンツは、ゲーム画面に対応するカメラの位置及び方向を示す情報のみで、ゲーム画面に含まれる描画オブジェクトを特定可能である。つまり、PC100のゲーム処理により規定されたゲーム画面は、カメラの位置及び方向を示す情報のみで描画サーバ200においても同様の画面を規定することができる。
【0043】
しかしながら、本発明の実施はこのようなFPSゲーム等の一人称視点のゲーム画面を提供するものに限られず、描画処理により得られた画面を提供する他のコンテンツについても適用可能である。例えば、画面内にユーザからの操作入力に応じて、あるいはランダムイベントにより、ゲーム画面内に含まれる描画オブジェクトの移動やアクションが発生する場合は、フレームにおける各描画オブジェクトの移動やアクションを定義するパラメータが、カメラの位置及び方向とは別に描画内容を決定するための情報として描画サーバ200に送信されればよい。またユーザからの操作入力が直接描画サーバ200に送信されてもよい。
【0044】
S401で、CPU101は、ゲーム画面を規定する、カメラの位置及び方向を変更する操作入力がユーザによりなされたか否かを判断する。具体的にはCPU101は、カメラの位置及び方向を変更する操作入力に対応する制御信号を、操作入力部109から受信したか否かを判断することにより、該操作入力がなされたか否かを判断する。CPU101は、ゲームについての操作入力がなされたと判断した場合は処理をS402に移し、なされていないと判断した場合は処理をS403に移す。
【0045】
S402で、CPU101は、カメラの位置及び方向を変更する操作入力に応じて、例えばRAM103に格納されているカメラの位置及び方向を示す情報(描画カメラパラメータ)を更新する。
【0046】
S403で、CPU101は、RAM103に格納されている描画カメラパラメータを描画内容を決定するための情報として描画サーバ200に送信する。具体的にはCPU101は、RAM103から描画カメラパラメータを読み出し、通信部107に伝送して描画サーバ200に送信させる。
【0047】
S404で、CPU101は、RAM103に格納されている描画カメラパラメータに従って、ゲーム画面に係る第1の画面の描画を行うクライアント側描画処理を実行する。
【0048】
(クライアント側描画処理)
ここで、本実施形態のPC100において実行される、クライアント側描画処理について、図5のフローチャートを用いて具体的な処理を説明する。
【0049】
S501で、CPU101は、描画するゲーム画面に含まれる描画オブジェクトを特定する。具体的にはCPU101は、RAM103から描画カメラパラメータを読み出し、該描画カメラパラメータにより規定される、ワールド上の描画範囲の情報を算出する。そしてCPU101は、該描画範囲に含まれる描画オブジェクトを、例えばワールドに分布する描画オブジェクトの配置位置の情報に基づいて特定する。
【0050】
S502で、CPU101は、所定の描画順決定方法により決定された描画順に応じて、まだ描画がなされていない描画オブジェクトを選択する。そしてCPU101は、該描画オブジェクトについての描画命令をGPU104に伝送する。またCPU101は、該描画オブジェクトのモデルデータ(あるいは頂点データ及び結線データ)、テクスチャデータ、及び描画オブジェクトについての位置・回転情報のパラメータを記録媒体106から読み出し、GPU104に転送する。なお、本ステップで選択される描画オブジェクトには、背景オブジェクトも含まれるものとする。GPU104は、転送された描画オブジェクトについての情報をGPUメモリに格納する。
【0051】
S503で、GPU104はCPU101の制御のもと、選択された描画オブジェクトについての位置・回転情報のパラメータに従って、GPUメモリに格納されたモデルデータを移動及び回転させる。具体的にはGPU104は、選択された描画オブジェクトの各頂点に対し、位置・回転情報のパラメータに対応する空間座標を定義する。
【0052】
S504で、GPU104はCPU101の制御のもと、S503で移動及び回転させたモデルデータの各ポリゴンに対して、GPUメモリに格納したテクスチャデータを用いてテクスチャマッピング(テクスチャリング処理)を行い、VRAM105のフレームバッファに描画する。なお、本クライアント側描画処理において描画する描画オブジェクトの各々については、反射等の光源計算を行わず、各頂点は予め定められた固定値等で明るさが定義されて描画されるものとする。
【0053】
S505で、CPU101は、描画範囲に含まれる描画オブジェクトの全てについて、GPU104によるVRAM105への描画が完了したか否かを判断する。CPU101は、全ての描画オブジェクトのVRAM105への描画が完了したと判断した場合は本クライアント側描画処理を終了し、完了していないと判断した場合は処理をS502に戻す。
【0054】
このようにクライアント側描画処理が実行されることにより、グローバルイルミネーションを適用せず、テクスチャリング処理と基本的な照明モデルを利用して生成された第1の画面が得られる。
【0055】
S405で、CPU101は、ゲーム画面に係るテクスチャリング処理を適用せずに、グローバルイルミネーションを適用して生成された第2の画面を受信したか否かを判断する。具体的にはCPU101は、通信部107がネットワーク300を介して描画サーバ200から第2の画面を受信したか否かを判断する。CPU101は、第2の画面を受信したと判断した場合は処理をS406に移し、受信していないと判断した場合は本ステップの処理を繰り返す。
【0056】
なお、本実施形態では第1の画面及び第2の画面の生成は1フレーム内で実行されるものとして説明するが、本発明の実施はこれに限られるものではない。例えば第2の画面の生成が1フレーム内に完了しない場合、S404で実行したクライアント側描画処理により得られた第1の画面と、本ステップで受信した第2の画面とが、同一のフレームのゲーム画面について描画されたものであるかを判別するため、第2の画面には描画しているフレームを識別するフレーム識別情報が含まれていてもよい。この場合、CPU101はS403において描画内容を決定するための情報を送信する際に、フレーム識別情報を含める。そして描画サーバ200において第2の画面が生成されてPC100に対して送信される際に、サーバCPU201により該フレーム識別情報が関連付けられるものとする。即ち、CPU101は、通信部107が受信した画面に関連付けられているフレーム識別情報を参照することで、受信した画面が同一のフレームのゲーム画面について描画されたものであるかを判別することができる。
【0057】
S406で、CPU101は、受信した第2の画面と第1の画面とを合成して、表示部108に表示する最終的なゲーム画面を例えばVRAM105に生成する。具体的には、第1の画面及び第2の画面は、例えばR成分、G成分、及びB成分の画像で構成されており、各色の画像について同一画素位置の画素の合成を行うことにより、最終的なゲーム画面に係る各色の画像を生成する。なお、各画素の画素値は正規化された値であり、画素の合成は例えば画素値の乗算を行うことにより実行されればよい。
【0058】
S407で、CPU101は、S406で生成した最終的なゲーム画面を、表示部108に転送し、表示画面に表示させる。
【0059】
<サーバ側描画処理>
一方、描画サーバ200において実行される、ゲーム画面に係る第2の画面の描画を行うサーバ側描画処理について、図6のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、サーバCPU201が、例えばサーバ記録媒体206に記録されている対応する処理プログラムを読み出し、サーバRAM203に展開して実行することにより実現することができる。なお、本サーバ側描画処理は、例えばゲーム画面の描画内容を決定するための情報である描画カメラパラメータを、サーバ通信部207が受信したことをサーバCPU201が検出した際に開始されるものとして説明する。また、サーバ通信部207が受信した描画カメラパラメータは、サーバCPU201によりサーバRAM203に格納されるものとして以下は説明する。
【0060】
S601で、サーバCPU201は、描画するゲーム画面に含まれる描画オブジェクトを特定する。具体的にはサーバCPU201は、サーバRAM203から描画カメラパラメータを読み出し、該描画カメラパラメータにより規定される、ワールド上の描画範囲の情報を算出する。そしてサーバCPU201は、該描画範囲に含まれる描画オブジェクトを、PC100と同様にワールドに分布する描画オブジェクトの配置位置の情報に基づいて特定する。
【0061】
S602で、サーバCPU201は、所定の描画順決定方法により決定された描画順に応じて、まだ描画がなされていない描画オブジェクトを選択する。そしてサーバCPU201は、該描画オブジェクトについての描画命令をサーバGPU204に伝送する。またサーバCPU201は、該描画オブジェクトのモデルデータ、及び位置・回転情報のパラメータを記録媒体106より読み出し、サーバGPU204に転送する。サーバGPU204は、転送された描画オブジェクトについての情報をGPUメモリに格納する。
【0062】
S603で、サーバGPU204はサーバCPU201の制御のもと、選択された描画オブジェクトについての位置・回転情報のパラメータに従って、GPUメモリに格納されたモデルデータを移動及び回転させ空間座標を定義する。
【0063】
S604で、サーバCPU201は、描画範囲に含まれる描画オブジェクトの全てについて、空間座標の定義が完了したか否かを判断する。サーバCPU201は、全ての描画オブジェクトの空間座標の定義が完了したと判断した場合は処理をS605に移し、完了していないと判断した場合は処理をS602に戻す。
【0064】
S605で、サーバGPU204はサーバCPU201の制御のもと、グローバルイルミネーションを適用する処理を行う。まずサーバCPU201は、描画範囲あるいはその周辺について適用される光源の位置・方向・種類を示す情報(光源情報)をサーバ記録媒体206より読み出し、サーバGPU204に伝送する。サーバGPU204は、光源情報を受け取ると空間座標を定義した描画オブジェクトについて、例えばフォトンマッピング法やラジオシティ法等、光源情報に基づいたグローバルイルミネーションに係る計算処理を実行する。そしてサーバGPU204は、グローバルイルミネーションを適用した第2の画面をサーバVRAM205に描画する。
【0065】
S606で、サーバCPU201は、サーバGPU204により描画された第2の画面を取得してサーバ通信部207に伝送し、PC100に対して送信させる。なお、本実施形態のように、ゲーム画面の提供が連続した動画データとして行われる構成においては、描画サーバ200からPC100に対して送信される第2の画面の形態は、画像データ形式に限られなくてもよい。即ち、連続して画面の送信が行われることを考えると、サーバCPU201は、生成された第2の画面について、前後のフレーム等を参照したフレーム間予測等を含む符号化処理を実行した上で得られた符号化動画データを、PC100に対して送出する形であってもよい。
【0066】
このように、本実施形態の描画システムは、ゲーム画面の描画処理を、テクスチャリング処理を行なう第1の画面と、グローバルイルミネーションを適用する第2の画面とに分けて生成することができる。つまり、描画処理において計算性能が要求されるグローバルイルミネーションについては、計算資源に余裕を持たせた設計が可能な描画サーバに割り当てることで、クライアント機器の描画性能に依らず、品質の高いゲーム画面の提供を行うことが可能である。
【0067】
なお、本実施形態ではクライアント機器であるPC100と描画サーバ200とが通信接続されていることを前提として説明したが、例えば通信が切断された場合は、合成を行わずに第1の画面を提供する形態であってもよい。また、通信接続されているか否かによって、PC100において描画する第1の画面の描画処理を切り替える構成であっても良い。即ち、描画サーバ200との通信が可能でない場合は、PC100の描画性能に応じた光源計算を行なったゲーム画面を描画して提供する。一方、描画サーバ200との通信が可能である場合は、PC100においては光源計算を行わず、グローバルイルミネーションを適用した第2の画面との合成を行うことで、光源の再現度が高い、高品質なゲーム画面を提供する形態であってもよい。
【0068】
この場合、例えばネットワーク上の描画サーバ200に描画処理を分担して得られた画像を使用して、ゲーム画面の高品質化が行われていることを、PC100の表示部108に表示することでユーザに通知してもよい。また逆に、ネットワーク上の描画サーバ200と通信ができず、ゲーム画面の高品質化を行わず、PC100のみで描画処理を行なって得られたゲーム画面が表示されていることを、表示部108に表示することで通知してもよい。
【0069】
また、グローバルイルミネーションを適用したゲーム画面の提供は、ユーザにより切り替えられるものであってもよい。
【0070】
[実施形態2]
上述した実施形態では、クライアント機器であるPC100においてゲーム進行を管理する場合の、PC100及び描画サーバ200の各々における描画処理について説明した。本実施形態では、サーバ機器である描画サーバ200においてゲーム進行を管理するゲーム処理を実行する場合の、各機器における描画処理について以下に説明する。
【0071】
<ゲーム処理>
まず上述の実施形態1と同様の構成をもつ、本実施形態の描画システムの描画サーバ200において実行される、基本的なゲーム処理について説明する。ゲーム処理は、例えば描画サーバ200が起動された際にサーバCPU201により実行が開始され、ゲームの1フレームごとに繰り返し実行されるものとして説明する。
【0072】
本実施形態の描画サーバ200において実行されるゲーム処理は、上述の実施形態1のPC100において実行されるゲーム処理と略同一であるため、処理の詳細な説明については省略し、異なる点のみについて説明する。
【0073】
実施形態1のゲーム処理では、ゲーム画面を規定する、カメラの位置及び方向を変更する操作入力がユーザによりなされたことを受けて、PC100においてCPU101がカメラの位置及び方向を示す描画カメラパラメータへの変更及び更新を行なった。本実施形態では、該描画カメラパラメータの変更及び更新は描画サーバ200においてサーバCPU201が実行する。このため、PC100において検出されたカメラの位置及び方向を変更する操作入力を示す情報は通信部107を介して描画サーバ200に伝送され、サーバCPU201は該操作入力を示す情報に基づいて、描画カメラパラメータを変更及び更新する。
【0074】
また描画カメラパラメータの決定後、サーバCPU201は描画カメラパラメータをサーバ通信部207を介してPC100に伝送する。このとき、CPU101は通信部107が描画カメラパラメータを受信したことを検出すると、後述するクライアント側描画処理を実行する。またサーバCPU201は、描画カメラパラメータの決定後、該パラメータを使用して上述した実施形態1と同様のサーバ側描画処理を実行し、1フレームに係るゲーム処理を完了する。
【0075】
<クライアント側描画処理>
以下、本実施形態のPC100において実行されるクライアント側描画処理について、図7のフローチャートを用いて具体的な処理を説明する。なお、上述したように本クライアント側描画処理は、通信部107が描画カメラパラメータを受信したことをCPU101が検出した際に開始されるものとして説明する。また、本実施形態のクライアント側描画処理側描画処理において、上述した実施形態1と同様の処理を行うステップについては同一の参照符号を付して説明を省略し、本実施形態に特徴的な処理の説明に留める。
【0076】
S504における描画オブジェクトの描画がなされた後、CPU101はS701で、描画範囲に含まれる描画オブジェクトの全てについて、GPU104によるVRAM105への描画が完了したか否かを判断する。CPU101は、全ての描画オブジェクトのVRAM105への描画が完了したと判断した場合は処理をS702に移し、完了していないと判断した場合は処理をS502に戻す。
【0077】
S702で、CPU101は、ゲーム画面に係るテクスチャリング処理を適用せずに、グローバルイルミネーションを適用して生成された第2の画面を受信したか否かを判断する。具体的にはCPU101は、通信部107がネットワーク300を介して描画サーバ200から第2の画面を受信したか否かを判断する。CPU101は、第2の画面を受信したと判断した場合は処理をS703に移し、受信していないと判断した場合は本ステップの処理を繰り返す。
【0078】
S703で、CPU101は、受信した第2の画面と第1の画面とを合成して、表示部108に表示する最終的なゲーム画面を例えばVRAM105に生成する。具体的には、第1の画面及び第2の画面は、例えばR成分、G成分、及びB成分の画像で構成されており、各色の画像について同一画素位置の画素の合成を行うことにより、最終的なゲーム画面に係る各色の画像を生成する。
【0079】
S704で、CPU101は、S703で生成した最終的なゲーム画面を、表示部108に転送し、表示画面に表示させる。
【0080】
このようにすることで、ネットワークゲームのようにゲーム進行の管理をサーバ側で行う形態であっても、本発明を適用して、効率的に描画処理を分散させ、かつグローバルイルミネーションが適用された高品質のゲーム画面をクライアント機器においてユーザに提供することができる。
【0081】
なお、本実施形態のようにサーバがゲーム進行を管理する場合、以下のような利点がある。例えばサーバ機器が複数のクライアント機器に対してゲーム画面の提供を同時に行う場合、応答性が要求されるゲームコンテンツ等では、サーバ機器における描画処理の計算負荷が高くなる。即ち、サーバ機器は描画性能及び要求される応答性に応じて、画面を提供可能なクライアント機器数が限られることになる。これに対し、クライアント機器にも一般的な描画性能で実行可能な処理を実行させ、サーバ機器とクライアント機器との間で描画処理を分担することにより、より多くのクライアント機器に画面を提供できる。また一般的にテクスチャマッピングを適用しないで描画されたゲーム画面は、圧縮効率が高く、インターネット等のネットワークを通じて、少ない帯域量で送信できる。
【0082】
また、上述した実施形態1及び2では、描画処理の予め定められた一部の処理を、テクスチャリング処理に比べて計算負荷が高く、より高い計算性能を必要とするグローバルイルミネーションの適用処理として説明したが、本発明の実施はこれに限られるものではない。本発明は、複数の機器間における、1つの画面についての描画処理を分担して実行した結果、それぞれの機器において生成された1つの画面に係る複数の画像を合成することで、1つの機器で描画処理を行なった場合と同様の画面の生成するものである。即ち、本発明は、1つの画面に係る描画処理を複数の機器に分担した結果、複数の機器の各々から得られた画像を単純な処理で合成することで、所望の1つの画面を得るものであれば適用可能である。例えば、本実施形態で説明したような光源計算(シェーディング処理)や、エフェクトを与える描画オブジェクトの重畳等、少なくともテクスチャリング処理(第1の処理)が適用された描画オブジェクトが描画された第1の画面に対して、後付けで重畳可能な画像を生成する処理(第2の処理)であれば、第1の画面を描画する機器とは異なる機器に分担して実行させてよい。
【0083】
なお、上述した実施形態では、基本的な照明モデルを利用する描画処理についてはクライアント機器において実行されるものとして説明したが、現状のゲームコンソールで普及している描画方式であるシェーダアーキテクチャを利用する描画処理についても、本発明の適用は可能である。基本的なシェーダアーキテクチャを利用した描画処理には、一般的にバーテックスシェーダ、ジオメトリシェーダ、ピクセルシェーダが含まれる。このうち、テクスチャマッピングを行なった描画オブジェクトの描画を行うために最低限必要なバーテックスシェーダ、ジオメトリシェーダについてはクライアント機器において実行し、バンプマッピング、スペキュラーマッピング、反射マッピング等を含むエフェクトの適用を行うピクセルシェーダについては、描画サーバに分担する形であってもよい。
【0084】
また、本実施形態では描画処理を2つの機器に分担して実行する場合についてのみ説明したが、本発明の実施はこれに限らず、2以上の機器に描画処理を分担して1つの画面を生成するものであれば適用可能であることは容易に想像されよう。なお、この場合、各機器に分担される描画処理は、各機器の描画処理の結果の画像を上述したように単純に合成することで最終的な1つの画面を生成可能なように分担されるものとする。
【0085】
また本発明は、上述した実施形態で説明した、3次元シーンを2次元画像に描画する描画処理のように、1つの画面を生成する際に、都度計算処理を行って描画処理が行われるケースについて適用されることが好ましい。しかしながら、本発明の実施はこれに限られず、例えば静止画像について、描画サーバが該静止画像の解析を行ない、輝度補正を行うフィルタを画像として送信し、クライアント機器において静止画像とフィルタの合成が行われる構成であってもよい。
【0086】
以上説明したように、本発明の描画システムは、1つの画面についての描画処理を、複数の機器間で分担して効率的に実行することができる。具体的には描画システムは、表示装置に表示する画面の描画処理を、複数の機器に分担して実行する。複数の機器のうちの1つの機器は、表示する画面の描画内容を決定するための情報を、複数の機器のうちの1つの機器を除く機器の各々に送信する。また該1つの機器は、描画内容を決定するための情報に応じて、表示する画面の描画処理のうち、第1の処理を含む一部の処理を実行して第1の画面を生成する。一方、1つの機器を除く機器の各々は、該1つの機器から描画内容を決定するための情報を受信すると、該情報に応じて、表示する画面の描画処理のうち、第1の処理を含まず、第1の処理とは異なる第2の処理を含む一部の処理を実行して第2の画面を生成して1つの機器に送信する。そして1つの機器は、該1つの機器を除く機器の各々が生成した第2の画面を受信し、第1の画面と第2の画面とを合成して表示する画面を生成する。
【0087】
このように1つの画面についての描画処理を他の機器に分担して実行させることができ、その分担した描画処理による効果を、合成処理により容易に適用することができるため、例えばクライアント機器の描画性能によらず、リッチ化したゲーム画面の提供を行うことができる。

【特許請求の範囲】
【請求項1】
表示手段に表示する画面の描画処理を、複数の機器に分担して実行する描画システムであって、
前記複数の機器のうちの1つの機器は、
前記表示する画面の描画内容を決定するための情報を前記複数の機器のうちの前記1つの機器を除く機器の各々に送信する送信手段と、
前記描画内容を決定するための情報に応じて、前記表示する画面の描画処理のうち、第1の処理を含む一部の処理を実行して第1の画面を生成する第1の描画手段と、
前記1つの機器を除く機器の各々が生成した、前記描画内容に対応する第2の画面を受信する画面受信手段と、
前記第1の描画手段により生成された前記第1の画面と、前記画面受信手段により受信された前記第2の画面とを合成して前記表示する画面を生成する合成手段と、を有し、
前記1つの機器を除く機器の各々は、
前記1つの機器から前記描画内容を決定するための情報を受信する受信手段と、
前記受信手段により受信された前記描画内容を決定するための情報に応じて、前記表示する画面の描画処理のうち、前記第1の処理を含まず、前記第1の処理とは異なる第2の処理を含む一部の処理を実行して前記第2の画面を生成する第2の描画手段と、
前記第2の描画手段により生成された前記第2の画面を前記1つの機器に送信する画面送信手段と、を有する
ことを特徴とする描画システム。
【請求項2】
表示手段に表示する画面の描画処理を、第1の機器と第2の機器とに分担して実行する描画システムであって、
前記第1の機器は、
前記第2の機器から前記表示する画面の描画内容を決定するための情報を受信する受信手段と、
前記受信手段により受信された前記描画内容を決定するための情報に応じて、前記表示する画面の描画処理のうち、第1の処理を含む一部の処理を実行して第1の画面を生成する第1の描画手段と、
前記第2の機器が生成した、前記描画内容に対応する第2の画面を受信する画面受信手段と、
前記第1の描画手段により生成された前記第1の画面と、前記画面受信手段により受信された前記第2の画面とを合成して前記表示する画面を生成する合成手段と、を有し、
前記第2の機器は、
前記描画内容を決定するための情報を前記第1の機器に送信する送信手段と、
前記描画内容を決定するための情報に応じて、前記表示する画面の描画処理のうち、前記第1の処理を含まず、前記第1の処理とは異なる第2の処理を含む一部の処理を実行して前記第2の画面を生成する第2の描画手段と、
前記第2の描画手段により生成された前記第2の画面を前記第1の機器に送信する画面送信手段と、を有する
ことを特徴とする描画システム。
【請求項3】
前記表示する画面の描画処理は、3次元シーンを2次元画像に描画する処理であり、前記第1の画面と前記第2の画面とは、同一の3次元シーンについて、異なる処理を実行して得られた2次元画像を含むことを特徴とする請求項1または2に記載の描画システム。
【請求項4】
前記第2の処理は、前記第1の処理に比べて計算負荷が高い処理であることを特徴とする請求項1乃至3のいずれか1項に記載の描画システム。
【請求項5】
前記第1の処理は、前記表示する画面に含まれる描画オブジェクトにテクスチャを適用する処理であることを特徴とする請求項1乃至4のいずれか1項に記載の描画システム。
【請求項6】
前記第2の処理は、前記表示する画面に含まれる描画オブジェクトについての光源計算を含む処理であることを特徴とする請求項1乃至5のいずれか1項に記載の描画システム。
【請求項7】
前記描画内容を決定するための情報は、前記表示する画面を定義するカメラ位置及び方向を示す情報であることを特徴とする請求項1乃至6のいずれか1項に記載の描画システム。
【請求項8】
前記第1の画面及び前記第2の画面は、R成分、G成分、及びB成分の画像で構成され、
前記合成手段は、各色の成分ごとに画像の画素値の合成を行い、前記表示する画面のR成分、G成分、及びB成分の画像を生成する
ことを特徴とする請求項1乃至7のいずれか1項に記載の描画システム。
【請求項9】
前記合成手段は、前記画面受信手段により前記第2の画面が受信できない場合に、前記第1の画面を前記表示する画面として出力することを特徴とする請求項1乃至8のいずれか1項に記載の描画システム。
【請求項10】
表示手段に表示する画面の描画処理を、複数の機器に分担して実行する描画システムであって、
前記描画システムは、前記表示手段に表示するユーザインタフェースにおいて、
前記複数の機器のうちの1つの機器において第1の処理を含む一部の処理を実行して生成された第1の画面が前記表示する画面として表示されることを示す通常画面通知部と、
前記複数の機器のうちの前記1つの機器を除く機器において前記第1の処理を含まず、前記第1の処理とは異なる第2の処理を含む一部の処理を実行して生成された第2の画面と、前記第1の画面とを合成して得られた画面が前記表示する画面として表示されることを示す拡張画面通知部と、
を有することを特徴とする描画システム。
【請求項11】
クライアント機器に接続された表示手段に表示する画面の描画処理の一部の処理を担当する描画サーバであって、
前記表示する画面の描画内容を決定するための情報に応じて、前記表示する画面の描画処理のうち、予め定められた処理を含む一部の処理を実行して提供画面を生成する描画手段と、
前記描画手段により生成された前記提供画面を前記クライアント機器に送信する送信手段と、
を有することを特徴とする描画サーバ。
【請求項12】
前記描画手段は、前記表示する画面に含まれる描画オブジェクトにテクスチャリング処理を適用せずに前記提供画面を生成することを特徴とする請求項11に記載の描画サーバ。
【請求項13】
前記描画内容を決定するための情報は、前記表示する画面を定義するカメラ位置及び方向を示す情報であることを特徴とする請求項11または12に記載の描画サーバ。
【請求項14】
クライアント機器に接続された表示手段に表示する画面の描画処理の一部の処理を担当する描画サーバの制御方法であって、
前記描画サーバの描画手段が、前記表示する画面の描画内容を決定するための情報に応じて、前記表示する画面の描画処理のうち、予め定められた処理を含む一部の処理を実行して提供画面を生成する描画工程と、
前記描画サーバの送信手段が、前記描画工程において生成された前記提供画面を前記クライアント機器に送信する送信工程と、
を有することを特徴とする描画サーバの制御方法。
【請求項15】
コンピュータを、請求項11乃至13のいずれか1項に記載の描画サーバの各手段として機能させるためのプログラム。
【請求項16】
表示手段が接続されたコンピュータを、
前記表示手段に表示する画面の描画内容を決定するための情報を描画サーバに送信する送信手段と、
前記描画内容を決定するための情報に応じて、前記表示する画面の描画処理のうち、第1の処理を含む一部の処理とは異なる一部の処理を実行して第1の画面を生成する描画手段と、
前記描画サーバが生成した、前記描画内容に対応する第2の画面を受信する画面受信手段と、
前記描画手段により生成された前記第1の画面と、前記画面受信手段により受信された前記第2の画面とを合成して前記表示する画面を生成する合成手段と、
前記合成手段により生成された前記表示する画面を前記表示手段に表示する手段
として機能させるためのプログラム。
【請求項17】
請求項16に記載のプログラムが記録された記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2013−99494(P2013−99494A)
【公開日】平成25年5月23日(2013.5.23)
【国際特許分類】
【出願番号】特願2011−276107(P2011−276107)
【出願日】平成23年12月16日(2011.12.16)
【出願人】(592044813)株式会社スクウェア・エニックス・ホールディングス (115)
【Fターム(参考)】