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