(57)【特許請求の範囲】
【請求項１】
表示手段に表示する画面の描画処理を、複数の機器に分担して実行する描画システムであって、
前記複数の機器のうちの１つの機器は、
前記表示する画面の描画内容を決定するための情報を前記複数の機器のうちの前記１つの機器を除く機器の各々に送信する送信手段と、
前記描画内容を決定するための情報に応じて、前記表示する画面の描画処理のうち、第１の処理を含む一部の処理を実行して第１の画面を生成する第１の描画手段と、
前記１つの機器を除く機器の各々が生成した、前記描画内容に対応する第２の画面を受信する画面受信手段と、
前記第１の描画手段により生成された前記第１の画面と、前記画面受信手段により受信された前記第２の画面とを合成して前記表示する画面を生成する合成手段と、を有し、
前記１つの機器を除く機器の各々は、
前記１つの機器から前記描画内容を決定するための情報を受信する受信手段と、
前記受信手段により受信された前記描画内容を決定するための情報に応じて、前記第１の画面に描画される描画オブジェクトについて、前記表示する画面の描画処理のうち、前記第１の処理を含まず、前記第１の処理とは異なる第２の処理を含む一部の処理を実行して前記第２の画面を生成する第２の描画手段と、
前記第２の描画手段により生成された前記第２の画面を前記１つの機器に送信する画面送信手段と、を有する
ことを特徴とする描画システム。
【請求項２】
表示手段に表示する画面の描画処理を、第１の機器と第２の機器とに分担して実行する描画システムであって、
前記第１の機器は、
前記第２の機器から前記表示する画面の描画内容を決定するための情報を受信する受信手段と、
前記受信手段により受信された前記描画内容を決定するための情報に応じて、前記表示する画面の描画処理のうち、第１の処理を含む一部の処理を実行して第１の画面を生成する第１の描画手段と、
前記第２の機器が生成した、前記描画内容に対応する第２の画面を受信する画面受信手段と、
前記第１の描画手段により生成された前記第１の画面と、前記画面受信手段により受信された前記第２の画面とを合成して前記表示する画面を生成する合成手段と、を有し、
前記第２の機器は、
前記描画内容を決定するための情報を前記第１の機器に送信する送信手段と、
前記描画内容を決定するための情報に応じて、前記第１の画面に描画される描画オブジェクトについて、前記表示する画面の描画処理のうち、前記第１の処理を含まず、前記第１の処理とは異なる第２の処理を含む一部の処理を実行して前記第２の画面を生成する第２の描画手段と、
前記第２の描画手段により生成された前記第２の画面を前記第１の機器に送信する画面送信手段と、を有する
ことを特徴とする描画システム。
【請求項３】
前記表示する画面の描画処理は、３次元シーンを２次元画像に描画する処理であり、前記第１の画面と前記第２の画面とは、３次元シーン内の同一の描画オブジェクトについて、異なる処理を実行して得られた２次元画像を含むことを特徴とする請求項１または２に記載の描画システム。
【請求項４】
前記第２の処理は、前記第１の処理に比べて計算負荷が高い処理であることを特徴とする請求項１乃至３のいずれか１項に記載の描画システム。
【請求項５】
前記第１の処理を含む一部の処理は、前記表示する画面に含まれる描画オブジェクトを描画するために最低限必要であるものとして定められた処理であることを特徴とする請求項１乃至４のいずれか１項に記載の描画システム。
【請求項６】
前記第１の処理は、前記表示する画面に含まれる描画オブジェクトにテクスチャを適用する処理であることを特徴とする請求項１乃至５のいずれか１項に記載の描画システム。
【請求項７】
前記第２の画面は、前記表示する画面に含まれる描画オブジェクトについての輝度表現を変更する値を有する画面であることを特徴とする請求項１乃至６のいずれか１項に記載の描画システム。
【請求項８】
前記描画内容を決定するための情報は、前記表示する画面を定義するカメラ位置及び方向を示す情報であることを特徴とする請求項１乃至７のいずれか１項に記載の描画システム。
【請求項９】
前記合成手段は、前記画面受信手段により前記第２の画面が受信できない場合に、前記第１の画面を前記表示する画面として出力することを特徴とする請求項１乃至８のいずれか１項に記載の描画システム。
【請求項１０】
表示手段に表示する画面の描画処理を、複数の機器に分担して実行する描画システムであって、
前記描画システムは、前記表示手段に表示するユーザインタフェースにおいて、
前記複数の機器のうちの１つの機器において第１の処理を含む一部の処理を実行して生成された第１の画面が前記表示する画面として表示されることを示す通常画面通知部と、
前記複数の機器のうちの前記１つの機器を除く機器において、前記第１の画面に描画される描画オブジェクトについて、前記第１の処理を含まず、前記第１の処理とは異なる第２の処理を含む一部の処理を実行して生成された第２の画面と、前記第１の画面とを合成して得られた画面が前記表示する画面として表示されることを示す拡張画面通知部と、
を有することを特徴とする描画システム。
【請求項１１】
表示手段が接続されたコンピュータを、
前記表示手段に表示する画面の描画内容を決定するための情報を描画サーバに送信する送信手段と、
前記描画内容を決定するための情報に応じて、前記表示する画面の描画処理のうち、第１の処理を含む一部の処理とは異なる一部の処理を実行して第１の画面を生成する描画手段と、
前記第１の画面に描画される描画オブジェクトについて前記描画サーバが生成した、前記描画内容に対応する第２の画面を受信する画面受信手段と、
前記描画手段により生成された前記第１の画面と、前記画面受信手段により受信された前記第２の画面とを合成して前記表示する画面を生成する合成手段と、
前記合成手段により生成された前記表示する画面を前記表示手段に表示する手段
として機能させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムが記録されたコンピュータが読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、描画システム、描画サーバ、その制御方法、プログラム、及び記録媒体に関し、特にネットワーク接続された複数の機器間で描画処理を分担して１つの画面を生成する技術に関する。
【背景技術】
【０００２】
ネットワーク接続可能なパーソナルコンピュータ（ＰＣ）等のクライアント機器が普及している。このような機器の普及により、インターネットにおけるネットワーク人口は増加している。近年では、ネットワークユーザに対する、インターネットを利用した様々なサービスが展開されており、ゲーム等のエンターテインメントサービスも提供されている。
【０００３】
ネットワークユーザに対するサービスの１つとして、ＭＭＯＲＰＧ（Massively Multiplayer Online Role-Playing Game）等の多人数同時参加型のネットワークゲームがある。多人数同時参加型のネットワークゲームでは、ユーザは使用するクライアント機器を、ゲームを提供するサーバ機器に接続することで、該サーバ機器に接続されているクライアント機器を使用するユーザとの対戦プレイや協力プレイを行うことができる。
【０００４】
一般的な多人数参加型のネットワークゲームでは、クライアント機器はサーバ機器との間でゲームの描画に必要なデータの送受信を行う。クライアント機器は、受信した描画に必要なデータを用いて描画処理を実行し、生成したゲーム画面をクライアント機器に接続された表示装置に提示することで、ユーザにゲーム画面を提供する。また、ユーザが入力インタフェースを操作することで入力された情報はサーバ機器に送信され、サーバ機器における演算処理に使用されたり、サーバ機器に接続された他のクライアント機器に伝送されたりする。
【０００５】
しかしながら、このようなクライアント機器で描画処理を行うネットワークゲームの中には、十分な描画性能を行うＰＣや専用のゲーム機をユーザが使用すること必要となるものがある。このため、ネットワークゲーム（１コンテンツ）のユーザ数は、コンテンツに要求される性能を満足する機器の所有ユーザの数に依存してしまう。即ち、例えば美麗なグラフィックを提供するゲーム等の高い描画性能が要求されるゲームでは、ユーザ数を増加させることが困難である。
【０００６】
これに対し、近年ではクライアント機器の描画性能等の処理能力に依存せずに、ユーザがプレイ可能なゲームも提供されている。特許文献１のようなゲームでは、サーバ機器はクライアント機器においてなされた操作の情報を取得し、該情報を用いて描画処理を実行して得られたゲーム画面を、クライアント機器に対して提供している。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】国際公開第２００９／１３８８７８号パンフレット
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述した特許文献１のようなゲームでは、サーバ機器がクライアント機器に対して提供するゲーム画面を描画して転送することについて記載されている。即ち、クライアント機器は、サーバ機器において実行された描画処理により生成されたゲーム画面を受信し、再生することでゲーム画面の表示を行うことができる。しかしながら、描画処理を複数の機器間で分担する具体的な方法についてはこれまで開示されていなかった。
【０００９】
本発明は、上述の問題点に鑑みてなされたものであり、１つの画面についての描画処理を、複数の機器間で分担して効率的に実行する描画システム、描画サーバ、その制御方法、プログラム、及び記録媒体を提供することを目的とする。
【課題を解決するための手段】
【００１０】
前述の目的を達成するために、本発明の１つの態様の描画システムは、以下の構成を備える。
表示手段に表示する画面の描画処理を、複数の機器に分担して実行する描画システムであって、複数の機器のうちの１つの機器は、表示する画面の描画内容を決定するための情報を複数の機器のうちの１つの機器を除く機器の各々に送信する送信手段と、描画内容を決定するための情報に応じて、表示する画面の描画処理のうち、第１の処理を含む一部の処理を実行して第１の画面を生成する第１の描画手段と、１つの機器を除く機器の各々が生成した、描画内容に対応する第２の画面を受信する画面受信手段と、第１の描画手段により生成された第１の画面と、画面受信手段により受信された第２の画面とを合成して表示する画面を生成する合成手段と、を有し、１つの機器を除く機器の各々は、１つの機器から描画内容を決定するための情報を受信する受信手段と、受信手段により受信された描画内容を決定するための情報に応じて、第１の画面に描画される描画オブジェクトについて、表示する画面の描画処理のうち、第１の処理を含まず、第１の処理とは異なる第２の処理を含む一部の処理を実行して第２の画面を生成する第２の描画手段と、第２の描画手段により生成された第２の画面を１つの機器に送信する画面送信手段と、を有することを特徴とする。
【００１１】
前述の目的を達成するために、本発明の別の態様の描画システムは、以下の構成を備える。
表示手段に表示する画面の描画処理を、第１の機器と第２の機器とに分担して実行する描画システムであって、第１の機器は、第２の機器から表示する画面の描画内容を決定するための情報を受信する受信手段と、受信手段により受信された描画内容を決定するための情報に応じて、表示する画面の描画処理のうち、第１の処理を含む一部の処理を実行して第１の画面を生成する第１の描画手段と、第２の機器が生成した、描画内容に対応する第２の画面を受信する画面受信手段と、第１の描画手段により生成された第１の画面と、画面受信手段により受信された第２の画面とを合成して表示する画面を生成する合成手段と、を有し、第２の機器は、描画内容を決定するための情報を第１の機器に送信する送信手段と、描画内容を決定するための情報に応じて、第１の画面に描画される描画オブジェクトについて、表示する画面の描画処理のうち、第１の処理を含まず、第１の処理とは異なる第２の処理を含む一部の処理を実行して第２の画面を生成する第２の描画手段と、第２の描画手段により生成された第２の画面を第１の機器に送信する画面送信手段と、を有することを特徴とする。
【発明の効果】
【００１３】
このような構成により本発明によれば、１つの画面についての描画処理を、複数の機器間で分担して効率的に実行することが可能となる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施形態に係る描画システムのシステム構成を示した図
【図２】本発明の実施形態に係るＰＣ１００の機能構成を示したブロック図
【図３】本発明の実施形態に係る描画サーバ２００の機能構成を示したブロック図
【図４】本発明の実施形態１に係るゲーム処理を例示したフローチャート
【図５】本発明の実施形態１に係るクライアント側描画処理を例示したフローチャート
【図６】本発明の実施形態１に係るサーバ側描画処理を例示したフローチャート
【図７】本発明の実施形態２に係るクライアント側描画処理を例示したフローチャート
【発明を実施するための形態】
【００１５】
［実施形態１］
以下、本発明の例示的な実施形態について、図面を参照して詳細に説明する。なお、以下に説明する一実施形態は、描画システムの一例としての、ＰＣ１００において実行されるゲームプログラムに係る画面の描画処理について、予め定められた一部の処理を実行した画面をＰＣ１００に提供する描画サーバ２００とに、本発明を適用した例を説明する。しかし、本発明は、１つの画面に係る描画処理を、複数の機器間で分担して実行可能な任意の機器及びシステムに適用可能である。
【００１６】
＜描画システムの構成＞
図１は、本発明の実施形態に係る描画システムのシステム構成を示す図である。
【００１７】
図示されるように、ＰＣ１００と描画サーバ２００とはインターネット等のネットワーク３００を介して接続されている。本実施形態では描画サーバ２００で実行されるゲームプログラムにおいて、ゲームプログラムに係る画面（ゲーム画面）についての描画処理をＰＣ１００と描画サーバ２００とで分担して処理する。
【００１８】
具体的には１つの画面について、ＰＣ１００は該画面に含まれる描画オブジェクトに対して、グローバルイルミネーションの適用をせずに、テクスチャマッピング（テクスチャリング処理）と基本的な照明モデルを利用した第１の画面の生成を行う。また描画サーバ２００は、ネットワーク３００を介してＰＣ１００から、画面の描画内容を決定するための情報を受信すると、該描画オブジェクトに対して、テクスチャリング処理を適用せずに、グローバルイルミネーションを適用した第２の画面の生成を行う。描画サーバ２００は、ネットワーク３００を介してＰＣ１００に生成した第２の画面を送信し、ＰＣ１００は、受信した第２の画面と生成した第１の画面とを合成して表示するゲーム画面を生成する。そしてＰＣ１００は、該表示する画面を接続されている表示装置に出力する。
【００１９】
このように本実施形態の描画システムでは、２つの機器（ＰＣ１００及び描画サーバ２００）で１つの画面の描画処理を分担し、分担された各処理について別々に画面を生成して合成することで、最終的に描画処理に係る全ての処理が実行された画面を生成する。
【００２０】
なお、グローバルイルミネーションとは、マテリアルに応じた間接的な光の反射や拡散等の振る舞い等を物理学的に正確に再現するレンダリングアルゴリズムである。グローバルイルミネーションは、リアリティのある写実的な画像を描画する場合に適している。グローバルイルミネーションに係る処理は、様々なアルゴリズムにより高速化も図られてはいるが、一般的に計算量が多く、ゲームのように所定の更新フレームレートが求められる場合には、時間内に該計算を完了する能力がハードウェアに要求される。即ち、例えばゲーム等のコンテンツに係るプログラムを実行するコンピュータにおいてグローバルイルミネーションを適用するためには、コンピュータに対して求められる描画性能あるいは計算性能が非常に高く、コンテンツの利用者を制限することになる。
【００２１】
また、本実施形態では描画サーバ２００に接続するクライアント機器として、ＰＣ１００を用いて説明するが、本発明の実施はこれに限られるものではない。例えば描画サーバ２００と接続するクライアント機器は、家庭用ゲーム機、携帯ゲーム機、携帯電話、ＰＤＡ、タブレット等の、第１の画面を描画する描画能力を有する機器であってよい。
【００２２】
＜ＰＣ１００の構成＞
図２は、本発明の実施形態に係るＰＣ１００の機能構成を示すブロック図である。
【００２３】
ＣＰＵ１０１は、ＰＣ１００が有する各ブロックの動作を制御する。具体的にはＣＰＵ１０１は、例えばＲＯＭ１０２や記録媒体１０６に記録されているゲーム処理やクライアント側描画処理の動作プログラムを読み出し、ＲＡＭ１０３に展開して実行することにより、各ブロックの動作を制御する。
【００２４】
ＲＯＭ１０２は、例えば書き換え可能な不揮発性メモリである。ＲＯＭ１０２は、ゲーム処理等の動作プログラムに加え、ＰＣ１００が有する各ブロックの動作に必要な定数等の情報を記憶する。
【００２５】
ＲＡＭ１０３は、揮発性メモリである。ＲＡＭ１０３は、動作プログラムの展開領域としてだけでなく、ＰＣ１００が有する各ブロックの動作において出力された中間データ等を一時的に記憶する格納領域としても用いられる。
【００２６】
ＧＰＵ１０４は、後述する表示部１０８に表示するゲーム画面の生成を行う。ＧＰＵ１０４は、ゲーム画面の描画領域としてビデオメモリ（ＶＲＡＭ）１０５が接続されている。またＧＰＵ１０４は不図示のＧＰＵメモリを有する。ＧＰＵ１０４は、ＣＰＵ１０１より描画命令を受信すると、該描画命令に係る描画オブジェクトを受信してＧＰＵメモリに格納する。そしてＧＰＵ１０４は、描画命令に応じて描画オブジェクトを、接続されたＶＲＡＭ１０５に描画する。本実施形態ではＧＰＵ１０４は、描画処理に含まれる処理のうち、グローバルイルミネーションの適用をせずに、テクスチャリング処理と基本的な照明モデルを利用した第１の画面の生成を行う。
【００２７】
記録媒体１０６は、例えばＨＤＤやＳＳＤ等のＰＣ１００に着脱可能に接続された記録装置である。本実施形態では、記録媒体１０６にはゲーム処理等の動作プログラムに加えて、ゲーム画面に描画される描画オブジェクトについてのモデルデータ（あるいは頂点データ及び結線データ）、テクスチャデータ、設定パラメータ等が記録されているものとする。
【００２８】
通信部１０７は、ＰＣ１００が有する通信インタフェースである。通信部１０７は、ネットワーク３００を介して接続した、描画サーバ２００等の他の機器との間におけるデータ送受信を行う。データ送信時には通信部１０７は、ネットワーク３００あるいは送信先の機器との間で定められたデータ伝送形式にデータを変換し、送信先の機器へのデータ送信を行う。またデータ受信時には通信部１０７は、ネットワーク３００を介して受信したデータを、ＰＣ１００において読み取り可能な任意のデータ形式に変換し、例えばＲＡＭ１０３に記憶させる。
【００２９】
なお、本実施形態ではＰＣ１００と描画サーバ２００とは、ネットワーク３００を介して接続されるものとして説明するが、例えばＰＣ１００と描画サーバ２００とが直接ケーブルにより接続される形態であってもよいことは容易に想像されよう。また、ＰＣ１００と描画サーバ２００とは、それ以外の他の機器を介して接続される形態であってもよい。
【００３０】
表示部１０８は、例えばＬＣＤモニタ等のＰＣ１００に接続された表示装置である。表示部１０８は、入力されたゲーム画面を表示領域に表示する表示制御を行う。なお、表示部１０８は、ラップトップＰＣのようにＰＣ１００に内蔵される表示装置であってもよいし、ケーブルを用いてＰＣ１００に外部接続された表示装置であってもよい。
【００３１】
操作入力部１０９は、例えばマウス、キーボード、ゲームパッド等のＰＣ１００が有するユーザインタフェースである。操作入力部１０９は、ユーザによりユーザインタフェースの操作がなされたことを検出すると、該操作に対応する制御信号をＣＰＵ１０１に対して出力する。
【００３２】
＜描画サーバ２００の構成＞
図３は、本発明の実施形態に係る描画サーバ２００の機能構成を示すブロック図である。
【００３３】
サーバＣＰＵ２０１は、描画サーバ２００が有する各ブロックの動作を制御する。具体的にはサーバＣＰＵ２０１は、例えばサーバＲＯＭ２０２やサーバ記録媒体２０６に記憶されているサーバ側描画処理の動作プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより、各ブロックの動作を制御する。
【００３４】
サーバＲＯＭ２０２は、例えば書き換え可能な不揮発性メモリである。サーバＲＯＭ２０２は、サーバ側描画処理等の動作プログラムに加え、描画サーバ２００が有する各ブロックの動作において必要となる定数等の情報を記憶する。
【００３５】
サーバＲＡＭ２０３は、揮発性メモリである。サーバＲＡＭ２０３は、動作プログラムの展開領域としてだけでなく、描画サーバ２００が有する各ブロックの動作において出力された中間データ等を一時的に記憶する格納領域としても用いられる。
【００３６】
サーバＧＰＵ２０４は、ＰＣ１００の表示部１０８に表示するゲーム画面について、描画処理のうちの、テクスチャリング処理を含まない予め定められた一部の処理を適用した画面（第２の画面）の生成を行う。サーバＧＰＵ２０４には、サーバＶＲＡＭ２０５が接続されている。サーバＧＰＵ２０４は、サーバＣＰＵ２０１より描画命令を受信すると、該描画命令に係る描画オブジェクトを受信してＧＰＵメモリに格納する。サーバＧＰＵ２０４は、接続されたサーバＶＲＡＭ２０５に対して描画を行う場合、描画オブジェクトのキャッシュメモリへの展開を行なった後、該展開後の描画オブジェクトをＶＲＡＭ１０５書き込む。
【００３７】
本実施形態ではサーバＧＰＵ２０４は、ゲーム画面についての描画処理のうち、予め定められた一部の処理として、グローバルイルミネーションを適用する処理を担当する。サーバＧＰＵ２０４は、ゲーム画面の描画内容を決定するための情報として受信した、ゲーム画面に対応するカメラ（視点）の位置及び方向の情報に従って、画面の生成を行う。このときサーバＧＰＵ２０４は、ゲーム画面に含まれる描画オブジェクトについて、テクスチャリング処理を適用せずに、グローバルイルミネーションを適用した第２の画面をサーバＶＲＡＭ２０５に生成する。
【００３８】
サーバ記録媒体２０６は、例えばＨＤＤ等の、描画サーバ２００に着脱可能に接続される記録装置である。本実施形態ではサーバ記録媒体２０６には、描画処理において画面の生成に用いるモデルデータや光源情報等が記録されているものとする。なお、サーバ記録媒体２０６に記録されるモデルデータは、ＰＣ１００の記録媒体１０６に記録されているものと同一である。
【００３９】
また本実施形態では、描画サーバ２００は上述したように描画内容を決定するための情報としてゲーム画面に対応するカメラの位置及び方向を示す情報を、ＰＣ１００から受信する。つまり、サーバＧＰＵ２０４はカメラの位置及び方向の情報に基づいて、ゲーム画面に含まれる描画オブジェクトを特定する必要がある。このためサーバ記録媒体２０６には、ゲーム画面に含まれる描画オブジェクトとして、ＰＣ１００におけるゲーム処理と同一の描画オブジェクトを特定する処理プログラムが記録される。該処理プログラムは、ゲーム処理と同一であってもよいし、ゲーム処理とは異なるが、カメラの位置及び方向の情報からゲーム画面に含まれる描画オブジェクト及びその位置・回転情報等のパラメータを特定するプログラムであってよい。
【００４０】
サーバ通信部２０７は、描画サーバ２００が有する通信インタフェースである。本実施形態ではサーバ通信部２０７は、ネットワーク３００を介して接続したＰＣ１００等の、他の機器との間におけるデータ送受信を行う。なお、サーバ通信部２０７は通信部１０７と同様に、通信仕様に従ったデータ形式の変換を行う。
【００４１】
＜ゲーム処理＞
このような構成をもつ本実施形態の描画システムのＰＣ１００において実行される、基本的なゲーム処理について、図４のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、ＣＰＵ１０１が、例えば記録媒体１０６に記録されている対応する処理プログラムを読み出し、ＲＡＭ１０３に展開して実行することにより実現することができる。なお、本ゲーム処理は、例えばＰＣ１００においてゲーム処理に対応するアプリケーションの実行指示がなされた際に開始され、ゲームの１フレームごとに繰り返し実行されるものとして説明する。
【００４２】
なお、本実施形態では説明を簡単にするため、ＰＣ１００において実行されるゲームコンテンツは、操作対象のキャラクタの一人称視点がゲーム画面として提供される、所謂ＦＰＳ（First Person Shooter）等のゲームであるものとする。また、ゲーム画面に含まれるキャラクタ等の描画オブジェクトの移動やアクションは、発生しない、あるいは時間等の一意に決定される変数に応じて定義できるものとする。即ち、本実施形態のＰＣ１００において実行されるゲームコンテンツは、ゲーム画面に対応するカメラの位置及び方向を示す情報のみで、ゲーム画面に含まれる描画オブジェクトを特定可能である。つまり、ＰＣ１００のゲーム処理により規定されたゲーム画面は、カメラの位置及び方向を示す情報のみで描画サーバ２００においても同様の画面を規定することができる。
【００４３】
しかしながら、本発明の実施はこのようなＦＰＳゲーム等の一人称視点のゲーム画面を提供するものに限られず、描画処理により得られた画面を提供する他のコンテンツについても適用可能である。例えば、画面内にユーザからの操作入力に応じて、あるいはランダムイベントにより、ゲーム画面内に含まれる描画オブジェクトの移動やアクションが発生する場合は、フレームにおける各描画オブジェクトの移動やアクションを定義するパラメータが、カメラの位置及び方向とは別に描画内容を決定するための情報として描画サーバ２００に送信されればよい。またユーザからの操作入力が直接描画サーバ２００に送信されてもよい。
【００４４】
Ｓ４０１で、ＣＰＵ１０１は、ゲーム画面を規定する、カメラの位置及び方向を変更する操作入力がユーザによりなされたか否かを判断する。具体的にはＣＰＵ１０１は、カメラの位置及び方向を変更する操作入力に対応する制御信号を、操作入力部１０９から受信したか否かを判断することにより、該操作入力がなされたか否かを判断する。ＣＰＵ１０１は、ゲームについての操作入力がなされたと判断した場合は処理をＳ４０２に移し、なされていないと判断した場合は処理をＳ４０３に移す。
【００４５】
Ｓ４０２で、ＣＰＵ１０１は、カメラの位置及び方向を変更する操作入力に応じて、例えばＲＡＭ１０３に格納されているカメラの位置及び方向を示す情報（描画カメラパラメータ）を更新する。
【００４６】
Ｓ４０３で、ＣＰＵ１０１は、ＲＡＭ１０３に格納されている描画カメラパラメータを描画内容を決定するための情報として描画サーバ２００に送信する。具体的にはＣＰＵ１０１は、ＲＡＭ１０３から描画カメラパラメータを読み出し、通信部１０７に伝送して描画サーバ２００に送信させる。
【００４７】
Ｓ４０４で、ＣＰＵ１０１は、ＲＡＭ１０３に格納されている描画カメラパラメータに従って、ゲーム画面に係る第１の画面の描画を行うクライアント側描画処理を実行する。
【００４８】
（クライアント側描画処理）
ここで、本実施形態のＰＣ１００において実行される、クライアント側描画処理について、図５のフローチャートを用いて具体的な処理を説明する。
【００４９】
Ｓ５０１で、ＣＰＵ１０１は、描画するゲーム画面に含まれる描画オブジェクトを特定する。具体的にはＣＰＵ１０１は、ＲＡＭ１０３から描画カメラパラメータを読み出し、該描画カメラパラメータにより規定される、ワールド上の描画範囲の情報を算出する。そしてＣＰＵ１０１は、該描画範囲に含まれる描画オブジェクトを、例えばワールドに分布する描画オブジェクトの配置位置の情報に基づいて特定する。
【００５０】
Ｓ５０２で、ＣＰＵ１０１は、所定の描画順決定方法により決定された描画順に応じて、まだ描画がなされていない描画オブジェクトを選択する。そしてＣＰＵ１０１は、該描画オブジェクトについての描画命令をＧＰＵ１０４に伝送する。またＣＰＵ１０１は、該描画オブジェクトのモデルデータ（あるいは頂点データ及び結線データ）、テクスチャデータ、及び描画オブジェクトについての位置・回転情報のパラメータを記録媒体１０６から読み出し、ＧＰＵ１０４に転送する。なお、本ステップで選択される描画オブジェクトには、背景オブジェクトも含まれるものとする。ＧＰＵ１０４は、転送された描画オブジェクトについての情報をＧＰＵメモリに格納する。
【００５１】
Ｓ５０３で、ＧＰＵ１０４はＣＰＵ１０１の制御のもと、選択された描画オブジェクトについての位置・回転情報のパラメータに従って、ＧＰＵメモリに格納されたモデルデータを移動及び回転させる。具体的にはＧＰＵ１０４は、選択された描画オブジェクトの各頂点に対し、位置・回転情報のパラメータに対応する空間座標を定義する。
【００５２】
Ｓ５０４で、ＧＰＵ１０４はＣＰＵ１０１の制御のもと、Ｓ５０３で移動及び回転させたモデルデータの各ポリゴンに対して、ＧＰＵメモリに格納したテクスチャデータを用いてテクスチャマッピング（テクスチャリング処理）を行い、ＶＲＡＭ１０５のフレームバッファに描画する。なお、本クライアント側描画処理において描画する描画オブジェクトの各々については、反射等の光源計算を行わず、各頂点は予め定められた固定値等で明るさが定義されて描画されるものとする。
【００５３】
Ｓ５０５で、ＣＰＵ１０１は、描画範囲に含まれる描画オブジェクトの全てについて、ＧＰＵ１０４によるＶＲＡＭ１０５への描画が完了したか否かを判断する。ＣＰＵ１０１は、全ての描画オブジェクトのＶＲＡＭ１０５への描画が完了したと判断した場合は本クライアント側描画処理を終了し、完了していないと判断した場合は処理をＳ５０２に戻す。
【００５４】
このようにクライアント側描画処理が実行されることにより、グローバルイルミネーションを適用せず、テクスチャリング処理と基本的な照明モデルを利用して生成された第１の画面が得られる。
【００５５】
Ｓ４０５で、ＣＰＵ１０１は、ゲーム画面に係るテクスチャリング処理を適用せずに、グローバルイルミネーションを適用して生成された第２の画面を受信したか否かを判断する。具体的にはＣＰＵ１０１は、通信部１０７がネットワーク３００を介して描画サーバ２００から第２の画面を受信したか否かを判断する。ＣＰＵ１０１は、第２の画面を受信したと判断した場合は処理をＳ４０６に移し、受信していないと判断した場合は本ステップの処理を繰り返す。
【００５６】
なお、本実施形態では第１の画面及び第２の画面の生成は１フレーム内で実行されるものとして説明するが、本発明の実施はこれに限られるものではない。例えば第２の画面の生成が１フレーム内に完了しない場合、Ｓ４０４で実行したクライアント側描画処理により得られた第１の画面と、本ステップで受信した第２の画面とが、同一のフレームのゲーム画面について描画されたものであるかを判別するため、第２の画面には描画しているフレームを識別するフレーム識別情報が含まれていてもよい。この場合、ＣＰＵ１０１はＳ４０３において描画内容を決定するための情報を送信する際に、フレーム識別情報を含める。そして描画サーバ２００において第２の画面が生成されてＰＣ１００に対して送信される際に、サーバＣＰＵ２０１により該フレーム識別情報が関連付けられるものとする。即ち、ＣＰＵ１０１は、通信部１０７が受信した画面に関連付けられているフレーム識別情報を参照することで、受信した画面が同一のフレームのゲーム画面について描画されたものであるかを判別することができる。
【００５７】
Ｓ４０６で、ＣＰＵ１０１は、受信した第２の画面と第１の画面とを合成して、表示部１０８に表示する最終的なゲーム画面を例えばＶＲＡＭ１０５に生成する。具体的には、第１の画面及び第２の画面は、例えばＲ成分、Ｇ成分、及びＢ成分の画像で構成されており、各色の画像について同一画素位置の画素の合成を行うことにより、最終的なゲーム画面に係る各色の画像を生成する。なお、各画素の画素値は正規化された値であり、画素の合成は例えば画素値の乗算を行うことにより実行されればよい。
【００５８】
Ｓ４０７で、ＣＰＵ１０１は、Ｓ４０６で生成した最終的なゲーム画面を、表示部１０８に転送し、表示画面に表示させる。
【００５９】
＜サーバ側描画処理＞
一方、描画サーバ２００において実行される、ゲーム画面に係る第２の画面の描画を行うサーバ側描画処理について、図６のフローチャートを用いて具体的な処理を説明する。該フローチャートに対応する処理は、サーバＣＰＵ２０１が、例えばサーバ記録媒体２０６に記録されている対応する処理プログラムを読み出し、サーバＲＡＭ２０３に展開して実行することにより実現することができる。なお、本サーバ側描画処理は、例えばゲーム画面の描画内容を決定するための情報である描画カメラパラメータを、サーバ通信部２０７が受信したことをサーバＣＰＵ２０１が検出した際に開始されるものとして説明する。また、サーバ通信部２０７が受信した描画カメラパラメータは、サーバＣＰＵ２０１によりサーバＲＡＭ２０３に格納されるものとして以下は説明する。
【００６０】
Ｓ６０１で、サーバＣＰＵ２０１は、描画するゲーム画面に含まれる描画オブジェクトを特定する。具体的にはサーバＣＰＵ２０１は、サーバＲＡＭ２０３から描画カメラパラメータを読み出し、該描画カメラパラメータにより規定される、ワールド上の描画範囲の情報を算出する。そしてサーバＣＰＵ２０１は、該描画範囲に含まれる描画オブジェクトを、ＰＣ１００と同様にワールドに分布する描画オブジェクトの配置位置の情報に基づいて特定する。
【００６１】
Ｓ６０２で、サーバＣＰＵ２０１は、所定の描画順決定方法により決定された描画順に応じて、まだ描画がなされていない描画オブジェクトを選択する。そしてサーバＣＰＵ２０１は、該描画オブジェクトについての描画命令をサーバＧＰＵ２０４に伝送する。またサーバＣＰＵ２０１は、該描画オブジェクトのモデルデータ、及び位置・回転情報のパラメータを記録媒体１０６より読み出し、サーバＧＰＵ２０４に転送する。サーバＧＰＵ２０４は、転送された描画オブジェクトについての情報をＧＰＵメモリに格納する。
【００６２】
Ｓ６０３で、サーバＧＰＵ２０４はサーバＣＰＵ２０１の制御のもと、選択された描画オブジェクトについての位置・回転情報のパラメータに従って、ＧＰＵメモリに格納されたモデルデータを移動及び回転させ空間座標を定義する。
【００６３】
Ｓ６０４で、サーバＣＰＵ２０１は、描画範囲に含まれる描画オブジェクトの全てについて、空間座標の定義が完了したか否かを判断する。サーバＣＰＵ２０１は、全ての描画オブジェクトの空間座標の定義が完了したと判断した場合は処理をＳ６０５に移し、完了していないと判断した場合は処理をＳ６０２に戻す。
【００６４】
Ｓ６０５で、サーバＧＰＵ２０４はサーバＣＰＵ２０１の制御のもと、グローバルイルミネーションを適用する処理を行う。まずサーバＣＰＵ２０１は、描画範囲あるいはその周辺について適用される光源の位置・方向・種類を示す情報（光源情報）をサーバ記録媒体２０６より読み出し、サーバＧＰＵ２０４に伝送する。サーバＧＰＵ２０４は、光源情報を受け取ると空間座標を定義した描画オブジェクトについて、例えばフォトンマッピング法やラジオシティ法等、光源情報に基づいたグローバルイルミネーションに係る計算処理を実行する。そしてサーバＧＰＵ２０４は、グローバルイルミネーションを適用した第２の画面をサーバＶＲＡＭ２０５に描画する。
【００６５】
Ｓ６０６で、サーバＣＰＵ２０１は、サーバＧＰＵ２０４により描画された第２の画面を取得してサーバ通信部２０７に伝送し、ＰＣ１００に対して送信させる。なお、本実施形態のように、ゲーム画面の提供が連続した動画データとして行われる構成においては、描画サーバ２００からＰＣ１００に対して送信される第２の画面の形態は、画像データ形式に限られなくてもよい。即ち、連続して画面の送信が行われることを考えると、サーバＣＰＵ２０１は、生成された第２の画面について、前後のフレーム等を参照したフレーム間予測等を含む符号化処理を実行した上で得られた符号化動画データを、ＰＣ１００に対して送出する形であってもよい。
【００６６】
このように、本実施形態の描画システムは、ゲーム画面の描画処理を、テクスチャリング処理を行なう第１の画面と、グローバルイルミネーションを適用する第２の画面とに分けて生成することができる。つまり、描画処理において計算性能が要求されるグローバルイルミネーションについては、計算資源に余裕を持たせた設計が可能な描画サーバに割り当てることで、クライアント機器の描画性能に依らず、品質の高いゲーム画面の提供を行うことが可能である。
【００６７】
なお、本実施形態ではクライアント機器であるＰＣ１００と描画サーバ２００とが通信接続されていることを前提として説明したが、例えば通信が切断された場合は、合成を行わずに第１の画面を提供する形態であってもよい。また、通信接続されているか否かによって、ＰＣ１００において描画する第１の画面の描画処理を切り替える構成であっても良い。即ち、描画サーバ２００との通信が可能でない場合は、ＰＣ１００の描画性能に応じた光源計算を行なったゲーム画面を描画して提供する。一方、描画サーバ２００との通信が可能である場合は、ＰＣ１００においては光源計算を行わず、グローバルイルミネーションを適用した第２の画面との合成を行うことで、光源の再現度が高い、高品質なゲーム画面を提供する形態であってもよい。
【００６８】
この場合、例えばネットワーク上の描画サーバ２００に描画処理を分担して得られた画像を使用して、ゲーム画面の高品質化が行われていることを、ＰＣ１００の表示部１０８に表示することでユーザに通知してもよい。また逆に、ネットワーク上の描画サーバ２００と通信ができず、ゲーム画面の高品質化を行わず、ＰＣ１００のみで描画処理を行なって得られたゲーム画面が表示されていることを、表示部１０８に表示することで通知してもよい。
【００６９】
また、グローバルイルミネーションを適用したゲーム画面の提供は、ユーザにより切り替えられるものであってもよい。
【００７０】
［実施形態２］
上述した実施形態では、クライアント機器であるＰＣ１００においてゲーム進行を管理する場合の、ＰＣ１００及び描画サーバ２００の各々における描画処理について説明した。本実施形態では、サーバ機器である描画サーバ２００においてゲーム進行を管理するゲーム処理を実行する場合の、各機器における描画処理について以下に説明する。
【００７１】
＜ゲーム処理＞
まず上述の実施形態１と同様の構成をもつ、本実施形態の描画システムの描画サーバ２００において実行される、基本的なゲーム処理について説明する。ゲーム処理は、例えば描画サーバ２００が起動された際にサーバＣＰＵ２０１により実行が開始され、ゲームの１フレームごとに繰り返し実行されるものとして説明する。
【００７２】
本実施形態の描画サーバ２００において実行されるゲーム処理は、上述の実施形態１のＰＣ１００において実行されるゲーム処理と略同一であるため、処理の詳細な説明については省略し、異なる点のみについて説明する。
【００７３】
実施形態１のゲーム処理では、ゲーム画面を規定する、カメラの位置及び方向を変更する操作入力がユーザによりなされたことを受けて、ＰＣ１００においてＣＰＵ１０１がカメラの位置及び方向を示す描画カメラパラメータへの変更及び更新を行なった。本実施形態では、該描画カメラパラメータの変更及び更新は描画サーバ２００においてサーバＣＰＵ２０１が実行する。このため、ＰＣ１００において検出されたカメラの位置及び方向を変更する操作入力を示す情報は通信部１０７を介して描画サーバ２００に伝送され、サーバＣＰＵ２０１は該操作入力を示す情報に基づいて、描画カメラパラメータを変更及び更新する。
【００７４】
また描画カメラパラメータの決定後、サーバＣＰＵ２０１は描画カメラパラメータをサーバ通信部２０７を介してＰＣ１００に伝送する。このとき、ＣＰＵ１０１は通信部１０７が描画カメラパラメータを受信したことを検出すると、後述するクライアント側描画処理を実行する。またサーバＣＰＵ２０１は、描画カメラパラメータの決定後、該パラメータを使用して上述した実施形態１と同様のサーバ側描画処理を実行し、１フレームに係るゲーム処理を完了する。
【００７５】
＜クライアント側描画処理＞
以下、本実施形態のＰＣ１００において実行されるクライアント側描画処理について、図７のフローチャートを用いて具体的な処理を説明する。なお、上述したように本クライアント側描画処理は、通信部１０７が描画カメラパラメータを受信したことをＣＰＵ１０１が検出した際に開始されるものとして説明する。また、本実施形態のクライアント側描画処理側描画処理において、上述した実施形態１と同様の処理を行うステップについては同一の参照符号を付して説明を省略し、本実施形態に特徴的な処理の説明に留める。
【００７６】
Ｓ５０４における描画オブジェクトの描画がなされた後、ＣＰＵ１０１はＳ７０１で、描画範囲に含まれる描画オブジェクトの全てについて、ＧＰＵ１０４によるＶＲＡＭ１０５への描画が完了したか否かを判断する。ＣＰＵ１０１は、全ての描画オブジェクトのＶＲＡＭ１０５への描画が完了したと判断した場合は処理をＳ７０２に移し、完了していないと判断した場合は処理をＳ５０２に戻す。
【００７７】
Ｓ７０２で、ＣＰＵ１０１は、ゲーム画面に係るテクスチャリング処理を適用せずに、グローバルイルミネーションを適用して生成された第２の画面を受信したか否かを判断する。具体的にはＣＰＵ１０１は、通信部１０７がネットワーク３００を介して描画サーバ２００から第２の画面を受信したか否かを判断する。ＣＰＵ１０１は、第２の画面を受信したと判断した場合は処理をＳ７０３に移し、受信していないと判断した場合は本ステップの処理を繰り返す。
【００７８】
Ｓ７０３で、ＣＰＵ１０１は、受信した第２の画面と第１の画面とを合成して、表示部１０８に表示する最終的なゲーム画面を例えばＶＲＡＭ１０５に生成する。具体的には、第１の画面及び第２の画面は、例えばＲ成分、Ｇ成分、及びＢ成分の画像で構成されており、各色の画像について同一画素位置の画素の合成を行うことにより、最終的なゲーム画面に係る各色の画像を生成する。
【００７９】
Ｓ７０４で、ＣＰＵ１０１は、Ｓ７０３で生成した最終的なゲーム画面を、表示部１０８に転送し、表示画面に表示させる。
【００８０】
このようにすることで、ネットワークゲームのようにゲーム進行の管理をサーバ側で行う形態であっても、本発明を適用して、効率的に描画処理を分散させ、かつグローバルイルミネーションが適用された高品質のゲーム画面をクライアント機器においてユーザに提供することができる。
【００８１】
なお、本実施形態のようにサーバがゲーム進行を管理する場合、以下のような利点がある。例えばサーバ機器が複数のクライアント機器に対してゲーム画面の提供を同時に行う場合、応答性が要求されるゲームコンテンツ等では、サーバ機器における描画処理の計算負荷が高くなる。即ち、サーバ機器は描画性能及び要求される応答性に応じて、画面を提供可能なクライアント機器数が限られることになる。これに対し、クライアント機器にも一般的な描画性能で実行可能な処理を実行させ、サーバ機器とクライアント機器との間で描画処理を分担することにより、より多くのクライアント機器に画面を提供できる。また一般的にテクスチャマッピングを適用しないで描画されたゲーム画面は、圧縮効率が高く、インターネット等のネットワークを通じて、少ない帯域量で送信できる。
【００８２】
また、上述した実施形態１及び２では、描画処理の予め定められた一部の処理を、テクスチャリング処理に比べて計算負荷が高く、より高い計算性能を必要とするグローバルイルミネーションの適用処理として説明したが、本発明の実施はこれに限られるものではない。本発明は、複数の機器間における、１つの画面についての描画処理を分担して実行した結果、それぞれの機器において生成された１つの画面に係る複数の画像を合成することで、１つの機器で描画処理を行なった場合と同様の画面の生成するものである。即ち、本発明は、１つの画面に係る描画処理を複数の機器に分担した結果、複数の機器の各々から得られた画像を単純な処理で合成することで、所望の１つの画面を得るものであれば適用可能である。例えば、本実施形態で説明したような光源計算（シェーディング処理）や、エフェクトを与える描画オブジェクトの重畳等、少なくともテクスチャリング処理（第１の処理）が適用された描画オブジェクトが描画された第１の画面に対して、後付けで重畳可能な画像を生成する処理（第２の処理）であれば、第１の画面を描画する機器とは異なる機器に分担して実行させてよい。
【００８３】
なお、上述した実施形態では、基本的な照明モデルを利用する描画処理についてはクライアント機器において実行されるものとして説明したが、現状のゲームコンソールで普及している描画方式であるシェーダアーキテクチャを利用する描画処理についても、本発明の適用は可能である。基本的なシェーダアーキテクチャを利用した描画処理には、一般的にバーテックスシェーダ、ジオメトリシェーダ、ピクセルシェーダが含まれる。このうち、テクスチャマッピングを行なった描画オブジェクトの描画を行うために最低限必要なバーテックスシェーダ、ジオメトリシェーダについてはクライアント機器において実行し、バンプマッピング、スペキュラーマッピング、反射マッピング等を含むエフェクトの適用を行うピクセルシェーダについては、描画サーバに分担する形であってもよい。
【００８４】
また、本実施形態では描画処理を２つの機器に分担して実行する場合についてのみ説明したが、本発明の実施はこれに限らず、２以上の機器に描画処理を分担して１つの画面を生成するものであれば適用可能であることは容易に想像されよう。なお、この場合、各機器に分担される描画処理は、各機器の描画処理の結果の画像を上述したように単純に合成することで最終的な１つの画面を生成可能なように分担されるものとする。
【００８５】
また本発明は、上述した実施形態で説明した、３次元シーンを２次元画像に描画する描画処理のように、１つの画面を生成する際に、都度計算処理を行って描画処理が行われるケースについて適用されることが好ましい。しかしながら、本発明の実施はこれに限られず、例えば静止画像について、描画サーバが該静止画像の解析を行ない、輝度補正を行うフィルタを画像として送信し、クライアント機器において静止画像とフィルタの合成が行われる構成であってもよい。
【００８６】
以上説明したように、本発明の描画システムは、１つの画面についての描画処理を、複数の機器間で分担して効率的に実行することができる。具体的には描画システムは、表示装置に表示する画面の描画処理を、複数の機器に分担して実行する。複数の機器のうちの１つの機器は、表示する画面の描画内容を決定するための情報を、複数の機器のうちの１つの機器を除く機器の各々に送信する。また該１つの機器は、描画内容を決定するための情報に応じて、表示する画面の描画処理のうち、第１の処理を含む一部の処理を実行して第１の画面を生成する。一方、１つの機器を除く機器の各々は、該１つの機器から描画内容を決定するための情報を受信すると、該情報に応じて、表示する画面の描画処理のうち、第１の処理を含まず、第１の処理とは異なる第２の処理を含む一部の処理を実行して第２の画面を生成して１つの機器に送信する。そして１つの機器は、該１つの機器を除く機器の各々が生成した第２の画面を受信し、第１の画面と第２の画面とを合成して表示する画面を生成する。
【００８７】
このように１つの画面についての描画処理を他の機器に分担して実行させることができ、その分担した描画処理による効果を、合成処理により容易に適用することができるため、例えばクライアント機器の描画性能によらず、リッチ化したゲーム画面の提供を行うことができる。
【図１】
0005977023.tif 000002
【図２】
0005977023.tif 000003
【図３】
0005977023.tif 000004
【図４】
0005977023.tif 000005
【図５】
0005977023.tif 000006
【図６】
0005977023.tif 000007
【図７】
0005977023.tif 000008