説明

プログラム、情報記憶媒体及び画像生成装置

【課題】少ない処理負荷で、光の反射或いは光芒についてよりリアルな表現を行うことが可能なプログラム、情報記憶媒体及び画像生成装置を提供すること。
【解決手段】元画像と、当該元画像に基づき生成されたエフェクト画像とを合成する。エフェクト画像は次のように生成する。すなわち、所定条件に基づいて、元画像の高輝度部分を抽出して輝度調整を行い輝度調整画像を生成し、輝度調整画像の画素毎に、画素の画素値に当該画素近傍の複数画素の画素値それぞれを加算する処理を含む画素値演算を行いエフェクト画像を生成する処理を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、プログラム、情報記憶媒体及び画像生成装置に関する。
【背景技術】
【0002】
従来より、仮想的な3次元空間であるオブジェクト空間において仮想カメラ(所与の視点)から見える画像を生成する画像生成装置(ゲーム装置)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【0003】
さて、このような画像生成装置では、仮想現実感を向上させるために、よりリアルな画像を生成することが重要な課題になっている。オブジェクト空間において、光源からの光の反射や光芒を、リアルに表現可能な画像を生成することが望まれている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2000−197766号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかし、従来の画像生成装置では、光の反射をリアルに生じさせるものではなかった。また、レンダリング処理にかかる負荷が高いものであった。
【0006】
本発明は、以上の課題に鑑みたものであり、少ない処理負荷で、光の反射や光芒についてよりリアルな表現を行うことが可能なプログラム、情報記憶媒体及び画像生成装置を提供することにある。
【課題を解決するための手段】
【0007】
(1)本発明は、画像生成処理を行うプログラムであって、元画像と、当該元画像に基づき生成されたエフェクト画像とを合成する処理を行う画像生成部として、コンピュータを機能させ、所定条件に基づいて前記元画像の高輝度部分を抽出して輝度調整を行い輝度調整画像を生成する輝度調整画像生成部と、前記輝度調整画像の画素毎に、画素の画素値に当該画素近傍の複数画素の画素値それぞれを加算する処理を含む画素値演算を行い前記エフェクト画像を生成する処理を行うエフェクト画像生成部として、前記画像生成部を機能させるプログラムに関する。また、本発明は、上記プログラムを記憶した情報記憶媒体、上記各部として構成する画像生成装置に関係する。本発明によれば、少ない処理負荷で、高輝度部分について光の反射、光芒をリアルに表現可能な画像を生成することができる。
【0008】
(2)また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記輝度調整画像生成部が、前記所定条件に基づいて前記元画像の高輝度部分を抽出した後に、更にノイズを加えて輝度調整を行い、前記輝度調整画像を生成するようにしてもよい。本発明によれば、高輝度部分の所与の箇所において、反射、光芒を表現することができ、より自然でリアルな画像を生成することができる。
【0009】
(3)また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記画素近傍の複数画素は、一方向又は複数方向に、連続して配置されている画素群であるようにしてもよい。本発明によれば一方向又は複数方向に応じた反射、光芒を表現することができる。
【0010】
(4)また、本発明のプログラム、情報記憶媒体、画像生成装置は、前記輝度調整画像生成部が、前記元画像の画素毎に、画素の輝度値が所定輝度値以上か否かを判断し、画素の輝度値が所定輝度値以上である場合に、当該画素を高輝度画素として抽出するようにしてもよい。本発明によれば、高輝度部分を抽出する処理を画素単位で行うので、より精細でリアルな光の反射、光芒を表現することができる。
【図面の簡単な説明】
【0011】
【図1】本実施形態の画像生成装置の機能ブロック図の例。
【図2】本実施形態の画像生成処理の概要図。
【図3】図3(A)(B)は、サンプリング点の説明図。
【図4】図4(A)は、元画像の一例。図4(B)は、元画像とエフェクト画像とを合成した画像の一例。
【図5】本実施形態のフローチャート図。
【図6】図6(A)(B)は、サンプリング点の応用例を説明するための図。
【図7】図7(A)(B)は、サンプリング点の応用例を説明するための図。
【発明を実施するための形態】
【0012】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【0013】
1.構成
図1に本実施形態の画像生成装置(ゲーム装置)の機能ブロック図の例を示す。なお本実施形態の画像生成装置は図1の構成要素(各部)の一部を省略した構成としてもよい。
【0014】
入力部160は、プレーヤがオブジェクト(プレーヤキャラクタ、移動体)の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。
【0015】
記憶部200は、処理部100や通信部196などのワーク領域となるもので、その機能はRAM(VRAM)などにより実現できる。
【0016】
第1の画像バッファ211には、元画像がレンダリングされる。また、第2の画像バッファ212は、元画像がコピーされ、その後、輝度調整、画素値演算処理が行われエフェクト画像が生成される。
【0017】
また、オブジェクトデータ記憶部213は、プレーヤの操作対象及び非操作対象のオブジェクト(プレーヤキャラクタや固定物等)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ、法線ベクトル、α値等)を記憶する。
【0018】
また、Zバッファ214は、第1の画像バッファ211に描画される各画素の奥行き値(深度値、Z値)が記憶される。
【0019】
なお、入力部160は、加速度センサや撮像部、或いは角速度を検出するジャイロセンサを備えた入力機器(入力装置)によってプレーヤからの入力データ(操作データ)を入力できるものでもよい。例えば、入力機器は、プレーヤが把持して動かすものであってもよいし、プレーヤが身につけて動かすものであってもよい。また、入力機器には、プレーヤが把持する刀型コントローラや銃型コントローラ、あるいはプレーヤが身につける(プレーヤが手に装着する)グローブ型コントローラなど実際の道具を模して作られたコントローラも含まれる。また入力機器には、入力機器と一体化されているゲーム装置、携帯型ゲーム装置、携帯電話なども含まれる。検出部162は、入力部160からの入力情報を検出する処理を行う。
【0020】
例えば、入力機器に加速度センサを備えている場合には、加速度センサは、3軸(X軸、Y軸、Z軸)の加速度を検出する。すなわち、加速度センサは、上下方向、左右方向、及び、前後方向の加速度を検出することができる。
【0021】
また、加速度センサは、1軸、2軸、6軸の加速度を検出するものであってもよい。なお、加速度センサから検出された加速度は、入力機器の通信部によってゲーム装置(本体装置)に送信される。
【0022】
また、入力機器に撮像部、赤外線フィルタ、レンズ、撮像素子(イメージセンサ)、画像処理回路を含む場合には次のように、撮像画像における光源の位置情報(特定位置)を検出してもよい。具体的には、赤外線フィルタは、入力機器の前方に配置され、表示部190に関連付けられて配置されている光源から入射する光から赤外線のみを通過させる。レンズは、赤外線フィルタを透過した赤外線を集光して撮像素子へ出射する。撮像素子は、例えば、CMOSセンサやCCDのような固体撮像素子であり、レンズが集光した赤外線を撮像して撮像画像を生成する。撮像素子で生成された撮像画像は、画像処理回路で処理される。例えば、撮像素子から得られた撮像画像を処理して高輝度部分を検知し、撮像画像における光源の位置情報(特定位置)を検出する。なお、光源が複数存在する場合には、撮像画像上の位置情報を検出する。また、検出した撮像画像上の位置情報は、通信部によって、本体装置に送信される。
【0023】
情報記憶媒体180(コンピュータにより読み取り可能な媒体)は、プログラムやデータなどを格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などにより実現できる。処理部100は、情報記憶媒体180に格納されるプログラム(データ)に基づいて本実施形態の種々の処理を行う。情報記憶媒体180には、本実施形態の各部としてコンピュータを機能させるためのプログラム(各部の処理をコンピュータに実行させるためのプログラム)を記憶することができる。
【0024】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、タッチパネル型ディスプレイ、或いはHMD(ヘッドマウントディスプレイ)などにより実現できる。音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【0025】
通信部196は外部(例えば他の画像生成装置)との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0026】
なお、サーバが有する情報記憶媒体や記憶部に記憶されている本実施形態の各部としてコンピュータを機能させるためのプログラムやデータを、ネットワークを介して受信し、受信したプログラムやデータを情報記憶媒体180や記憶部200に記憶してもよい。このようにプログラムやデータを受信して画像生成装置を機能させる場合も本発明の範囲内に含む。
【0027】
処理部100(プロセッサ)は、入力部160からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【0028】
この処理部100は記憶部200内の主記憶部210をワーク領域として各種処理を行う。処理部100の機能は各種プロセッサ(CPU、GPU、DSP等)、ASIC(ゲートアレイ等)などのハードウェアや、プログラムにより実現できる。
【0029】
処理部100は、オブジェクト空間設定部110、移動・動作処理部111、画像生成部(描画部)120、音処理部130を含む。なおこれらの一部を省略する構成としてもよい。
【0030】
オブジェクト空間設定部110は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ(地形)などの表示物を表す各種オブジェクト(ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト)をオブジェクト空間に配置設定する処理を行う。例えば、ワールド座標系でのオブジェクトの位置や回転角度(向き、方向と同義であり、例えば、ワールド座標系でのX、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を決定し、その位置(X、Y、Z)にその回転角度(X、Y、Z軸回りでの回転角度)でオブジェクトを配置する。
【0031】
移動・動作処理部111は、オブジェクト(キャラクタ、移動体等)の移動・動作演算(移動・動作シミュレーション)を行う。すなわち入力部160によりプレーヤが入力した操作データや、プログラム(移動・動作アルゴリズム)や、各種データ(モーションデータ)、物理法則などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作(モーション、アニメーション)させたりする処理を行う。具体的には、オブジェクトの移動情報(位置、回転角度、速度、或いは加速度)や動作情報(オブジェクトを構成する各パーツの位置、或いは回転角度)を、1フレーム(1/60秒)毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理(シミュレーション処理)や画像生成処理を行う時間の単位である。
【0032】
画像生成部120は、処理部100で行われる種々の処理の結果に基づいて描画処理を行い、これにより画像を生成し、表示部190に出力する。画像生成部120が生成する画像は、いわゆる2次元画像であってもよいし、いわゆる3次元画像であってもよい。
【0033】
2次元画像を生成する場合には、例えば、オブジェクト(スプライト)毎に優先度を設定し、設定された優先度が低いオブジェクトから順に描画する。オブジェクト同士が重なる場合には、優先度が低いオブジェクトの上に、優先度の高いオブジェクトを描画する。
【0034】
いわゆる3次元ゲーム画像を生成する場合には、まずオブジェクト(モデル)の各頂点の頂点データ(頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値
等)を含むオブジェクトデータ(モデルデータ)が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理(頂点シェーダによるシェーディング)が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理(テッセレーション、曲面分割、ポリゴン分割)を行うようにしてもよい。
【0035】
頂点処理では、頂点処理プログラム(頂点シェーダプログラム、第1のシェーダプログラム)に従って、頂点の移動処理や、座標変換、例えばワールド座標変換、視野変換(カメラ座標変換)、クリッピング処理、透視変換(投影変換)、ビューポート変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更(更新、調整)する。
【0036】
そして、頂点処理後の頂点データに基づいてラスタライズ(走査変換)が行われ、ポリゴン(プリミティブ)の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル(表示画面を構成するフラグメント)を描画するピクセル処理(ピクセルシェーダによるシェーディング、フラグメント処理)が行われる。ピクセル処理では、ピクセル処理プログラム(ピクセルシェーダプログラム、第2のシェーダプログラム)に従って、テクスチャの読出し(テクスチャマッピング)、色データの設定/変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ(ピクセル単位で画像情報を記憶できるバッファ。VRAM、レンダリングターゲット)に出力(描画)する。すなわち、ピクセル処理では、ピクセルデータ、ボクセルデータなどの画素データ(色(RGB)、α値、Z値、輝度等)をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ(所与の視点)から見える画像が生成される。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラから見える画像を生成することができる。
【0037】
なお、画像生成部120は、オブジェクト空間内の所与(任意)の視点から見える画像を生成するための仮想カメラ(視点)の制御処理を行う。具体的には、3次元の画像を生成する場合には、ワールド座標系における仮想カメラの位置(X、Y、Z)又は回転角度(例えば、X、Y、Z軸の各軸の正方向からみて時計回りに回る場合における回転角度)を制御する処理を行う。要するに、視点位置、視線方向、画角を制御する処理を行う。また、画像生成部120は、仮想カメラを、予め決められた回転角度で回転させてもよい。この場合には、仮想カメラの位置又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0038】
本実施形態では、プレーヤキャラクタの視点(一人称視点、(いわゆる、ファーストパーソン・シューティングゲーム))に基づいて画像を生成する処理を行うようにしてもよい。
【0039】
また、本実施形態では、仮想カメラの移動、向き、画角はプログラムで制御してもよいし、入力部160の入力情報に基づいて仮想カメラの移動、向き、画角を制御してもよい。
【0040】
例えば仮想カメラによりオブジェクト(例えば、プレーヤキャラクタ)を後方から撮影する場合には、オブジェクトの位置、向きの変化に仮想カメラが追従するように、仮想カメラの位置、仮想カメラの向きを制御する。この場合には、移動・動作処理部111で得られたオブジェクトの位置、向き又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた向きに設定したり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置(移動経路)又は向きを特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ(視点)が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【0041】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン(プリミティブ)の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ(頂点シェーダやピクセルシェーダ)により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【0042】
そして画像生成部120は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【0043】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後(透視投影変換後)のオブジェクトデータ(オブジェクトの頂点の位置座標、テクスチャ座標、色データ(輝度データ)、法線ベクトル、或いはα値等)は、画像バッファ(第1の画像バッファ211)に保存される。
【0044】
テクスチャマッピングは、記憶部200に記憶されるテクスチャ(テクセル値)をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定(付与)されるテクスチャ座標等を用いて記憶部200からテクスチャ(色(RGB)、α値などの表面プロパティ)を読み出す。そして、2次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【0045】
隠面消去処理としては、描画ピクセルのZ値(奥行き情報)が格納されるZバッファ(奥行きバッファ)を用いたZバッファ法(奥行き比較法、Zテスト)による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Zバッファに格納されるZ値を参照する。そして参照されたZバッファのZ値と、プリミティブの描画ピクセルでのZ値とを比較し、描画ピクセルでのZ値が、仮想カメラから見て手前側となるZ値(例えば小さなZ値)である場合には、その描画ピクセルの描画処理を行うとともにZバッファのZ値を新たなZ値に更新する。
【0046】
αブレンディング(α合成)は、α値(A値)に基づく半透明合成処理(通常αブレンディング、加算αブレンディング又は減算αブレンディング等)のことである。
【0047】
なお、α値は、各ピクセル(テクセル、ドット)に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度(透明度、不透明度と等価)、バンプ情報などとして使用できる。
【0048】
特に、本実施形態の画像生成部120は、元画像と、当該元画像に基づき生成されたエフェクト画像とを合成する処理を行う。
【0049】
また、本実施形態の画像生成部120は、輝度調整画像生成部121、エフェクト画像生成部122とを含む。
【0050】
輝度調整画像生成部121は、所定条件に基づいて元画像の高輝度部分を抽出して輝度調整を行い輝度調整画像を生成する。例えば、所定条件に基づいて元画像の高輝度部分を抽出した後に、更にノイズを加えて輝度調整を行い、輝度調整画像を生成する。より具体的説明すると、輝度調整画像生成部121は、元画像の画素毎に、画素の輝度値(画素の明るさを示す値)が所定輝度値以上か否かを判断し、画素の輝度値が所定輝度値以上である場合に、当該画素を高輝度画素として抽出し、画素の輝度値が所定輝度値未満である場合には当該画素を抽出されない画素とし、輝度値を下げる調整処理(例えば、輝度値を0にする調整処理)を行う。また、元画像はグレースケール画像(濃淡画像)でもよいし、色画像(RGB画像)でもよい。
【0051】
また、エフェクト画像生成部122は、輝度調整画像の画素毎に、画素の画素値に当該画素近傍の複数画素の画素値それぞれを加算する処理を含む画素値演算(画素演算、輝度演算、色値演算)を行いエフェクト画像(反射画像、光芒画像)を生成する処理を行う。例えば、エフェクト画像生成部122は、輝度調整画像の画素毎に、画素の画素値に当該画素近傍の、一方向又は複数方向に、連続して配置されている画素群の画素値それぞれを加算する処理を行って画素値演算を行い、エフェクト画像を生成する処理を行う。
【0052】
音処理部130は、処理部100で行われる種々の処理の結果に基づいて音処理を行い、BGM、効果音、又は音声などのゲーム音を生成し、音出力部192に出力する。
【0053】
なお、本実施形態の画像生成装置は、1人のプレーヤのみがプレイできるシングルプレーヤモード用の装置にしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードを備える装置にしてもよい。マルチプレーヤモードの場合には、複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末(ゲーム機、携帯電話)を用いて分散処理により生成してもよい。
【0054】
2.概要
本実施形態の画像生成装置は、光の反射、光芒を表現するための画像生成処理(ポストエフェクト処理)を行うものである。つまり、本実施形態では、図2に示すように、元画像を第1の画像バッファ(第1のレンダリングターゲット)211に描画する。そして、この元画像を第2の画像バッファ(第2のレンダリングターゲット)212にコピーし、コピーされた画像(元画像)に対して、所定条件に基づき輝度の高い部分を抽出して輝度調整画像Aを生成する。そして、輝度調整画像Aにノイズを加え輝度調整画像Bを生成する。そして、輝度調整画像Bの全ての画素それぞれについて画素値演算処理を行うことによってエフェクト画像C(反射画像、光芒画像)を生成する。最終的には、元画像とエフェクト画像Cとを半透明合成処理を行い、出力画像を生成する処理を行う。本実施形態によれば、少ない処理負荷で、高輝度部分について光が反射するような画像、光芒を表現した画像を表現することができる。以下詳細を説明する。
【0055】
3.本実施形態の処理の手法の詳細
(1)元画像の生成処理
本実施形態では、オブジェクト空間(3次元空間)において、所与の視点(仮想カメラ)から見える画像を生成する処理を行う。生成された画像を元画像として、第1の画像バッファ211に描画する。そして、元画像を、第2の画像バッファ212にコピー(描画)する処理を行う。
【0056】
(2)高輝度部分の抽出処理
本実施形態では、元画像(コピー用の元画像、第2の画像バッファ212に描画された元画像、入力画像)において、輝度(明るさ)の高い画素を抽出する処理を行う。これは、画像の明るい部分に光の反射や光芒が生じるようにするためである。
【0057】
具体的には、元画像の全ての画素それぞれにおいて、画素の輝度値が、所定輝度値(たとえば、0.5)以上か否かを判断して、当該画素を抽出するか否かを判断する処理を行う。例えば、画素P0のR,G,Bの3つの成分の値(R0、G0、B0)に基づいて、当該画素の輝度値K0を求める。例えば、輝度値K0は、輝度を求める所定式(例えば、RGB値の加重平均)によって求めることができる。
【0058】
そして、元画像の全ての画素それぞれにおいて輝度値を調整する処理を行う。すなわち、画素の輝度値が所定輝度値以上であると判断されると、高輝度の画素と判断して当該画素の輝度値をそのままの値として抽出する。一方、画素の輝度値が所定輝度値未満であると判断されると、高輝度の画素ではないと判断して当該画素の輝度値を0に調整(設定)する処理を行う。
【0059】
たとえば、画素P0の輝度値K0が所定輝度値(例えば、0.5)以上か否かを判断し、輝度値K0が所定輝度値以上である場合には、抽出する画素であると判断する。一方、輝度値K0が所定輝度値未満である場合には、抽出せずに輝度値を0に調整(設定)する処理を行う。
【0060】
そして、元画像の画素単位で順次に、画素の輝度値を抽出する、或いは輝度値を0にする処理を行うと輝度調整画像Aが生成される。つまり、高輝度部分を抽出した輝度調整画像Aが生成される。
【0061】
なお、本実施形態では、輝度調整する前に、元画像に輝度のコントラスト(濃淡)をつけるポストエフェクト処理を行ってから、輝度調整画像を生成してもよい。
【0062】
次に、本実施形態では、元画像の全ての画素について、輝度値が所定輝度値以上か否かを判断して、輝度値を調整した輝度調整画像Aについて、さらにノイズを加える処理を行う。ノイズを加える処理は必須ではないが、ノイズ処理を行う方がよりリアルな画像を生成することができる。
【0063】
具体的に説明すると、本実施形態では、輝度調整画像Aの高輝度値を有する画素(輝度値≧0.5の画素)においてノイズ値(不規則な乱数、0.0≦ノイズ値≦1.0)を乗算し、ノイズ値乗算後の輝度値が、所定輝度値以上か否かを判断し、所定輝度値以上である画素画素を抽出することによって輝度調整画像Bを生成する。つまり、高輝度部分が乱雑的に絞りこまれることになる。
【0064】
例えば、輝度調整画像Aの画素P0の輝度値K0(K0≧0.5)にノイズ値を乗算した値K0´が、所定輝度値(0.5)以上か否かを判断し、値K0´が輝度所定値以上である場合には、画素P0を輝度値K0´として抽出し、値K0´が輝度所定値(0.5)未満である場合には、画素P0の輝度値を0にする調整処理を行う。
【0065】
仮に、ノイズを入れずに画素値の演算などを行うと、結果的に光芒を生じる箇所が多数存在してしまうことになり、かえってリアルさに欠ける画像が生成されてしまうことになるが、本実施形態では、ノイズを入れるので、乱雑的に光芒が生じるようになりよりリアルな画像を生成することができる。つまり、ノイズを入れることによって不規則的に高輝度部分を抽出することができるので、出力画像を見る者にとって規則性を感じないリアルな画像を生成することができる。
【0066】
本実施形態では、予め用意されたノイズ関数(例えば、パーリンノイズなどのノイズ関数、ノイズテーブル)を用いて、ノイズを入れる処理を行っている。また、本実施形態では、ノイズ関数のパラメータを指定することによって、ノイズの振幅の変化(ノイズの細かさ、乱雑度合)を調整している。つまり、このパラメータを調整(設定)することによって、輝度調整画像Bにおいて抽出される高輝度の画素の割合を多くしたり、少なくしたりする調整を行うことができる。
【0067】
(3)画素値演算処理
本実施形態では、輝度調整画像Bを用いて画素値演算処理を行い、エフェクト画像Cを生成する処理を行う。
【0068】
より具体的に説明すると、本実施形態では、輝度調整画像Bの全ての画素について、画素の画素値に、当該画素近傍(当該画素周囲)の複数の画素の各画素値を加算する処理を行う。このようにすれば、サンプリング点の連なる方向に光芒が生じるような出力画像を生成することができる。
【0069】
例えば、図3(A)に示すように、描画対象の画素(注目画素)P0の画素値(輝度値、RGBの各色値)と、サンプリング点P1〜P16それぞれの画素値とを加算し、加算された値を画素P0の画素値とする処理を行う。すなわち、P0の画素値をT0、P1〜P16の画素値をT1〜T16とすると、下記の数式(1)によって、画素値演算後の画素P0の画素値T0´が求められる。
【0070】
T0´=T0+T1+T2+・・・+T16・・・(1)
図3(A)に示すように、サンプリング点は、複数方向に連続して配置されている画素群(複数の画素)である。例えば、描画対象の画素を中心にクロス形状に配置された画素群である。このようにすれば、クロス形状の光芒を表現することができる。
【0071】
本実施形態では、図3(B)に示すように、画素P0の点を基準に、長さL1〜L4や方向(UV座標系におけるU軸或いはV軸に対する各角度等)を決定して形状を決定し、形状に応じた画素群(P0〜P16)の画素値の全てを加算し、加算された値を画素P0の画素値とする。この形状は、結果的に光の反射や光芒の形状に反映されるので、予め反射方向や、光芒の形状が決められている場合には、この形状に応じた画素群をサンプリング点として決定することが望ましい。
【0072】
なお、本実施形態では、主に、水面の光芒を表現するものであるので、図3(B)に示すようなクロス形状(×印形状)に応じた画素群をサンプリング点とすることが望ましい。言い換えると、本実施形態において、サンプリング点(画素値演算の対象となる画素群)P1〜P16は、当該描画対象画素P0を挟んで左上と右下方向に一列に並ぶ画素群と、描画対象画素を挟んで右上と左下方向に一列に並ぶ画素群とすることが望ましい。
【0073】
本実施形態では、輝度調整画像Bの全ての画素について、画素値演算処理を行う。このように、全画面処理を行う理由は、全画素それぞれに、画素値演算処理を行うことによって、はじめて、光の反射画像、光芒画像をリアルに表現することができるからである。以上の全画面処理によって、エフェクト画像Cが生成される。
【0074】
(4)元画像にエフェクト画像を合成する手法
本実施形態では、エフェクト画像Cが生成されると、元画像が描画されている第1の画像バッファ211(第1のレンダリングターゲット)に、このエフェクト画像Cを半透明合成する処理(αブレンディング処理)を行う。例えば、本実施形態では、加算合成処理を行っている。
【0075】
つまり、半透明合成パラメータα値、出力画像の画素値Cp、元画像の画素値Ci、エフェクト画像Cの画素値Cjとすると、下記の数式(2)で、Cpを求めることができる。
【0076】
Cp=Ci+α*Cj・・・(2)
以上の処理によって、本実施形態では、光の反射や光芒を表現したリアルな出力画像を生成することができる。
【0077】
例えば、図4(A)は、元画像の一例であり、図4(B)は、元画像とエフェクト画像Cとを合成した出力画像の一例である。図4(B)に示すように、特に輝度が強いところはクロス形状の反射(光芒)を表現し、また、輝度の低い部分については、反射の表現がされていないので、輝度の濃淡に応じた反射をリアルに表現している。
【0078】
4.フローチャート
図5を用いて、本実施形態の処理の流れについて説明する。まず、元画像を第1の画像バッファ211に描画する処理を行う(ステップS10)。次に、元画像を第2の画像バッファ212にコピーする処理を行う(ステップS11)。次に、元画像の高輝度部分を抽出して輝度調整を行う(ステップS12)。すなわち、輝度調整画像Aを生成する。次に、ノイズを入れてさらに輝度調整を行う(ステップS13)。すなわち、輝度調整画像Bを生成する。
【0079】
次に、輝度調整画像Bにおいて、描画対象の画素の画素値に、描画対象の画素近傍の複数の画素の画素値それぞれを加算する画素値演算処理を行う(ステップS14)。次に、輝度調整画像Bの全ての画素について、画素値演算処理を行ったか否かを判断し(ステップS15)、輝度調整画像Bの全ての画素について、画素値演算処理を行っていない場合には(ステップS15のN)、ステップS14に戻る。
【0080】
輝度調整画像Bの全ての画素について、画素値演算処理を行った場合には(ステップS15のY)、輝度調整画像Bの全ての画素について、画素値演算処理が行われた画像を、エフェクト画像Cとし、元画像とエフェクト画像Cとを加算合成する処理を行う(ステップS16)。以上で処理が終了する。
【0081】
5.応用例
(1)応用例1
本実施形態では、画素値演算処理において、サンプリング点を、一方向に連続して配置される画素群としてもよい。
【0082】
例えば、図6(A)に示すように、描画対象の画素Q0を基準に、一方向に連続して配置されている画素群(複数の画素)Q1〜Q6をサンプリング点としてもよい。例えば、一方向に連続して配置される画素群は、描画対象の画素を中心にライン形状に配置された画素群である。
【0083】
より具体的に説明すると、本実施形態では、図6(B)に示すように、描画対象の画素Q0の点を基準に、長さや方向(UV座標系におけるU軸或いはV軸に対する角度)を決定してライン形状を決定し、ライン形状に応じた画素群(例えば、Q0〜Q6)の画素値を全て加算した値(合計値)を画素Q0の画素値とする。
【0084】
このようにすれば、ライン形状の光芒を表現することができる。例えば、雲の隙間から太陽の光が差し込むような場面では、光が差し込むような光芒を表現した画像(いわゆるゴッドレイ、木漏れ日などを表現した画像)を生成することができる。
【0085】
(2)応用例2
また、本実施形態では、画素値演算処理において、サンプリング点を6方向に連続して配置される画素群としてもよい。
【0086】
例えば、図7(A)に示すように、サンプリング点は、描画対象の画素R0を基準に、6方向に連続して配置されている画素群(複数の画素)R1〜R20である。例えば、描画対象の画素を中心に放射状に配置された画素群である。このようにすれば、放射状の光芒を表現することができる。
【0087】
より具体的に説明すると、本実施形態では、図7(B)に示すように、描画対象の画素R0を基準に、放射状に伸びる長さや方向(UV座標系におけるU軸或いはV軸に対する各角度)を決定して放射形状を決定し、放射形状に応じた画素群(R0〜R20)の画素値を全て加算した値(合計値)を、画素R0の画素値とする。
【0088】
このようにすれば、放射状の光芒を表現することができる。例えば、雪の結晶に光芒を生じさせる場合には、放射状にきらめく光芒を表現することができる。
【0089】
(3)応用例3
本実施形態では、サンプリング点の形状を元画像(ゲーム状況、場面、シーン)又は時間経過に応じて変化させるようにしてもよい。また、本実施形態では、元画像(ゲーム状況、場面、シーン)又は時間経過に応じてサンプリング点の縮小、拡大させるようにしてもよい。また、図3(A)(B)に示すように描画対象の画素P0を中心にサンプリング点を決める場合には、クロス形状を回転させて(フレーム単位で、角度θ1〜θ4を変化させて)、形状に沿った画素をサンプリング点として決めるようにしてもよい。
【0090】
(4)応用例4
本実施形態では、元画像を第1、第2の元画像に分けて、各元画像用のエフェクト画像生成し、各エフェクト画像を元画像に合成することによって、最終的な出力画像を生成してもよい。
【0091】
より具体的に説明すると、太陽オブジェクトと水面オブジェクトとが含まれる元画像Fにおいて、太陽オブジェクトを含み、水面オブジェクトを含まない第1の元画像F1を生成し、第1の元画像F1に基づいて、図6(A)に示すようなライン形状のサンプリング点を用いて、エフェクト画像C1を生成する。
【0092】
一方、水面オブジェクトを含み、太陽オブジェクトを含まない第2の元画像F2を生成し、第2の元画像F2に基づいて、図3(A)に示すようなクロス形状のサンプリング点を用いて、エフェクト画像C2を生成する。
【0093】
そして、太陽オブジェクトと水面オブジェクトとが描画された元画像Fに、エフェクト画像C1と、エフェクト画像C2とを加算合成する処理を行い、出力画像を生成する。このようにすれば、水面についてはクロス形状の光芒を表現すると共に、太陽がライン形状に差し込むような光芒を表現することができる。
【符号の説明】
【0094】
100 処理部、110 オブジェクト空間設定部、111 移動・動作処理部、
120 画像生成部、121 輝度調整画像生成部、122 エフェクト画像生成部、
130 音処理部、160 入力部、162 検出部、
180 情報記憶媒体、190 表示部、192 音出力部、196 通信部、
200 記憶部、210 主記憶部、211 第1の画像バッファ、
212 第2の画像バッファ、213 オブジェクトデータ記憶部、
214 Zバッファ

【特許請求の範囲】
【請求項1】
画像生成処理を行うプログラムであって、
元画像と、当該元画像に基づき生成されたエフェクト画像とを合成する処理を行う画像生成部として、コンピュータを機能させ、
所定条件に基づいて前記元画像の高輝度部分を抽出して輝度調整を行い輝度調整画像を生成する輝度調整画像生成部と、
前記輝度調整画像の画素毎に、画素の画素値に当該画素近傍の複数画素の画素値それぞれを加算する処理を含む画素値演算を行い前記エフェクト画像を生成する処理を行うエフェクト画像生成部として、前記画像生成部を機能させることを特徴とするプログラム。
【請求項2】
請求項1において、
前記輝度調整画像生成部が、
前記所定条件に基づいて前記元画像の高輝度部分を抽出した後に、更にノイズを加えて輝度調整を行い、前記輝度調整画像を生成することを特徴とするプログラム。
【請求項3】
請求項1又は2において、
前記画素近傍の複数画素は、
一方向又は複数方向に、連続して配置されている画素群であることを特徴とするプログラム。
【請求項4】
請求項1〜3のいずれかにおいて、
前記輝度調整画像生成部が、
前記元画像の画素毎に、画素の輝度値が所定輝度値以上か否かを判断し、画素の輝度値が所定輝度値以上である場合に、当該画素を高輝度画素として抽出することを特徴とするプログラム。
【請求項5】
コンピュータにより読取可能な情報記憶媒体であって、請求項1〜4のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
【請求項6】
画像生成処理を行う画像生成装置であって、
元画像と、当該元画像に基づき生成されたエフェクト画像とを合成する処理を行う画像生成部を含み、
前記画像生成部が、
所定条件に基づいて前記元画像の高輝度部分を抽出して輝度調整を行い輝度調整画像を生成する輝度調整画像生成部と、
前記輝度調整画像の画素毎に、画素の画素値に当該画素近傍の複数画素の画素値それぞれを加算する処理を含む画素値演算を行い前記エフェクト画像を生成する処理を行うエフェクト画像生成部を含むことを特徴とする画像生成装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図4】
image rotate


【公開番号】特開2011−53737(P2011−53737A)
【公開日】平成23年3月17日(2011.3.17)
【国際特許分類】
【出願番号】特願2009−199405(P2009−199405)
【出願日】平成21年8月31日(2009.8.31)
【出願人】(000134855)株式会社バンダイナムコゲームス (1,157)
【Fターム(参考)】