(57)【要約】【課題】光のにじみを仮想カメラの動きに追従させてリアルに表現することができる画像生成システム、プログラム及び情報記憶媒体を提供する。【解決手段】フレーム毎にオブジェクト空間を仮想カメラから見た画像を生成するための画像生成システムであって、所定の制御情報に基づいて、仮想カメラをオブジェクト空間内で移動させる制御を行う仮想カメラ制御部１１４と、仮想カメラから見たオブジェクト空間を描画した原画像に対してフィルタ画像を合成するフィルタ処理を行うフィルタ処理部１２２と、を含み、フィルタ処理部１２２が、第Ｎのフレームにおいてフィルタ画像を生成する際に、第Ｎのフレームで描画した原画像に対して、所与の基準色より明るい色のピクセルを抽出する抽出処理と、ピクセルの色を周辺ピクセルの色と平滑化するぼかし処理とを施してワーク画像を生成するとともに、生成されたワーク画像と、第Ｎ−１のフレームにおいて生成されたフィルタ画像とを合成する。【選択図】図１
2008077406.tif 000002
【特許請求の範囲】
【請求項１】
フレーム毎にオブジェクト空間を仮想カメラから見た画像を生成するためのプログラムであって、
所定の制御情報に基づいて、前記仮想カメラを前記オブジェクト空間内で移動させる制御を行う仮想カメラ制御部と、
前記仮想カメラから見た前記オブジェクト空間を描画した原画像に対してフィルタ画像を合成するフィルタ処理を行うフィルタ処理部として、
コンピュータを機能させ、
前記フィルタ処理部が、
第Ｎのフレームにおいて前記フィルタ画像を生成する際に、第Ｎのフレームで描画した原画像に対して、所与の基準色より明るい色のピクセルを抽出する抽出処理と、ピクセルの色を周辺ピクセルの色と平滑化するぼかし処理とを施してワーク画像を生成するとともに、当該ワーク画像と、第Ｎ−１のフレームにおいて生成された前記フィルタ画像とを合成することを特徴とするプログラム。
【請求項２】
請求項１において、
前記フィルタ処理部が、
前記第Ｎのフレームにおいて生成された前記ワーク画像と、前記第Ｎ−１のフレームにおいて生成された前記フィルタ画像との合成率を、フレーム間での前記仮想カメラの移動量に応じて設定することを特徴とするプログラム。
【請求項３】
請求項１または２において、
前記コンピュータが、第１の内部バスを介してビデオメモリにアクセス可能であるとともに、第２の内部バスを介してメインメモリにアクセス可能である描画プロセッサを含む場合に、前記描画プロセッサを前記フィルタ処理部として機能させ、
前記フィルタ処理部が、
前記原画像が生成された前記ビデオメモリ又は前記メインメモリの一方のメモリとは異なる他方のメモリに前記フィルタ画像を生成し、前記他方のメモリに生成された前記フィルタ画像を前記一方のメモリに生成された前記原画像に加算合成することを特徴とするプログラム。
【請求項４】
コンピュータにより読み取り可能な情報記憶媒体であって、請求項１〜３のいずれかに記載のプログラムを記憶していることを特徴とする情報記憶媒体。
【請求項５】
フレーム毎にオブジェクト空間を仮想カメラから見た画像を生成するための画像生成システムであって、
所定の制御情報に基づいて、前記仮想カメラを前記オブジェクト空間内で移動させる制御を行う仮想カメラ制御部と、
前記仮想カメラから見た前記オブジェクト空間を描画した原画像に対してフィルタ画像を合成するフィルタ処理を行うフィルタ処理部と、
を含み、
前記フィルタ処理部が、
第Ｎのフレームにおいて前記フィルタ画像を生成する際に、第Ｎのフレームで描画した原画像に対して、所与の基準色より明るい色のピクセルを抽出する抽出処理と、ピクセルの色を周辺ピクセルの色と平滑化するぼかし処理とを施してワーク画像を生成するとともに、当該ワーク画像と、第Ｎ−１のフレームにおいて生成された前記フィルタ画像とを合成することを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【背景技術】
【０００２】
従来より、仮想的な３次元空間であるオブジェクト空間において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。レースゲームを楽しむことができる画像生成システムを例に取れば、プレーヤは、操作部（ゲームコントローラ等）を用いて移動体（車、船、飛行機等）に関する操作（ステアリング操作、シフト操作、アクセル操作、ブレーキ操作等）を行い、他のプレーヤ（コンピュータプレーヤも含まれる）の移動体と順位やタイムを競争することでレースゲームを楽しむ。
【０００３】
ところで、上述した画像生成システムに関して、一度描画した画像（原画像）に対して、さらなる処理を施して、原画像とは異なる雰囲気の画像を作成することができるフィルタ手法が開発されている。例えば、フレームバッファに描画した画像中から所定の色情報を抽出して中間画像を生成してから、中間画像の色情報を平滑化して平滑化像を生成し、平滑化画像をフレームバッファに描画した原画像に合成することで、視線方向に入射する強い光のにじみを表現するフィルタ手法などが提案されている（特許文献１参照）。
【特許文献１】特開２００３−８５５７８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来から提案されているフィルタ手法では、仮想カメラの動きが考慮されていなかったため、人間の視覚特性に基づく光のにじみの見え方が十分に表現されていなかった。
【０００５】
本出願は上記事情に鑑みてなされたものであり、その目的は、光のにじみを仮想カメラの動きに追従させてリアルに表現することができる画像生成システム、プログラム及び情報記憶媒体を提供することにある。また本発明の他の目的は、フィルタ処理を高速に実行することができるようにした画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００６】
（１）本発明は、フレーム毎にオブジェクト空間を仮想カメラから見た画像を生成するための画像生成システムであって、所定の制御情報に基づいて、前記仮想カメラを前記オブジェクト空間内で移動させる制御を行う仮想カメラ制御部と、前記仮想カメラから見た前記オブジェクト空間を描画した原画像に対してフィルタ画像を合成するフィルタ処理を行うフィルタ処理部と、を含み、前記フィルタ処理部が、第Ｎのフレームにおいて前記フィルタ画像を生成する際に、第Ｎのフレームで描画した原画像に対して、所与の基準色より明るい色のピクセルを抽出する抽出処理と、ピクセルの色を周辺ピクセルの色と平滑化するぼかし処理とを施してワーク画像を生成するとともに、当該ワーク画像と、第Ｎ−１のフレームにおいて生成された前記フィルタ画像とを合成する画像生成システムに関するものである。また本発明は、上記各部としてコンピュータを機能させるプログラム及びそのようなプログラムを記憶するコンピュータに読み取り可能な情報記憶媒体に関するものである。
【０００７】
本発明によれば、原画像に対して抽出処理とぼかし処理とを施してワーク画像を生成し、現在のフレームで生成したワーク画像と前回のフレームで生成したフィルタ画像とを合成することによって現在のフレームで描画した原画像にフィルタ処理を施すためのフィルタ画像を生成している。このため本発明によれば、フレーム間で仮想カメラが動いた場合には、原画像によって描かれるオブジェクト空間のシーンが変化することを利用して、フィルタ画像において光のにじみを仮想カメラの動きに追従させることができるようになる。
【０００８】
（２）本発明の画像生成システム、プログラム及び情報記憶媒体では、前記フィルタ処理部が、前記第Ｎのフレームにおいて生成された前記ワーク画像と、前記第Ｎ−１のフレームにおいて生成された前記フィルタ画像との合成率を、フレーム間での前記仮想カメラの移動量に応じて設定するようにしてもよい。
【０００９】
「仮想カメラの移動量に応じて」とは、仮想カメラが移動した場合にはワーク画像とフィルタ画像との合成率が変化することを意味し、例えば、仮想カメラ自体の移動量を監視して合成率を設定してもよいし、また例えば、仮想カメラの向きを決定する注視点に追従するように仮想カメラの向きだけではなく仮想カメラの位置も制御される場合には、注視点の移動量を監視して合成率を設定してもよい。
【００１０】
このようにすれば、例えば、仮想カメラの移動量が大きいほど前回のフレームで生成されたフィルタ画像の合成率が高くなるようにするなど、フレーム間で仮想カメラが動く速度に応じて適切な合成率を設定することができるので、よりリアルな表現をすることができるようになる。
【００１１】
（３）また本発明の画像生成システムでは、前記コンピュータが、第１の内部バスを介してビデオメモリにアクセス可能であるとともに、第２の内部バスを介してメインメモリにアクセス可能である描画プロセッサを含む場合に、前記描画プロセッサを構成する前記フィルタ処理部が、前記原画像が生成された前記ビデオメモリ又は前記メインメモリの一方のメモリとは異なる他方のメモリに前記フィルタ画像を生成し、前記他方のメモリに生成された前記フィルタ画像を前記一方のメモリに生成された前記原画像に加算合成するようにしてもよい。また本発明のプログラム及び情報記憶媒体では、上記フィルタ処理部としてコンピュータの描画プロセッサを機能させるようにしてもよい。
【００１２】
このようにすれば、描画プロセッサが画像データをメモリに書き込んだり、描画プロセッサが画像データをメモリから読み出したりする際における内部バスに対する負荷を分散することができるため、内部バスの帯域の利用効率を高めることができる。
【発明を実施するための最良の形態】
【００１３】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００１４】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００１５】
操作部１６０は、プレーヤがプレーヤオブジェクト（移動体オブジェクトの一例、プレーヤが操作するプレーヤ車両など）の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（メインメモリ１７２）、ＶＲＡＭ（ビデオメモリ１７４）などにより実現できる。
【００１６】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００１７】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００１８】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００１９】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０のメインメモリ１７２）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００２０】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０内のメインメモリ１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ（メインプロセッサ）、ＧＰＵ（描画プロセッサ）、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００２１】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００２２】
オブジェクト空間設定部１１０は、オブジェクトデータ記憶部１７２に記憶されているオブジェクトデータに基づいて、車、キャラクタ、建物、球場、樹木、柱、壁、コース（道路）、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、決定された位置（Ｘ、Ｙ、Ｚ）に決定された回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００２３】
移動・動作処理部１１２は、オブジェクト（車、キャラクタ、又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。すなわち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００２４】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。
【００２５】
例えば仮想カメラによりオブジェクト（例えば車、キャラクタ、ボール）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報（所定の制御情報の一例）に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させたりする制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータ（所定の制御情報の一例）に基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００２６】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）がオブジェクトデータ記憶部１７２Ｂから入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色をレンダリングターゲット（ピクセル単位で画像情報を記憶できるバッファ。メインメモリ１７２のフレームバッファ１７２Ｂ、ビデオメモリ１７４の縮小バッファ１７４Ｃやフレームバッファ１７４Ｄ）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００２７】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００２８】
そして描画部１２０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００２９】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、メインメモリ１７２のオブジェクトデータ記憶部１７２Ａに保存される。
【００３０】
テクスチャマッピングは、ビデオメモリ１７４のデカールテクスチャ記憶部１７４Ａに記憶されるデカールテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いてビデオメモリ１７４のデカールテクスチャ記憶部１７４Ａからテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間、トライリニア補間などを行う。
【００３１】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７４Ｂ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファ１７４Ｂに格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファ１７４ＢのＺ値を新たなＺ値に更新する。
【００３２】
αブレンディングとしては、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）を行う。例えば通常αブレンディングの場合には下式（１）〜（３）の処理を行う。
【００３３】
ＲＱ＝（１−α）×Ｒ１＋α×Ｒ２    （１）
ＧＱ＝（１−α）×Ｇ１＋α×Ｇ２    （２）
ＢＱ＝（１−α）×Ｂ１＋α×Ｂ２    （３）
また、加算αブレンディングの場合には下式（４）〜（６）の処理を行う。なお単純加算の場合はα＝１として下式（４）〜（６）の処理を行う。
【００３４】
ＲＱ＝Ｒ１＋α×Ｒ２                （４）
ＧＱ＝Ｇ１＋α×Ｇ２                （５）
ＢＱ＝Ｂ１＋α×Ｂ２                （６）
また、減算αブレンディングの場合には下式（７）〜（９）の処理を行う。なお単純減算の場合はα＝１として下式（７）〜（９）の処理を行う。
【００３５】
ＲＱ＝Ｒ１−α×Ｒ２                （７）
ＧＱ＝Ｇ１−α×Ｇ２                （８）
ＢＱ＝Ｂ１−α×Ｂ２                （９）
ここで、Ｒ１、Ｇ１、Ｂ１は、フレームバッファ１７２Ｂあるいはフレームバッファ１７４Ｄに既に描画されている画像（原画像）のＲＧＢ成分であり、Ｒ２、Ｇ２、Ｂ２は、フレームバッファ１７２Ｂあるいはフレームバッファ１７４Ｄに描画すべき画像のＲＧＢ成分である。また、ＲＱ、ＧＱ、ＢＱは、αブレンディングにより得られる画像のＲＧＢ成分である。なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００３６】
さらに本実施形態では描画部１２０が、フィルタ処理部１２２を含む。
【００３７】
フィルタ処理部１２２は、仮想カメラから見たオブジェクト空間を描画した原画像に対してフィルタ画像を生成して、原画像とフィルタ画像とを合成するフィルタ処理を行う。
【００３８】
具体的には、現在のフレーム（第Ｎのフレーム）においてフィルタ画像を生成する際に、現在のフレーム（第Ｎのフレーム）で描画した原画像に対して、各ピクセルの色の輝度値から所与の基準色の輝度値を減算することによって、所与の基準色より明るい色のピクセルを抽出する輝度抽出処理と、ピクセルの色を周辺ピクセルの色と平滑化するバイリニア補間を利用したぼかし処理とを施してワーク画像を縮小バッファ１７４Ｃ（広義には、ワークバッファ）に生成する。本実施形態では、縮小バッファ１７４Ｃがダブルバッファ構造を有しており、現在のフレームで描画した原画像に基づいてワーク画像を生成するバッファとは異なるバッファに、前回のフレームで使用したフィルタ画像を保存しておくことができるようになっている。なお縮小バッファ１７４Ｃは、少なくとも２つ設けられていればよく、トリプルバッファ構造など３つ以上のバッファが設けられていてもよい。また縮小バッファ１７４Ｃは、メインメモリ１７２とビデオメモリ１７４とに分散して設けられていてもよい。
【００３９】
そして本実施形態では、フィルタ処理部１２２は、ダブルバッファ構造である縮小バッファ１７４Ｃにおいて別々のバッファに格納されている現在のフレームで描画した原画像に基づいて生成されたワーク画像と前回のフレーム（第Ｎ−１のフレーム）において生成されたフィルタ画像とを所与の合成率で合成することによって現在のフレームで描画した原画像に合成されるフィルタ画像を生成する。このとき、現在のフレーム（第Ｎのフレーム）において生成されたワーク画像と、前回のフレーム（第Ｎ−１のフレーム）において生成されたフィルタ画像との合成率を、フレーム間での仮想カメラの移動量に応じて設定するようにしてもよい。
【００４０】
なお、フィルタ処理を行う際には、フィルタ処理の対象となるオブジェクトを予め特定しておいて、原画像においてフィルタ処理の対象となるオブジェクトを他のオブジェクトとは異なるα値で描画するようにしてもよい。この場合には、フィルタ処理部１２２に、原画像のαプレーンに設定されたα値をマスク情報として用いたフィルタ処理を行わせることができる。これにより原画像の所与の描画領域にのみフィルタ処理の効果が付加された画像を生成することができる。例えば、原画像のうちフィルタ処理の対象となるオブジェクトの描画領域のみを、原画像のαプレーンに設定されたα値をマスク情報として縮小バッファ１７４Ｃにコピーしたワーク画像を生成し、そのワーク画像に基づいて現在のフレームにおけるフィルタ画像を生成することができる。
【００４１】
また、上述した原画像のαプレーンに設定されるα値をマスク情報となるように描画する手法としては、フィルタ処理の対象となるオブジェクトの頂点色のα成分をα≧α１に設定し、他のオブジェクトの頂点色のα成分をα＜α１に設定しておく手法、フィルタ処理の対象となるオブジェクトにマッピングされるデカールテクスチャのαプレーンにα≧α１を設定し、他のオブジェクトにマッピングされるデカールテクスチャのαプレーンにα＜α１を設定しておく手法、あるいはフィルタ処理の対象となるオブジェクトの頂点色のα成分とそのオブジェクト用のデカールテクスチャのαプレーンに設定されたα値を乗算した値αがα≧α１となるように設定し、他のオブジェクトの頂点色のα成分とそのオブジェクト用のデカールテクスチャのαプレーンに設定されたα値を乗算した値がα＜α１となるように設定しておく手法等がある。オブジェクトの頂点色のα成分にマスク情報を設定した場合、そのオブジェクトデータは、オブジェクトデータ記憶部１７２Ａに記憶させておくことができる。またデカールテクスチャのαプレーンにマスク情報を設定した場合、オブジェクトにマッピングされるデカールテクスチャは、デカールテクスチャ記憶部１７４Ａに記憶させておくことができる。
【００４２】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００４３】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００４４】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。なお以下では、グレアを表現するためのフィルタ処理に関して本実施形態の手法を採用した場合について主に説明するが、本実施形態の手法は、このようなフィルタ処理のみならず、種々のフィルタ処理に適用できる。
【００４５】
まず本実施形態では、現在のフレームで描画した原画像から生成したワーク画像に前回のフレームで使用したフィルタ画像を合成して現在のフレームで使用するフィルタ画像を生成して、生成したフィルタ画像を原画像に合成することによってグレアフィルタ処理を施す手法を採用している。
【００４６】
具体的には、図２のＡ１に示すように、オブジェクト空間内に配置された仮想カメラから見えるシーン（ビューボリューム内）に存在するオブジェクトをスクリーンに透視投影して、透視投影されたオブジェクトをフレームバッファに描画して原画像を生成する。
【００４７】
そしてグレアフィルタをフレームバッファに描画された原画像に対して施す場合には、図２のＡ２に示すように、原画像をフレームバッファよりサイズの小さい第１ワークバッファに縮小コピーする。このときワークバッファの画像情報は前もってクリアしておく（黒く塗りつぶしておく）。
【００４８】
次に、図２のＡ３に示すように、第１ワークバッファに縮小コピーして生成されたワーク画像１に対して輝度抽出処理を行って、ワーク画像１中の輝度が高い色成分のみが抽出されたワーク画像２を生成する。
【００４９】
ここで、輝度抽出処理としては、ワーク画像１の各ピクセルから基準色より明るい色を抽出して、その差分の色情報を得る処理を行う。例えば、基準色Ｃ１で塗りつぶされた単色画像を用意して、第１ワークバッファのワーク画像１の色情報から単色画像の色情報を減算する描画処理を行う。これによってワーク画像１の各ピクセルの色をＣ２とすると、単色画像を減算して描画した後の第１ワークバッファに作成される輝度抽出画像のピクセルの色は、Ｃ２−Ｃ１となる。すなわち、輝度抽出画像では、基準色より暗い色は、黒にクランプされ、基準色より明るい色については、その差分の色となる。このようにある基準色より明るい色だけを求めることで、グレア表現が必要な領域を特定することができる。
【００５０】
なお輝度抽出処理をピクセルシェーダによって実行する場合には、フレームバッファに描画された原画像を第１ワークバッファに縮小コピーする際に、ピクセルシェーダに取得させた原画像の色Ｃ０からパラメータ色として用意された基準色Ｃ１をピクセル毎に減算する処理（Ｃ０−Ｃ１）を実行した結果を第１ワークバッファに出力するようにしてもよい。
【００５１】
次に、図２のＡ４に示すように、輝度抽出処理を行って生成されたワーク画像２に対してバイリニアフィルタ方式を利用してワーク画像２の各ピクセルの色を平滑化するぼかし処理を行って第１ワークバッファにワーク画像３を生成する。
【００５２】
ぼかし処理としては、画像の縮小・拡大を繰り返すことによりバイリニアフィルタ方式で各ピクセルの色が周辺ピクセルの色を取り込んで平滑化（補間）されることにより画像をぼかす手法や、テクスチャ座標をずらしながらバイリニアフィルタ方式で描画を行うことで各ピクセルの色を周辺ピクセルの色と平滑化させて画像をぼかす手法などがある。ぼかし処理の手法は、上記のものには限られず、種々の手法を採用することができる。例えば、バイリニアフィルタ方式での描画により画像をぼかす手法は、図３に示すように第１ワークバッファのワーク画像２をテクスチャとして設定して、ワーク画像２を第１ワークバッファにテクスチャ座標をずらしながら描画することで実現することができる。例えば、図３のＢ１に示すように、テクスチャ座標をＸ方向（横方向）にシフトさせてワーク画像２を描画して横ずらし画像を生成し、その後図３のＢ２に示すように、横ずらし画像をテクスチャとして、テクスチャ座標をＹ方向（縦方向）にシフトさせて横ずらし画像を第１ワークバッファに描画する。このようにすることによって、第１ワークバッファに生成されたワーク画像２の各ピクセルの色がバイリニアフィルタ方式で補間されて画像がぼけるようになる。このとき図３のＢ１に示す処理及びＢ２に示す処理を繰返し行うことで、画像のぼかし具合をより強くすることができる。なお図３のＢ１に示す処理とＢ２に示す処理とは順序が逆であってもよい。
【００５３】
次に本実施形態のグレアフィルタ手法では、図２のＡ５に示すように、第１ワークバッファに生成されたワーク画像３と、第１ワークバッファと同じサイズの縮小バッファである第２ワークバッファに前回のフレームで生成したフィルタ画像とを合成して第１ワークバッファにフィルタ画像を生成する。このように過去のフレームで生成したフィルタ画像を合成してグレアフィルタ用のフィルタ画像を生成することによって、第１のワークバッファに生成されたフィルタ画像には、複数フレーム間における仮想カメラの動きによって目に映る光のにじみの軌跡と同等の情報が重畳される。従って本実施形態のグレアフィルタ手法によれば、フレーム間で仮想カメラが動いた場合には、原画像によって描かれるオブジェクト空間のシーンが変化することを利用して、現在のフレームで使用されるフィルタ画像において光のにじみを仮想カメラの動きに追従させることができるようになる。
【００５４】
なお、第１ワークバッファに生成されたワーク画像３と、第２ワークバッファに生成された前回のフレームで用いたフィルタ画像との合成率は、ワーク画像３の色と前回のフレーム用のフィルタ画像の色とが、１：１の割合で補間されるように設定してもよいし、フレーム間での仮想カメラの移動量に応じて設定するようにしてもよい。仮想カメラの移動量に応じて合成率を設定するようにすれば、例えば、仮想カメラの移動量が大きいほど前回のフレームで生成されたフィルタ画像の合成率が高くなるようにするなど、フレーム間で仮想カメラが動く速度に応じて適切な合成率を設定することができるので、よりリアルな表現をすることができるようになる。例えば、図４（Ａ）に示すように、仮想カメラＶＣが移動体ＯＢ内に配置設定されて、移動体ＯＢの移動に追従するように仮想カメラＶＣが移動制御され、移動体ＯＢの向きに追従して注視点ＶＰが回転して視線方向が制御される場合（いわゆる１人称視点の場合）には、図４（Ｃ）に示すように、仮想カメラＶＣの移動量Ｌ１に応じて合成率を設定することができる。また例えば、図４（Ｂ）に示すように、移動体ＯＢ内に注視点ＶＰが配置設定されて、移動体ＯＢの移動によって注視点ＶＰが移動することに追従するように仮想カメラＶＣの位置及び向きが制御される場合（いわゆる３人称視点の場合）には、図４（Ｃ）に示すように、注視点ＶＰの移動量Ｌ２を仮想カメラＶＣの移動量Ｌ１と同等に捉えて注視点ＶＰの移動量Ｌ２に応じて合成率を設定することができる。
【００５５】
また、第１ワークバッファに生成されたワーク画像３と、第２ワークバッファに保存されている前回のフレームで生成したフィルタ画像との合成をピクセルシェーダによって実行する場合には、ワーク画像３と前回のフレームで生成したフィルタ画像とを、いずれもテクスチャとしてピクセルシェーダに読み込ませて、ピクセルシェーダに取得されたワーク画像３の色Ｃ３と、前回のフレームで生成したフィルタ画像の色Ｃ４とを、ピクセル毎に単純加算する処理（Ｃ３＋Ｃ４）や、ピクセル毎に所与の合成率ｍで補間する処理（Ｃ３×（１−ｍ）＋Ｃ４×ｍ）を実行した結果を第１ワークバッファに出力するようにしてもよい。
【００５６】
そして本実施形態のグレアフィルタ手法では、図２のＡ６に示すように、第１ワークバッファに作成したフィルタ画像をフレームバッファの原画像に加算合成することで、原画像に対して光のにじみが仮想カメラの動きに追従して見えるグレア処理が施された完成画像をフレームバッファに生成することができる。
【００５７】
なお原画像とフィルタ画像との合成は、フィルタ画像の色に所与の係数を乗算して原画像の色に乗算結果を加算する加算合成により行うことができる。また本実施形態のグレアフィルタ手法において、原画像の奥行き情報（Ｚバッファに格納されるピクセル毎のＺ値）を参照しながら合成率を決定して原画像とフィルタ画像との合成を行えば、被写界深度を表現する手法に適用することができる。
【００５８】
また、原画像とフィルタ画像との合成をピクセルシェーダによって実行する場合には、フレームバッファに生成された原画像と第１ワークバッファに生成されたフィルタ画像とを、いずれもテクスチャとしてピクセルシェーダに読み込ませて、ピクセルシェーダに取得された原画像の色Ｃ０とフィルタ画像の色Ｃ５とを、ピクセル毎に単純加算する処理（Ｃ０＋Ｃ５）や、ピクセル毎に所与の係数ｎを乗算して加算する処理（Ｃ０＋Ｃ５×ｎ）を実行した結果をフレームバッファに出力するようにしてもよい。
【００５９】
３．本実施形態の処理
次に、本実施形態の詳細な処理例について図５のフローチャートを用いて説明する。
【００６０】
まず、フレーム更新タイミング（例えば、１／６０秒が経過した時点）が到来すると（ステップＳ１０でＹ）、仮想カメラから見たオブジェクト空間内のシーンをフレームバッファに描画して原画像を生成する（ステップＳ１１）。
【００６１】
次に、フレームバッファの１／４のサイズの第１のワークバッファをクリアする。すなわち第１ワークバッファの各ピクセルを黒色（Ｒ，Ｇ，Ｂ）＝（０，０，０）に塗りつぶしておく（ステップＳ１２）。
【００６２】
次に、第１ワークバッファにフレームバッファの原画像を縮小コピーする（ステップＳ１３）。そして、第１ワークバッファに縮小コピーして生成された画像と、基準色で塗りつぶされた単色画像を減算合成する（ステップＳ１４）。すなわち図２で説明した輝度抽出処理により色の強さの低い成分が落とされる。
【００６３】
なおピクセルシェーダによって輝度抽出処理を実行する場合には、フレームバッファから読み出した原画像の各ピクセルの色から基準色を減算した結果を第１ワークバッファに出力して、輝度抽出画像が縮小コピーされるようにしてもよい。
【００６４】
次に、図３のＢ１において説明した手法を利用して、第１ワークバッファの画像を横にずらした画像を第１ワークバッファに加算合成して、横方向（Ｘ方向）に画像をぼかす処理を行う（ステップＳ１５）。さらに、図３のＢ２において説明した手法を利用して、第１ワークバッファの画像を縦にずらした画像を第１ワークバッファに加算合成して、縦方向（Ｙ方向）に画像をぼかす処理を行う（ステップＳ１６）。
【００６５】
次に、第１ワークバッファと同様にフレームバッファの１／４のサイズの第２ワークバッファに保存されている前回のフレームで作成したフィルタ画像を第１ワークバッファの画像に半透明合成する（ステップＳ１７）。次回のフレームでは、現在のフレームにおいて第１のワークバッファに生成されたフィルタ画像が、次回のフレームにおいて第２のワークバッファに生成されたワーク画像に半透明合成されて次回のフレーム用のフィルタ画像が生成される。
【００６６】
次に、第１ワークバッファに生成されたフィルタ画像をフレームバッファのサイズに拡大して、その拡大された画像を適当な係数（所与の加算合成係数）を掛けてフレームバッファの原画像に加算することにより原画像とフィルタ画像とを合成する（ステップＳ１８）。
【００６７】
４．ハードウェア構成例
本実施形態の画像生成システムを実現するハードウェアの構成の一例について図６を用いて説明する。なお図６では、主要な構成のみを図示しており、図６に示されていないハードウェア（メモリコントローラやスピーカなど）を必要に応じて設けることができる。
【００６８】
メインプロセッサ１０は、光ディスク７２（ＣＤ、ＤＶＤ、ブルーレイディスク等の情報記憶媒体）に格納されたプログラム、通信インターフェース８０を介して転送されたプログラム、或いはハードディスク６０に格納されたプログラムなどに基づき動作し、内部バスｂ４を介してアクセス可能なメインメモリ４０を作業領域（ワーク領域）としてゲーム処理、画像処理、音処理などの種々の処理を実行する。
【００６９】
メインプロセッサ１０は、１基のプロセッサ１２と複数のベクトルプロセッサ１４で構成される。プロセッサ１２は、ＯＳの実行、ハードウェアリソースの管理、ゲーム処理、ベクトルプロセッサ１４の動作管理などの種々の処理を実行する。またベクトルプロセッサ１４は、ベクトル演算に特化したプロセッサであり、主にジオメトリ処理、画像データや音データのコーデック処理などの処理を実行する。
【００７０】
描画プロセッサ２０は、内部バスｂ１（第１の内部バス）を介してビデオメモリ３０にアクセス可能に形成されている。また描画プロセッサ２０は、描画プロセッサ２０とメインプロセッサ１０を接続する内部バスｂ２（第２の内部バス）と、メインプロセッサ１０内部のバスｂ３と、メインプロセッサ１０とメインメモリ４０を接続する内部バスｂ４を介してメインメモリ４０にアクセス可能に形成されている。すなわち描画プロセッサ２０はビデオメモリ３０と、メインメモリ４０とをレンダリングターゲットとして利用することができる。
【００７１】
描画プロセッサ２０は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ１０で動作するプログラムが、その処理を描画プロセッサ２０に指示する。
【００７２】
また描画プロセッサ２０は、ジオメトリ処理後のオブジェクト（ポリゴンや曲面などのプリミティブ面で構成されるオブジェクト）の画像のレンダリング処理を高速に実行するものである。マルチパスレンダリング処理の際には、描画プロセッサ２０は、描画データ（頂点データや他のパラメータ）等に基づいて、Ｚバッファ３４などを利用した陰面消去を行いながら、画像をビデオメモリ３０又はメインメモリ４０の一方のメモリにレンダリングする。そしてビデオメモリ３０又はメインメモリ４０の一方のメモリに記憶された画像に基づき他方のメモリに新たな画像をレンダリングする処理を必要なレンダリングパスの回数だけ行う。描画プロセッサ２０は、上記マルチパスレンダリング処理として、グレアフィルタ処理、モーションブラー処理、被写界深度処理、フォグ処理等のフィルタ処理を行うことができる。
【００７３】
そして、最後のレンダリングパスで画像がビデオメモリ３０に設けられたフレームバッファ３２にレンダリングされると、その画像をディスプレイ５０に出力する。また最後のレンダリングパスで画像がメインメモリ４０にレンダリングされた場合には当該画像をフレームバッファ３２にコピー（書き込み）した上でディスプレイ５０に出力する。
【００７４】
ハードディスク６０にはシステムプログラム、セーブデータ、個人データなどが格納される。
【００７５】
光学ドライブ７０は、プログラム、画像データ、或いは音データなどが格納される光ディスク７２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【００７６】
通信インターフェース８０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース１７０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【００７７】
上述したように本実施形態の画像生成システム（コンピュータ）は、内部バスｂ１（第１の内部バス）を介してビデオメモリ３０にアクセス可能であるとともに、内部バスｂ２（第２の内部バス）を介してメインメモリ４０にアクセス可能である描画プロセッサ２０を含んで構成されており、描画プロセッサ２０をフィルタ処理部１２２として機能させるシェーダプログラムが光ディスク７２（情報記憶媒体の一例）あるいはハードディスク６０（情報記憶媒体の一例）に格納されている。
【００７８】
そして本実施形態の画像生成システムでは、上記シェーダプログラムによってフィルタ処理部１２２として機能する描画プロセッサ２０が、原画像が生成されたビデオメモリ３０又はメインメモリ４０の一方のメモリとは異なる他方のメモリにフィルタ画像を生成し、他方のメモリに生成されたフィルタ画像を一方のメモリに生成された原画像に加算合成する処理を行う。
【００７９】
このようにすれば、描画プロセッサ２０が画像データをメモリ（ビデオメモリ３０又はメインメモリ４０）に書き込んだり、描画プロセッサ２０が画像データをメモリ（ビデオメモリ３０又はメインメモリ４０）から読み出したりする際における内部バスｂ１，ｂ２に対する負荷を分散することができるため、内部バスｂ１，ｂ２の帯域の利用効率を高めることができる。特に本実施形態の画像生成システムでは、描画プロセッサ２０が、Ｚバッファ３４を用いた隠面消去処理において、膨大なデータを格納するＺバッファ３４からＺ値を読み込んだり、Ｚ値の書き込んだりすることによってビデオメモリ３０にアクセスする内部バスｂ１を頻繁に使用するため、原画像を生成するバッファとフィルタ画像を生成するバッファとを分散することによって内部バスｂ１の帯域使用率の高さがボトルネックとなって処理が遅延することを防止することができる。
【００８０】
なお、本実施形態の各部（各手段）は、その全てを、ハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００８１】
そして、本実施形態の各部をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ１０、２０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ１０、２０等は、その指示と渡されたデータとに基づいて、本発明の各部を実現することになる。
【００８２】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。またグレアフィルタの手法は、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【００８３】
また本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【００８４】
【図１】本実施形態の画像生成システムの機能ブロック図。
【図２】本実施形態のグレアフィルタ手法の説明図。
【図３】本実施形態のぼかし処理手法の説明図。
【図４】本実施形態の仮想カメラの移動量に応じた合成率の設定手法の説明図。
【図５】本実施形態の具体的な処理例を示すフローチャート。
【図６】ハードウェア構成例。
【符号の説明】
【００８５】
１００  処理部、
１１０  オブジェクト空間設定部、１１２  移動・動作処理部、
１１４  仮想カメラ制御部、
１２０  描画部、１２２  フィルタ処理部、１３０  音生成部、
１６０  操作部、１７０  記憶部、
１７２  メインメモリ、
１７２Ａ  オブジェクトデータ記憶部、１７２Ｂ  フレームバッファ、
１７４  ビデオメモリ、
１７４Ａ  デカールテクスチャ記憶部、１７４Ｂ  Ｚバッファ、
１７４Ｃ  縮小バッファ、１７４Ｄ  フレームバッファ、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、
１９４  携帯型情報記憶装置、１９６  通信部
【図１】
2008077406.tif 000003
【図３】
2008077406.tif 000004
【図４】
2008077406.tif 000005
【図５】
2008077406.tif 000006
【図６】
2008077406.tif 000007
【図２】
2008077406.tif 000008