(57)【要約】【課題】少ない処理負荷で、光の反射或いは光芒についてよりリアルな表現を行うことが可能なプログラム、情報記憶媒体及び画像生成装置を提供すること。【解決手段】元画像と、当該元画像に基づき生成されたエフェクト画像とを合成する。エフェクト画像は次のように生成する。すなわち、所定条件に基づいて、元画像の高輝度部分を抽出して輝度調整を行い輝度調整画像を生成し、輝度調整画像の画素毎に、画素の画素値に当該画素近傍の複数画素の画素値それぞれを加算する処理を含む画素値演算を行いエフェクト画像を生成する処理を行う。【選択図】図２
2011053737.tif 000002
【特許請求の範囲】
【請求項１】
画像生成処理を行うプログラムであって、
元画像と、当該元画像に基づき生成されたエフェクト画像とを合成する処理を行う画像生成部として、コンピュータを機能させ、
所定条件に基づいて前記元画像の高輝度部分を抽出して輝度調整を行い輝度調整画像を生成する輝度調整画像生成部と、
前記輝度調整画像の画素毎に、画素の画素値に当該画素近傍の複数画素の画素値それぞれを加算する処理を含む画素値演算を行い前記エフェクト画像を生成する処理を行うエフェクト画像生成部として、前記画像生成部を機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記輝度調整画像生成部が、
前記所定条件に基づいて前記元画像の高輝度部分を抽出した後に、更にノイズを加えて輝度調整を行い、前記輝度調整画像を生成することを特徴とするプログラム。
【請求項３】
請求項１又は２において、
前記画素近傍の複数画素は、
一方向又は複数方向に、連続して配置されている画素群であることを特徴とするプログラム。
【請求項４】
請求項１〜３のいずれかにおいて、
前記輝度調整画像生成部が、
前記元画像の画素毎に、画素の輝度値が所定輝度値以上か否かを判断し、画素の輝度値が所定輝度値以上である場合に、当該画素を高輝度画素として抽出することを特徴とするプログラム。
【請求項５】
コンピュータにより読取可能な情報記憶媒体であって、請求項１〜４のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
【請求項６】
画像生成処理を行う画像生成装置であって、
元画像と、当該元画像に基づき生成されたエフェクト画像とを合成する処理を行う画像生成部を含み、
前記画像生成部が、
所定条件に基づいて前記元画像の高輝度部分を抽出して輝度調整を行い輝度調整画像を生成する輝度調整画像生成部と、
前記輝度調整画像の画素毎に、画素の画素値に当該画素近傍の複数画素の画素値それぞれを加算する処理を含む画素値演算を行い前記エフェクト画像を生成する処理を行うエフェクト画像生成部を含むことを特徴とする画像生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成装置に関する。
【背景技術】
【０００２】
従来より、仮想的な３次元空間であるオブジェクト空間において仮想カメラ（所与の視点）から見える画像を生成する画像生成装置（ゲーム装置）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
さて、このような画像生成装置では、仮想現実感を向上させるために、よりリアルな画像を生成することが重要な課題になっている。オブジェクト空間において、光源からの光の反射や光芒を、リアルに表現可能な画像を生成することが望まれている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０００−１９７７６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、従来の画像生成装置では、光の反射をリアルに生じさせるものではなかった。また、レンダリング処理にかかる負荷が高いものであった。
【０００６】
本発明は、以上の課題に鑑みたものであり、少ない処理負荷で、光の反射や光芒についてよりリアルな表現を行うことが可能なプログラム、情報記憶媒体及び画像生成装置を提供することにある。
【課題を解決するための手段】
【０００７】
（１）本発明は、画像生成処理を行うプログラムであって、元画像と、当該元画像に基づき生成されたエフェクト画像とを合成する処理を行う画像生成部として、コンピュータを機能させ、所定条件に基づいて前記元画像の高輝度部分を抽出して輝度調整を行い輝度調整画像を生成する輝度調整画像生成部と、前記輝度調整画像の画素毎に、画素の画素値に当該画素近傍の複数画素の画素値それぞれを加算する処理を含む画素値演算を行い前記エフェクト画像を生成する処理を行うエフェクト画像生成部として、前記画像生成部を機能させるプログラムに関する。また、本発明は、上記プログラムを記憶した情報記憶媒体、上記各部として構成する画像生成装置に関係する。本発明によれば、少ない処理負荷で、高輝度部分について光の反射、光芒をリアルに表現可能な画像を生成することができる。
【０００８】
（２）また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記輝度調整画像生成部が、前記所定条件に基づいて前記元画像の高輝度部分を抽出した後に、更にノイズを加えて輝度調整を行い、前記輝度調整画像を生成するようにしてもよい。本発明によれば、高輝度部分の所与の箇所において、反射、光芒を表現することができ、より自然でリアルな画像を生成することができる。
【０００９】
（３）また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記画素近傍の複数画素は、一方向又は複数方向に、連続して配置されている画素群であるようにしてもよい。本発明によれば一方向又は複数方向に応じた反射、光芒を表現することができる。
【００１０】
（４）また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記輝度調整画像生成部が、前記元画像の画素毎に、画素の輝度値が所定輝度値以上か否かを判断し、画素の輝度値が所定輝度値以上である場合に、当該画素を高輝度画素として抽出するようにしてもよい。本発明によれば、高輝度部分を抽出する処理を画素単位で行うので、より精細でリアルな光の反射、光芒を表現することができる。
【図面の簡単な説明】
【００１１】
【図１】本実施形態の画像生成装置の機能ブロック図の例。
【図２】本実施形態の画像生成処理の概要図。
【図３】図３（Ａ）（Ｂ）は、サンプリング点の説明図。
【図４】図４（Ａ）は、元画像の一例。図４（Ｂ）は、元画像とエフェクト画像とを合成した画像の一例。
【図５】本実施形態のフローチャート図。
【図６】図６（Ａ）（Ｂ）は、サンプリング点の応用例を説明するための図。
【図７】図７（Ａ）（Ｂ）は、サンプリング点の応用例を説明するための図。
【発明を実施するための形態】
【００１２】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００１３】
１．構成
図１に本実施形態の画像生成装置（ゲーム装置）の機能ブロック図の例を示す。なお本実施形態の画像生成装置は図１の構成要素（各部）の一部を省略した構成としてもよい。
【００１４】
入力部１６０は、プレーヤがオブジェクト（プレーヤキャラクタ、移動体）の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【００１５】
記憶部２００は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００１６】
第１の画像バッファ２１１には、元画像がレンダリングされる。また、第２の画像バッファ２１２は、元画像がコピーされ、その後、輝度調整、画素値演算処理が行われエフェクト画像が生成される。
【００１７】
また、オブジェクトデータ記憶部２１３は、プレーヤの操作対象及び非操作対象のオブジェクト（プレーヤキャラクタや固定物等）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ、法線ベクトル、α値等）を記憶する。
【００１８】
また、Ｚバッファ２１４は、第１の画像バッファ２１１に描画される各画素の奥行き値（深度値、Ｚ値）が記憶される。
【００１９】
なお、入力部１６０は、加速度センサや撮像部、或いは角速度を検出するジャイロセンサを備えた入力機器（入力装置）によってプレーヤからの入力データ（操作データ）を入力できるものでもよい。例えば、入力機器は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力機器には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける（プレーヤが手に装着する）グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力機器には、入力機器と一体化されているゲーム装置、携帯型ゲーム装置、携帯電話なども含まれる。検出部１６２は、入力部１６０からの入力情報を検出する処理を行う。
【００２０】
例えば、入力機器に加速度センサを備えている場合には、加速度センサは、３軸（Ｘ軸、Ｙ軸、Ｚ軸）の加速度を検出する。すなわち、加速度センサは、上下方向、左右方向、及び、前後方向の加速度を検出することができる。
【００２１】
また、加速度センサは、１軸、２軸、６軸の加速度を検出するものであってもよい。なお、加速度センサから検出された加速度は、入力機器の通信部によってゲーム装置（本体装置）に送信される。
【００２２】
また、入力機器に撮像部、赤外線フィルタ、レンズ、撮像素子（イメージセンサ）、画像処理回路を含む場合には次のように、撮像画像における光源の位置情報（特定位置）を検出してもよい。具体的には、赤外線フィルタは、入力機器の前方に配置され、表示部１９０に関連付けられて配置されている光源から入射する光から赤外線のみを通過させる。レンズは、赤外線フィルタを透過した赤外線を集光して撮像素子へ出射する。撮像素子は、例えば、ＣＭＯＳセンサやＣＣＤのような固体撮像素子であり、レンズが集光した赤外線を撮像して撮像画像を生成する。撮像素子で生成された撮像画像は、画像処理回路で処理される。例えば、撮像素子から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報（特定位置）を検出する。なお、光源が複数存在する場合には、撮像画像上の位置情報を検出する。また、検出した撮像画像上の位置情報は、通信部によって、本体装置に送信される。
【００２３】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）を記憶することができる。
【００２４】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００２５】
通信部１９６は外部（例えば他の画像生成装置）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００２６】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体１８０や記憶部２００に記憶してもよい。このようにプログラムやデータを受信して画像生成装置を機能させる場合も本発明の範囲内に含む。
【００２７】
処理部１００（プロセッサ）は、入力部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【００２８】
この処理部１００は記憶部２００内の主記憶部２１０をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＧＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００２９】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１１、画像生成部（描画部）１２０、音処理部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００３０】
オブジェクト空間設定部１１０は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義であり、例えば、ワールド座標系でのＸ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００３１】
移動・動作処理部１１１は、オブジェクト（キャラクタ、移動体等）の移動・動作演算（移動・動作シミュレーション）を行う。すなわち入力部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）、物理法則などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００３２】
画像生成部１２０は、処理部１００で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。画像生成部１２０が生成する画像は、いわゆる２次元画像であってもよいし、いわゆる３次元画像であってもよい。
【００３３】
２次元画像を生成する場合には、例えば、オブジェクト（スプライト）毎に優先度を設定し、設定された優先度が低いオブジェクトから順に描画する。オブジェクト同士が重なる場合には、優先度が低いオブジェクトの上に、優先度の高いオブジェクトを描画する。
【００３４】
いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値
等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００３５】
頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換（カメラ座標変換）、クリッピング処理、透視変換（投影変換）、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。
【００３６】
そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、ピクセルデータ、ボクセルデータなどの画素データ（色（ＲＧＢ）、α値、Ｚ値、輝度等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を生成することができる。
【００３７】
なお、画像生成部１２０は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、３次元の画像を生成する場合には、ワールド座標系における仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（例えば、Ｘ、Ｙ、Ｚ軸の各軸の正方向からみて時計回りに回る場合における回転角度）を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。また、画像生成部１２０は、仮想カメラを、予め決められた回転角度で回転させてもよい。この場合には、仮想カメラの位置又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００３８】
本実施形態では、プレーヤキャラクタの視点（一人称視点、（いわゆる、ファーストパーソン・シューティングゲーム））に基づいて画像を生成する処理を行うようにしてもよい。
【００３９】
また、本実施形態では、仮想カメラの移動、向き、画角はプログラムで制御してもよいし、入力部１６０の入力情報に基づいて仮想カメラの移動、向き、画角を制御してもよい。
【００４０】
例えば仮想カメラによりオブジェクト（例えば、プレーヤキャラクタ）を後方から撮影する場合には、オブジェクトの位置、向きの変化に仮想カメラが追従するように、仮想カメラの位置、仮想カメラの向きを制御する。この場合には、移動・動作処理部１１１で得られたオブジェクトの位置、向き又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた向きに設定したり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は向きを特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００４１】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００４２】
そして画像生成部１２０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００４３】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、画像バッファ（第１の画像バッファ２１１）に保存される。
【００４４】
テクスチャマッピングは、記憶部２００に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部２００からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００４５】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファに格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００４６】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。
【００４７】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００４８】
特に、本実施形態の画像生成部１２０は、元画像と、当該元画像に基づき生成されたエフェクト画像とを合成する処理を行う。
【００４９】
また、本実施形態の画像生成部１２０は、輝度調整画像生成部１２１、エフェクト画像生成部１２２とを含む。
【００５０】
輝度調整画像生成部１２１は、所定条件に基づいて元画像の高輝度部分を抽出して輝度調整を行い輝度調整画像を生成する。例えば、所定条件に基づいて元画像の高輝度部分を抽出した後に、更にノイズを加えて輝度調整を行い、輝度調整画像を生成する。より具体的説明すると、輝度調整画像生成部１２１は、元画像の画素毎に、画素の輝度値（画素の明るさを示す値）が所定輝度値以上か否かを判断し、画素の輝度値が所定輝度値以上である場合に、当該画素を高輝度画素として抽出し、画素の輝度値が所定輝度値未満である場合には当該画素を抽出されない画素とし、輝度値を下げる調整処理（例えば、輝度値を０にする調整処理）を行う。また、元画像はグレースケール画像（濃淡画像）でもよいし、色画像（ＲＧＢ画像）でもよい。
【００５１】
また、エフェクト画像生成部１２２は、輝度調整画像の画素毎に、画素の画素値に当該画素近傍の複数画素の画素値それぞれを加算する処理を含む画素値演算（画素演算、輝度演算、色値演算）を行いエフェクト画像（反射画像、光芒画像）を生成する処理を行う。例えば、エフェクト画像生成部１２２は、輝度調整画像の画素毎に、画素の画素値に当該画素近傍の、一方向又は複数方向に、連続して配置されている画素群の画素値それぞれを加算する処理を行って画素値演算を行い、エフェクト画像を生成する処理を行う。
【００５２】
音処理部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００５３】
なお、本実施形態の画像生成装置は、１人のプレーヤのみがプレイできるシングルプレーヤモード用の装置にしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードを備える装置にしてもよい。マルチプレーヤモードの場合には、複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００５４】
２．概要
本実施形態の画像生成装置は、光の反射、光芒を表現するための画像生成処理（ポストエフェクト処理）を行うものである。つまり、本実施形態では、図２に示すように、元画像を第１の画像バッファ（第１のレンダリングターゲット）２１１に描画する。そして、この元画像を第２の画像バッファ（第２のレンダリングターゲット）２１２にコピーし、コピーされた画像（元画像）に対して、所定条件に基づき輝度の高い部分を抽出して輝度調整画像Ａを生成する。そして、輝度調整画像Ａにノイズを加え輝度調整画像Ｂを生成する。そして、輝度調整画像Ｂの全ての画素それぞれについて画素値演算処理を行うことによってエフェクト画像Ｃ（反射画像、光芒画像）を生成する。最終的には、元画像とエフェクト画像Ｃとを半透明合成処理を行い、出力画像を生成する処理を行う。本実施形態によれば、少ない処理負荷で、高輝度部分について光が反射するような画像、光芒を表現した画像を表現することができる。以下詳細を説明する。
【００５５】
３．本実施形態の処理の手法の詳細 
（１）元画像の生成処理
本実施形態では、オブジェクト空間（３次元空間）において、所与の視点（仮想カメラ）から見える画像を生成する処理を行う。生成された画像を元画像として、第１の画像バッファ２１１に描画する。そして、元画像を、第２の画像バッファ２１２にコピー（描画）する処理を行う。
【００５６】
（２）高輝度部分の抽出処理
本実施形態では、元画像（コピー用の元画像、第２の画像バッファ２１２に描画された元画像、入力画像）において、輝度（明るさ）の高い画素を抽出する処理を行う。これは、画像の明るい部分に光の反射や光芒が生じるようにするためである。
【００５７】
具体的には、元画像の全ての画素それぞれにおいて、画素の輝度値が、所定輝度値（たとえば、０．５）以上か否かを判断して、当該画素を抽出するか否かを判断する処理を行う。例えば、画素Ｐ０のＲ，Ｇ，Ｂの３つの成分の値（Ｒ０、Ｇ０、Ｂ０）に基づいて、当該画素の輝度値Ｋ０を求める。例えば、輝度値Ｋ０は、輝度を求める所定式（例えば、ＲＧＢ値の加重平均）によって求めることができる。
【００５８】
そして、元画像の全ての画素それぞれにおいて輝度値を調整する処理を行う。すなわち、画素の輝度値が所定輝度値以上であると判断されると、高輝度の画素と判断して当該画素の輝度値をそのままの値として抽出する。一方、画素の輝度値が所定輝度値未満であると判断されると、高輝度の画素ではないと判断して当該画素の輝度値を０に調整（設定）する処理を行う。
【００５９】
たとえば、画素Ｐ０の輝度値Ｋ０が所定輝度値（例えば、０．５）以上か否かを判断し、輝度値Ｋ０が所定輝度値以上である場合には、抽出する画素であると判断する。一方、輝度値Ｋ０が所定輝度値未満である場合には、抽出せずに輝度値を０に調整（設定）する処理を行う。
【００６０】
そして、元画像の画素単位で順次に、画素の輝度値を抽出する、或いは輝度値を０にする処理を行うと輝度調整画像Ａが生成される。つまり、高輝度部分を抽出した輝度調整画像Ａが生成される。
【００６１】
なお、本実施形態では、輝度調整する前に、元画像に輝度のコントラスト（濃淡）をつけるポストエフェクト処理を行ってから、輝度調整画像を生成してもよい。
【００６２】
次に、本実施形態では、元画像の全ての画素について、輝度値が所定輝度値以上か否かを判断して、輝度値を調整した輝度調整画像Ａについて、さらにノイズを加える処理を行う。ノイズを加える処理は必須ではないが、ノイズ処理を行う方がよりリアルな画像を生成することができる。
【００６３】
具体的に説明すると、本実施形態では、輝度調整画像Ａの高輝度値を有する画素（輝度値≧０．５の画素）においてノイズ値（不規則な乱数、０．０≦ノイズ値≦１．０）を乗算し、ノイズ値乗算後の輝度値が、所定輝度値以上か否かを判断し、所定輝度値以上である画素画素を抽出することによって輝度調整画像Ｂを生成する。つまり、高輝度部分が乱雑的に絞りこまれることになる。
【００６４】
例えば、輝度調整画像Ａの画素Ｐ０の輝度値Ｋ０（Ｋ０≧０．５）にノイズ値を乗算した値Ｋ０´が、所定輝度値（０．５）以上か否かを判断し、値Ｋ０´が輝度所定値以上である場合には、画素Ｐ０を輝度値Ｋ０´として抽出し、値Ｋ０´が輝度所定値（０．５）未満である場合には、画素Ｐ０の輝度値を０にする調整処理を行う。
【００６５】
仮に、ノイズを入れずに画素値の演算などを行うと、結果的に光芒を生じる箇所が多数存在してしまうことになり、かえってリアルさに欠ける画像が生成されてしまうことになるが、本実施形態では、ノイズを入れるので、乱雑的に光芒が生じるようになりよりリアルな画像を生成することができる。つまり、ノイズを入れることによって不規則的に高輝度部分を抽出することができるので、出力画像を見る者にとって規則性を感じないリアルな画像を生成することができる。
【００６６】
本実施形態では、予め用意されたノイズ関数（例えば、パーリンノイズなどのノイズ関数、ノイズテーブル）を用いて、ノイズを入れる処理を行っている。また、本実施形態では、ノイズ関数のパラメータを指定することによって、ノイズの振幅の変化（ノイズの細かさ、乱雑度合）を調整している。つまり、このパラメータを調整（設定）することによって、輝度調整画像Ｂにおいて抽出される高輝度の画素の割合を多くしたり、少なくしたりする調整を行うことができる。
【００６７】
（３）画素値演算処理
本実施形態では、輝度調整画像Ｂを用いて画素値演算処理を行い、エフェクト画像Ｃを生成する処理を行う。
【００６８】
より具体的に説明すると、本実施形態では、輝度調整画像Ｂの全ての画素について、画素の画素値に、当該画素近傍（当該画素周囲）の複数の画素の各画素値を加算する処理を行う。このようにすれば、サンプリング点の連なる方向に光芒が生じるような出力画像を生成することができる。
【００６９】
例えば、図３（Ａ）に示すように、描画対象の画素（注目画素）Ｐ０の画素値（輝度値、ＲＧＢの各色値）と、サンプリング点Ｐ１〜Ｐ１６それぞれの画素値とを加算し、加算された値を画素Ｐ０の画素値とする処理を行う。すなわち、Ｐ０の画素値をＴ０、Ｐ１〜Ｐ１６の画素値をＴ１〜Ｔ１６とすると、下記の数式（１）によって、画素値演算後の画素Ｐ０の画素値Ｔ０´が求められる。
【００７０】
Ｔ０´＝Ｔ０＋Ｔ１＋Ｔ２＋・・・＋Ｔ１６・・・（１）
図３（Ａ）に示すように、サンプリング点は、複数方向に連続して配置されている画素群（複数の画素）である。例えば、描画対象の画素を中心にクロス形状に配置された画素群である。このようにすれば、クロス形状の光芒を表現することができる。
【００７１】
本実施形態では、図３（Ｂ）に示すように、画素Ｐ０の点を基準に、長さＬ１〜Ｌ４や方向（ＵＶ座標系におけるＵ軸或いはＶ軸に対する各角度等）を決定して形状を決定し、形状に応じた画素群（Ｐ０〜Ｐ１６）の画素値の全てを加算し、加算された値を画素Ｐ０の画素値とする。この形状は、結果的に光の反射や光芒の形状に反映されるので、予め反射方向や、光芒の形状が決められている場合には、この形状に応じた画素群をサンプリング点として決定することが望ましい。
【００７２】
なお、本実施形態では、主に、水面の光芒を表現するものであるので、図３（Ｂ）に示すようなクロス形状（×印形状）に応じた画素群をサンプリング点とすることが望ましい。言い換えると、本実施形態において、サンプリング点（画素値演算の対象となる画素群）Ｐ１〜Ｐ１６は、当該描画対象画素Ｐ０を挟んで左上と右下方向に一列に並ぶ画素群と、描画対象画素を挟んで右上と左下方向に一列に並ぶ画素群とすることが望ましい。
【００７３】
本実施形態では、輝度調整画像Ｂの全ての画素について、画素値演算処理を行う。このように、全画面処理を行う理由は、全画素それぞれに、画素値演算処理を行うことによって、はじめて、光の反射画像、光芒画像をリアルに表現することができるからである。以上の全画面処理によって、エフェクト画像Ｃが生成される。
【００７４】
（４）元画像にエフェクト画像を合成する手法
本実施形態では、エフェクト画像Ｃが生成されると、元画像が描画されている第１の画像バッファ２１１（第１のレンダリングターゲット）に、このエフェクト画像Ｃを半透明合成する処理（αブレンディング処理）を行う。例えば、本実施形態では、加算合成処理を行っている。
【００７５】
つまり、半透明合成パラメータα値、出力画像の画素値Ｃｐ、元画像の画素値Ｃｉ、エフェクト画像Ｃの画素値Ｃｊとすると、下記の数式（２）で、Ｃｐを求めることができる。
【００７６】
Ｃｐ＝Ｃｉ＋α＊Ｃｊ・・・（２）
以上の処理によって、本実施形態では、光の反射や光芒を表現したリアルな出力画像を生成することができる。
【００７７】
例えば、図４（Ａ）は、元画像の一例であり、図４（Ｂ）は、元画像とエフェクト画像Ｃとを合成した出力画像の一例である。図４（Ｂ）に示すように、特に輝度が強いところはクロス形状の反射（光芒）を表現し、また、輝度の低い部分については、反射の表現がされていないので、輝度の濃淡に応じた反射をリアルに表現している。
【００７８】
４．フローチャート
図５を用いて、本実施形態の処理の流れについて説明する。まず、元画像を第１の画像バッファ２１１に描画する処理を行う（ステップＳ１０）。次に、元画像を第２の画像バッファ２１２にコピーする処理を行う（ステップＳ１１）。次に、元画像の高輝度部分を抽出して輝度調整を行う（ステップＳ１２）。すなわち、輝度調整画像Ａを生成する。次に、ノイズを入れてさらに輝度調整を行う（ステップＳ１３）。すなわち、輝度調整画像Ｂを生成する。
【００７９】
次に、輝度調整画像Ｂにおいて、描画対象の画素の画素値に、描画対象の画素近傍の複数の画素の画素値それぞれを加算する画素値演算処理を行う（ステップＳ１４）。次に、輝度調整画像Ｂの全ての画素について、画素値演算処理を行ったか否かを判断し（ステップＳ１５）、輝度調整画像Ｂの全ての画素について、画素値演算処理を行っていない場合には（ステップＳ１５のＮ）、ステップＳ１４に戻る。
【００８０】
輝度調整画像Ｂの全ての画素について、画素値演算処理を行った場合には（ステップＳ１５のＹ）、輝度調整画像Ｂの全ての画素について、画素値演算処理が行われた画像を、エフェクト画像Ｃとし、元画像とエフェクト画像Ｃとを加算合成する処理を行う（ステップＳ１６）。以上で処理が終了する。
【００８１】
５．応用例
（１）応用例１
本実施形態では、画素値演算処理において、サンプリング点を、一方向に連続して配置される画素群としてもよい。
【００８２】
例えば、図６（Ａ）に示すように、描画対象の画素Ｑ０を基準に、一方向に連続して配置されている画素群（複数の画素）Ｑ１〜Ｑ６をサンプリング点としてもよい。例えば、一方向に連続して配置される画素群は、描画対象の画素を中心にライン形状に配置された画素群である。
【００８３】
より具体的に説明すると、本実施形態では、図６（Ｂ）に示すように、描画対象の画素Ｑ０の点を基準に、長さや方向（ＵＶ座標系におけるＵ軸或いはＶ軸に対する角度）を決定してライン形状を決定し、ライン形状に応じた画素群（例えば、Ｑ０〜Ｑ６）の画素値を全て加算した値（合計値）を画素Ｑ０の画素値とする。
【００８４】
このようにすれば、ライン形状の光芒を表現することができる。例えば、雲の隙間から太陽の光が差し込むような場面では、光が差し込むような光芒を表現した画像（いわゆるゴッドレイ、木漏れ日などを表現した画像）を生成することができる。
【００８５】
（２）応用例２
また、本実施形態では、画素値演算処理において、サンプリング点を６方向に連続して配置される画素群としてもよい。
【００８６】
例えば、図７（Ａ）に示すように、サンプリング点は、描画対象の画素Ｒ０を基準に、６方向に連続して配置されている画素群（複数の画素）Ｒ１〜Ｒ２０である。例えば、描画対象の画素を中心に放射状に配置された画素群である。このようにすれば、放射状の光芒を表現することができる。
【００８７】
より具体的に説明すると、本実施形態では、図７（Ｂ）に示すように、描画対象の画素Ｒ０を基準に、放射状に伸びる長さや方向（ＵＶ座標系におけるＵ軸或いはＶ軸に対する各角度）を決定して放射形状を決定し、放射形状に応じた画素群（Ｒ０〜Ｒ２０）の画素値を全て加算した値（合計値）を、画素Ｒ０の画素値とする。
【００８８】
このようにすれば、放射状の光芒を表現することができる。例えば、雪の結晶に光芒を生じさせる場合には、放射状にきらめく光芒を表現することができる。
【００８９】
（３）応用例３
本実施形態では、サンプリング点の形状を元画像（ゲーム状況、場面、シーン）又は時間経過に応じて変化させるようにしてもよい。また、本実施形態では、元画像（ゲーム状況、場面、シーン）又は時間経過に応じてサンプリング点の縮小、拡大させるようにしてもよい。また、図３（Ａ）（Ｂ）に示すように描画対象の画素Ｐ０を中心にサンプリング点を決める場合には、クロス形状を回転させて（フレーム単位で、角度θ１〜θ４を変化させて）、形状に沿った画素をサンプリング点として決めるようにしてもよい。
【００９０】
（４）応用例４
本実施形態では、元画像を第１、第２の元画像に分けて、各元画像用のエフェクト画像生成し、各エフェクト画像を元画像に合成することによって、最終的な出力画像を生成してもよい。
【００９１】
より具体的に説明すると、太陽オブジェクトと水面オブジェクトとが含まれる元画像Ｆにおいて、太陽オブジェクトを含み、水面オブジェクトを含まない第１の元画像Ｆ１を生成し、第１の元画像Ｆ１に基づいて、図６（Ａ）に示すようなライン形状のサンプリング点を用いて、エフェクト画像Ｃ１を生成する。
【００９２】
一方、水面オブジェクトを含み、太陽オブジェクトを含まない第２の元画像Ｆ２を生成し、第２の元画像Ｆ２に基づいて、図３（Ａ）に示すようなクロス形状のサンプリング点を用いて、エフェクト画像Ｃ２を生成する。
【００９３】
そして、太陽オブジェクトと水面オブジェクトとが描画された元画像Ｆに、エフェクト画像Ｃ１と、エフェクト画像Ｃ２とを加算合成する処理を行い、出力画像を生成する。このようにすれば、水面についてはクロス形状の光芒を表現すると共に、太陽がライン形状に差し込むような光芒を表現することができる。
【符号の説明】
【００９４】
１００  処理部、１１０  オブジェクト空間設定部、１１１  移動・動作処理部、
１２０  画像生成部、１２１  輝度調整画像生成部、１２２  エフェクト画像生成部、
１３０  音処理部、１６０  入力部、１６２  検出部、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、１９６  通信部、
２００  記憶部、２１０  主記憶部、２１１  第１の画像バッファ、
２１２  第２の画像バッファ、２１３  オブジェクトデータ記憶部、
２１４  Ｚバッファ
【図１】
2011053737.tif 000003
【図２】
2011053737.tif 000004
【図３】
2011053737.tif 000005
【図５】
2011053737.tif 000006
【図６】
2011053737.tif 000007
【図７】
2011053737.tif 000008
【図４】
2011053737.tif 000009