画像処理プログラムおよびコンピュータ読み取り可能な記録媒体
【課題】簡易な処理により、雨で濡れた路面等により周囲の景色が反射して見える画像を生成する。
【解決手段】仮想視点を基準とした視錐台の内部に配置されたオブジェクトを投影平面に投影する座標変換手段、前記オブジェクトの色情報および深度情報をメモリに保持する保持手段、前記反射オブジェクト上のピクセルの処理に際し、当該ピクセルに対応する前記反射オブジェクトの法線値および座標値を算出する計算手段、前記座標値を始点とする反射線分を仮想空間内に求める反射線分計算手段、前記視錐台内で、前記反射線分が前記オブジェクトと交差する交差座標があるか否かを判定する交差判定手段、前記交差座標があると判定した場合、前記保持された当該被反射ピクセルの色情報を前記ピクセルの色情報に反映し、前記交差座標がないと判定した場合、所定の色情報を前記ピクセルの色情報に反映するピクセル色反映手段として機能させる。
【解決手段】仮想視点を基準とした視錐台の内部に配置されたオブジェクトを投影平面に投影する座標変換手段、前記オブジェクトの色情報および深度情報をメモリに保持する保持手段、前記反射オブジェクト上のピクセルの処理に際し、当該ピクセルに対応する前記反射オブジェクトの法線値および座標値を算出する計算手段、前記座標値を始点とする反射線分を仮想空間内に求める反射線分計算手段、前記視錐台内で、前記反射線分が前記オブジェクトと交差する交差座標があるか否かを判定する交差判定手段、前記交差座標があると判定した場合、前記保持された当該被反射ピクセルの色情報を前記ピクセルの色情報に反映し、前記交差座標がないと判定した場合、所定の色情報を前記ピクセルの色情報に反映するピクセル色反映手段として機能させる。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ビデオゲームやCG(Computer Graphics)ビデオ等における表示画像の生成技術に関する。
【背景技術】
【0002】
ビデオゲームやCGビデオ等においては、雨で濡れた路面や水面あるいは鏡面等により周囲の景色が反射して見える画像が必要とされるシーンがしばしば存在する。
【0003】
特許文献1には、太陽からの光の反射により生じる水面のきらめき(グリッター)を、少ない処理負荷でリアルタイムに実現するための技術が開示されている。ただし、水面のきらめきを表現するのみであり、周囲の景色の反射の画像を水面上に表現するものではない。
【0004】
一方、特許文献2には、鏡面反射画像を生成する技術が開示されている。すなわち、第1の3次元画像データを生成した後、第1の3次元画像データを鏡面反射させた第2の3次元画像データを生成し、第2の3次元画像データに対して、くり抜き表示領域を設定する。そして、第1、第2の3次元画像データを第1、第2の2次元画像データに変換した後、第1の2次元画像データに、くり抜き表示領域の第2の2次元画像データを加算描画する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第4001556号公報
【特許文献2】特開2007−259942号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述した特許文献2に開示された技術によれば、画面内に鏡面反射画像を表示することができるが、基本的な第1の3次元画像データとは別に、第1の3次元画像データを鏡面反射させた第2の3次元画像データを生成し、これを第2の2次元画像データに変換しなければならず、処理負荷が過大になるという問題がある。
【0007】
また、第2の2次元画像データのうち、くり抜き表示領域の画像のみが最終的に表示されるものであるにもかかわらず、それ以外の全体的な3次元画像データおよび2次元画像データが生成されることから、処理内容に無駄があるという問題もあった。
【0008】
更に、第1の3次元画像データを鏡面反射させた第2の3次元画像データを生成するにあたり、床面等の平坦な鏡面に対して鏡面対象となる位置に一律にオブジェクトを配置することから、途中で傾斜が変化する反射物や、傾斜の異なる複数の反射物が存在する場合には、個別に鏡面反射画像を生成しなければならず、処理が複雑になりすぎるという問題があった。
【0009】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、簡易な処理により、雨で濡れた路面等により周囲の景色が反射して見える画像を生成することのできる画像処理プログラムおよびコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【0010】
上記の課題を解決するため、本発明にあっては、請求項1に記載されるように、コンピュータを、少なくとも反射オブジェクトを含むオブジェクトが配置された仮想空間に対し、仮想視点を設定し、当該仮想視点を基準とした視錐台の内部に配置されたオブジェクトを投影平面に投影する座標変換手段、前記投影平面のピクセル毎に前記仮想空間における前記オブジェクトの色情報および深度情報をメモリに保持する保持手段、前記反射オブジェクト上の前記ピクセルの処理に際し、当該ピクセルに対応する前記反射オブジェクトの法線値および座標値を算出する計算手段、前記算出された座標値および法線値と、前記仮想視点の位置とに基づき、前記座標値を始点とする反射線分を仮想空間内に求める反射線分計算手段、前記視錐台内で、前記反射線分が前記オブジェクトと交差する交差座標があるか否かを判定する交差判定手段、前記交差座標があると判定した場合、前記座標値から最も近い交差座標に対応する被反射ピクセルを算出し、前記保持された当該被反射ピクセルの色情報を前記ピクセルの色情報に反映し、前記交差座標がないと判定した場合、所定の色情報を前記ピクセルの色情報に反映するピクセル色反映手段として機能させる画像処理プログラムを要旨としている。
【0011】
また、請求項2に記載されるように、請求項1に記載の画像処理プログラムであって、前記交差判定手段は、前記反射線分と、前記視錐台の面との交点を求め、前記反射線分の始点から前記交点の間に複数個のサンプルポイントを設定し、前記反射線分の始点側から、隣り合う2つのサンプルポイントを決定し、当該サンプルポイントに対応する前記投影平面上の2つのサンプルピクセルを算出し、前記メモリから当該2つのサンプルピクセルの深度値を取得し、当該深度値から前記2つのサンプルピクセルに対応する前記オブジェクトの仮想空間上の座標値を算出し、当該2つの座標値の間を結ぶ線分が前記反射線分と交差するか否かを判定し、前記反射線分との交差がある場合は、前記交差した点の座標を前記交差座標として前記判定を終了し、前記反射線分との交差がない場合は、次の隣り合う2つのサンプルポイントを決定して前記判定までを繰り返し、前記設定した全てのサンプルポイントに基づく前記判定によって前記反射線分との交差がない場合には、前記交差座標はないものとして判定を終了するようにすることができる。
【0012】
また、請求項3に記載されるように、請求項1または2のいずれか一項に記載の画像処理プログラムであって、コンピュータを、前記反射オブジェクトの法線情報を変更するための法線マップを作成する手段、前記反射オブジェクトに対応する前記ピクセルの法線値と、当該ピクセルに対応する前記法線マップの法線値に基づいて、前記ピクセルの法線値を変更する手段として機能させるようにすることができる。
【0013】
また、請求項4に記載されるように、請求項1乃至3のいずれか一項に記載の画像処理プログラムであって、前記ピクセル色反映手段は、前記反射オブジェクトの法線値に基づいて、前記反射オブジェクトの前記ピクセルの色情報における輝度を変更するようにすることができる。
【0014】
また、請求項5に記載されるように、請求項1乃至4のいずれか一項に記載の画像処理プログラムを記録するコンピュータ読み取り可能な記録媒体として構成することができる。
【発明の効果】
【0015】
本発明の画像処理プログラムおよびコンピュータ読み取り可能な記録媒体にあっては、簡易な処理により、雨で濡れた路面等により周囲の景色が反射して見える画像を生成することができる。
【図面の簡単な説明】
【0016】
【図1】本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【図2】雨路面高さテクスチャの生成処理の例を示すフローチャートである。
【図3】雨路面高さテクスチャの例を示す図である。
【図4】雨路面法線テクスチャの生成処理の例を示すフローチャートである。
【図5】雨路面法線テクスチャの例を示す図である。
【図6】濡れた路面等のポリゴン描画処理の例を示すフローチャートである。
【図7】ビュー空間および射影空間の例を示す図である。
【図8】処理例を示す図(その1)である。
【図9】処理例を示す図(その2)である。
【図10】処理例を示す図(その3)である。
【図11】生成画像例を示す図(その1)である。
【図12】生成画像例を示す図(その2)である。
【図13】生成画像例を示す図(その3)である。
【発明を実施するための形態】
【0017】
以下、本発明の好適な実施形態につき説明する。
【0018】
<構成>
図1は本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【0019】
図1において、画像処理装置は、ゲームアプリケーション等の3D(3 Dimension)オブジェクトの描画命令を含む3Dアプリケーション(3Dアプリケーションプログラム)2と、この3Dアプリケーション2から描画命令等を受け取るOpenGL、Direct3D等の3D−API(Application Program Interface)3と、描画処理を実行するGPU(Graphics Processing Unit)4とを備えている。なお、図示を省略しているが、3Dアプリケーション2および3D−API3の実行環境として、一般的なコンピュータのCPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)等のハードウェア資源が設けられている。
【0020】
GPU4は、3D−API3からGPUコマンドおよびデータストリームを受け付けるGPUフロントエンド部41と、このGPUフロントエンド部41から3D頂点データを受け取って2Dスクリーン空間に投影した座標変換(行列の転置)等を行うプログラマブル頂点プロセッサ(VS:Vertex Processor)42と、GPUフロントエンド部41から与えられる頂点インデックスストリームとプログラマブル頂点プロセッサ42で座標変換された頂点データとを組み立てる基本アセンブリ部43とを備えている。プログラマブル頂点プロセッサ42および基本アセンブリ部43の部分は、バーテックスシェーダと呼ばれている。
【0021】
また、GPU4は、基本アセンブリ部43で組み立てられた多角形、線および点のデータからラスタライズおよび補間を行うラスタライズ/補間部44と、このラスタライズ/補間部44からラスタライズ済のピクセル(フラグメント)データを受け取ってテクスチャマッピング等を行うプログラマブルピクセルプロセッサ(PS:Pixel Processor)45と、ラスタライズ/補間部44から与えられるピクセル位置ストリームとプログラマブルピクセルプロセッサ45から与えられるテクスチャマッピング済のデータからラスタ演算(ピクセルデータの画面上での配置)を行うラスタ演算部46とを備えている。ラスタライズ/補間部44、プログラマブルピクセルプロセッサ45およびラスタ演算部46の部分は、ピクセルシェーダと呼ばれている。
【0022】
また、GPU4は、ラスタ演算部46により描画内容が書込・更新されるとともに、GPU4内の各部から参照・更新が可能な雨路面高さテクスチャ471、雨路面法線テクスチャ472、深度情報テクスチャ473および色情報テクスチャ474と、ラスタ演算部46により描画内容が書込・更新されるフレームバッファ48とを備えている。
【0023】
雨路面高さテクスチャ471、雨路面法線テクスチャ472、深度情報テクスチャ473および色情報テクスチャ474は、濡れた路面等の描画処理において使用される。雨路面高さテクスチャ471と雨路面法線テクスチャ472については、その生成処理を含め、後述する。
【0024】
深度情報テクスチャ473は、描画フレームの各ピクセルの深度情報(視点からのz方向距離)を保持するテクスチャである。色情報テクスチャ474は、描画フレームの各ピクセルの色情報を保持するテクスチャである。テクスチャは、テクスチャ空間のU座標(一般的に、0≦U≦1)とV座標(一般的に、0≦V≦1)に対応して値を保持するマップデータである。テクスチャは一般に色情報のデータを保持する形式となっているため、色情報以外の情報を保持する場合には色情報の形式に変換されて格納される。
【0025】
フレームバッファ48に書き込まれた内容は周期的に読み出されてビデオ信号に変換され、モニタ装置等によって表示される。
【0026】
また、処理に必要なデータがデータ保持部5に保持されている。主なデータとしては、モデルデータと、モデル姿勢と、視点・視方向・画角と、外部色とがある。モデルデータには、マテリアルと、頂点座標と、法線と、テクスチャと、頂点カラーとが含まれる。
【0027】
モデルデータは、仮想3次元空間内のモデルの標準姿勢における形態を表現したポリゴンデータである。インスタンス化されて仮想3次元空間内に配置されたモデルはオブジェクトと呼ぶ場合がある。マテリアルは、モデルの種別を区別する情報であり、雨により濡れた場合に反射する道路(路面)であるとか、鏡面であるとかを示す。頂点座標は、モデルのポリゴンの頂点の座標(x座標、y座標、z座標)である。法線は、各頂点の面する方向を示すベクトル値である。テクスチャは、ポリゴンの面に貼り付けられる画像データである。頂点カラーは、各頂点のカラーを示すRGB(Red Green Blue)等の値である。
【0028】
モデル姿勢は、各モデルの仮想3次元空間内における位置および回転角度を示す値である。視点・視方向・画角は、仮想3次元空間内のモデルを投影面上の2次元画像として描画する際の仮想カメラ(仮想視点)の3次元位置、視線中心方向および視野角である。外部色は、空の色等であり、他のモデルからの反射がない場合に反射光の色として用いられる。
【0029】
なお、画像処理装置1にGPU4を用いた構成について説明したが、汎用的なコンピュータのハードウェア上でソフトウェア的にグラフィックエンジンを実現した場合にも本発明を適用できることは言うまでもない。この場合、GPU4の機能は3Dアプリケーション2や3D−API3と同様にソフトウェア的に実現され、テクスチャ471〜474やフレームバッファ48はメモリ(RAM)上に配置される。
【0030】
<動作>
図2は雨路面高さテクスチャ471の生成処理の例を示すフローチャートである。雨路面高さテクスチャ471は、道路の路面等に水膜による揺らぎを与えるために、水膜の厚さ(高さ)を示すテクスチャである。雨路面高さテクスチャ471の生成処理は、主にピクセルシェーダにより行われる。
【0031】
図2において、毎フレームもしくは数フレームおきに処理を開始すると(ステップS101)、雨路面高さテクスチャ471の全体に水のパターンを示すノイズを描画する(ステップS102)。
【0032】
次いで、雨路面高さテクスチャ471に降雨による波紋を任意数だけ描画し(ステップS103)、処理を終了する(ステップS104)。
【0033】
図3は雨路面高さテクスチャ471の例を示す図であり、雨路面高さを色により示している。図では、白い部分は高さが高い部分であり、黒い部分は高さが低い部分である。
【0034】
図4は雨路面法線テクスチャ472の生成処理の例を示すフローチャートである。雨路面法線テクスチャ472は、道路の路面等に水膜による揺らぎを与えるために、水膜の表面の法線を示すテクスチャである。雨路面法線テクスチャ472は、前述した雨路面高さテクスチャ471に基づいて生成される。雨路面法線テクスチャ472の生成処理は、主にピクセルシェーダにより行われる。
【0035】
図4において、毎フレームもしくは数フレームおきに処理を開始すると(ステップS111)、全ピクセルの個々につき、該当ピクセル周辺の雨路面高さテクスチャ471の値からテクスチャ空間上の2D傾きベクトルを計算する(ステップS112)。
【0036】
次いで、テクスチャ空間上の2D傾きベクトルから法線ベクトルを計算し、色値として雨路面法線テクスチャ472に出力し(ステップS113)、処理を終了する(ステップS114)。
【0037】
図5は雨路面法線テクスチャ472の例を示す図であり、雨路面法線を色により示している。図では、白い部分は法線が路面等に対して垂直方向の部分であり、黒い部分は法線が路面に対して平行方向の部分である。
【0038】
図6は濡れた路面等のポリゴン描画処理の例を示すフローチャートである。なお、その他のモデルのポリゴンについては通常の描画処理が行われ、濡れた路面等のポリゴンの描画処理結果とフレームバッファ48上で合成される。
【0039】
図6において、毎フレームもしくは数フレームおきに処理を開始すると(ステップS201)、バーテックスシェーダによる処理として、ポリゴンの頂点のビュー空間および射影空間への変換、ラスタライズ等を行う(ステップS202)。
【0040】
図7(a)はビュー空間の例を示している。ビュー空間は視点(仮想カメラ)VPを基準とした座標空間であり、視点VPから視方向に対して横軸がx軸、縦軸がy軸、奥行きがz軸となる。視点VPの視方向に対してx軸方向およびy軸方向にそれぞれ画角だけ振った範囲の、視点VPに近い側には近クリップ平面CP1が設定され、遠い側には遠クリップ平面CP2が設定される。近クリップ平面CP1と遠クリップ平面CP2と画角を示す面で囲われる6面体は視錐台と呼ばれ、その内部に配置されるモデル(オブジェクト)が描画対象となる。視錐台の位置は、ビデオゲームの場合、プレイヤ(遊戯者)が操作手段により操作するプレイヤキャラクタを含むように決定される。図7(b)は射影空間の例を示しており、図7(a)に示したビュー空間を、−1≦x≦1、−1≦y≦1、0≦z≦1の範囲に変換したものである。
【0041】
次いで、図6に戻り、ピクセルシェーダによるピクセル毎の処理を行う(ステップS203)。
【0042】
先ず、処理点法線(処理の対象となるピクセルの位置のオブジェクトの法線値)と雨路面法線テクスチャ472より変更後処理点法線を計算する(ステップS204)。すなわち、オブジェクトの持つもともとの法線値(ベクトル値)に雨路面法線テクスチャ472のUV空間上で対応する法線値を加算等することにより、水膜による揺らぎを与えた変更後処理点法線を求める。図8(a)は処理内容を概念的に示しており、道路オブジェクトOBの処理点PXについてもともとの法線がNであるとすると、雨路面法線テクスチャ472を用いた変更により変更後処理点法線N'を得る。
【0043】
次いで、図6に戻り、処理点座標と変更後処理点法線と視線ベクトルより反射方向ベクトルを計算する(ステップS205)。図8(b)は処理内容を概念的に示しており、視点VPから処理点PXへ向かう視線ベクトルVVと変更後処理点法線N'の為す入射角θと同じ反射角θとなる反射方向ベクトルRVを、幾何学的関係から得る。
【0044】
次いで、図6に戻り、処理点座標と反射方向ベクトルから決まる反射線分と視錐台との交点である最遠反射座標を計算する(ステップS206)。図8(c)は処理内容を概念的に示しており、反射方向ベクトルRVを延伸した反射線分RLと視錐台との交点を、最遠反射座標MPとして幾何学的関係から得る。
【0045】
次いで、図6に戻り、処理点座標から最遠反射座標までの間にn個の3Dサンプルポイント(S(1)、S(2)、・・・、S(n))を処理点座標から近い順に設定する(ステップS207)。図9(a)は処理内容を概念的に示しており、処理点PXから反射線分RLに沿って最遠反射座標MPまでの間に3DサンプルポイントS(1)、S(2)、S(3)、・・・を設定した状態を示している。
【0046】
次いで、図6に戻り、変数iに「1」を設定する(ステップS208)。
【0047】
次いで、3DサンプルポイントS(i)、S(i+1)のテクスチャ空間2D座標(投影平面座標と同様)UV(i)、UV(i+1)を計算し、その位置の深度値D(i)、D(i+1)を深度情報テクスチャ473から取得する(ステップS209)。図9(b)は処理内容を概念的に示しており、3DサンプルポイントS(1)、S(2)に対応するテクスチャ空間2D座標UV(1)、UV(2)を求めた状態を示している。また、図9(c)は、テクスチャ空間2D座標UV(1)、UV(2)に基づき、深度情報テクスチャ473から深度値D(1)、D(2)を求めた状態を示している。深度値D(1)、D(2)は、視点から見て3DサンプルポイントS(1)、S(2)の奥に存在するオブジェクトの表面位置を示している。
【0048】
次いで、図6に戻り、テクスチャ空間2D座標UV(i)と深度値D(i)から3D座標A(i)を計算し、同様にテクスチャ空間2D座標UV(i+1)と深度値D(i+1)から3D座標A(i+1)を計算する(ステップS210)。図10(a)は処理内容を概念的に示しており、視点VPから見て3DサンプルポイントS(1)、S(2)に重なり、視点VPからそれぞれ深度値D(1)、D(2)にある3D座標A(1)、A(2)を求めた状態を示している。
【0049】
次いで、図6に戻り、3D座標A(i)とA(i+1)からなる線分と反射線分との交差座標を計算する(ステップS211)。図10(b)は処理内容を概念的に示しており、3D座標A(1)、A(2)からなる線分ALと反射線分RLとが交差しない場合を示している。交差する場合、その交差座標は、被反射オブジェクトの表面上に投射された2つの3Dサンプルポイントの間の座標となる。
【0050】
次いで、図6に戻り、交差座標が存在するか否か判断する(ステップS212)。交差座標が存在するか否かは、2つの線分の間に交点が存在するか否かを判断する周知の数学公式により判断することができる。
【0051】
交差座標が存在する場合(ステップS212のYes)、交差座標のテクスチャ空間2D座標UVを計算し、色情報テクスチャ474から色情報を取得し、フレームバッファ48への出力色に設定する(ステップS213)。
【0052】
一方、交差座標が存在しない場合(ステップS212のNo)、変数iに1を加算する(ステップS214)。
【0053】
次いで、変数iが3Dサンプルポイントの最大数n以上になったか否か判断する(ステップS215)。
【0054】
変数iが3Dサンプルポイントの最大数n以上になっていない場合(ステップS215のNo)、テクスチャ空間2D座標UV(i)、UV(i+1)の計算および深度値D(i)、D(i+1)の取得(ステップS209)に戻る。
【0055】
変数iが3Dサンプルポイントの最大数n以上になっている場合(ステップS215のYes)、外部色をフレームバッファ48への出力色に設定する(ステップS216)。被反射オブジェクトが存在しない場合、出力色は空等の色が反映されるべきであるからである。
【0056】
出力色の設定(ステップS213、S216)の後、変更後処理点法線の値により出力色の輝度を変更する(ステップS217)。これは、変更後処理点法線の値により入射角・反射角θが小さい場合に出力色の変動が大きくなり、例えば、人物の足下の反射画像の表示が不安定になる不都合を解消するためである。
【0057】
上記の処理を全てのピクセルについて行った後、処理を終了する(ステップS218)。
【0058】
図11〜図13は生成画像例を示す図である。図11は画面の下から上方に向かって平面的な道路が存在するシーンであり、雨に濡れた路面に周囲のオブジェクトの画像が自然に反射している。図12は左下から右上に向かって平面的な道路が存在するとともに、画面中央部に、道路の端に傾斜した踏み板が置かれたシーンである。この場合、傾斜した踏み板には傾斜に応じて傾いた反射画像が表示される。図13は左側の平坦的な道路から、中央付近で右上に傾斜する道路が存在するシーンである。この場合も傾斜した道路の路面には傾斜に応じて傾いた反射画像が表示される。
【0059】
<総括>
以上説明したように、本実施形態によれば次のような利点がある。
(1)反射画像のために新たにオブジェクトを設定する必要がなく、そのための描画処理は不要となるため、処理負荷が小さい。
(2)濡れた路面等の反射オブジェクトの個々のピクセルの処理において、反射ベクトルを辿ることで被反射オブジェクトの色情報を取得し、表示に必要な最小限の処理しか行わないため、処理内容に無駄がない。
(3)濡れた路面等の反射オブジェクトの個々のピクセルに対応する法線を考慮して被反射オブジェクトを特定するため、途中で傾斜が変化する反射物や傾斜の異なる複数の反射物が存在する場合であっても、均一の処理により反射画像を描画することができる。
(4)反射オブジェクトの法線に対して水膜による揺らぎを与えることで、濡れた路面等における自然な反射を表現することができる。
(5)反射オブジェクトの法線値に応じて反射画像の輝度を制御することで、入射角・反射角が小さい場合の反射画像の表示の不安定さを解消することができる。
(6)ひいては、簡易な処理により、雨で濡れた路面等により周囲の景色が反射して見える画像を生成することができる。
【0060】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【符号の説明】
【0061】
1 画像処理装置
2 3Dアプリケーション
3 3D−API
4 GPU
41 GPUフロントエンド部
42 プログラマブル頂点プロセッサ
43 基本アセンブリ部
44 ラスタライズ/補間部
45 プログラマブルピクセルプロセッサ
46 ラスタ演算部
471 雨路面高さテクスチャ
472 雨路面法線テクスチャ
473 深度情報テクスチャ
474 色情報テクスチャ
48 フレームバッファ
5 データ保持部
【技術分野】
【0001】
本発明は、ビデオゲームやCG(Computer Graphics)ビデオ等における表示画像の生成技術に関する。
【背景技術】
【0002】
ビデオゲームやCGビデオ等においては、雨で濡れた路面や水面あるいは鏡面等により周囲の景色が反射して見える画像が必要とされるシーンがしばしば存在する。
【0003】
特許文献1には、太陽からの光の反射により生じる水面のきらめき(グリッター)を、少ない処理負荷でリアルタイムに実現するための技術が開示されている。ただし、水面のきらめきを表現するのみであり、周囲の景色の反射の画像を水面上に表現するものではない。
【0004】
一方、特許文献2には、鏡面反射画像を生成する技術が開示されている。すなわち、第1の3次元画像データを生成した後、第1の3次元画像データを鏡面反射させた第2の3次元画像データを生成し、第2の3次元画像データに対して、くり抜き表示領域を設定する。そして、第1、第2の3次元画像データを第1、第2の2次元画像データに変換した後、第1の2次元画像データに、くり抜き表示領域の第2の2次元画像データを加算描画する。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特許第4001556号公報
【特許文献2】特開2007−259942号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述した特許文献2に開示された技術によれば、画面内に鏡面反射画像を表示することができるが、基本的な第1の3次元画像データとは別に、第1の3次元画像データを鏡面反射させた第2の3次元画像データを生成し、これを第2の2次元画像データに変換しなければならず、処理負荷が過大になるという問題がある。
【0007】
また、第2の2次元画像データのうち、くり抜き表示領域の画像のみが最終的に表示されるものであるにもかかわらず、それ以外の全体的な3次元画像データおよび2次元画像データが生成されることから、処理内容に無駄があるという問題もあった。
【0008】
更に、第1の3次元画像データを鏡面反射させた第2の3次元画像データを生成するにあたり、床面等の平坦な鏡面に対して鏡面対象となる位置に一律にオブジェクトを配置することから、途中で傾斜が変化する反射物や、傾斜の異なる複数の反射物が存在する場合には、個別に鏡面反射画像を生成しなければならず、処理が複雑になりすぎるという問題があった。
【0009】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、簡易な処理により、雨で濡れた路面等により周囲の景色が反射して見える画像を生成することのできる画像処理プログラムおよびコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【0010】
上記の課題を解決するため、本発明にあっては、請求項1に記載されるように、コンピュータを、少なくとも反射オブジェクトを含むオブジェクトが配置された仮想空間に対し、仮想視点を設定し、当該仮想視点を基準とした視錐台の内部に配置されたオブジェクトを投影平面に投影する座標変換手段、前記投影平面のピクセル毎に前記仮想空間における前記オブジェクトの色情報および深度情報をメモリに保持する保持手段、前記反射オブジェクト上の前記ピクセルの処理に際し、当該ピクセルに対応する前記反射オブジェクトの法線値および座標値を算出する計算手段、前記算出された座標値および法線値と、前記仮想視点の位置とに基づき、前記座標値を始点とする反射線分を仮想空間内に求める反射線分計算手段、前記視錐台内で、前記反射線分が前記オブジェクトと交差する交差座標があるか否かを判定する交差判定手段、前記交差座標があると判定した場合、前記座標値から最も近い交差座標に対応する被反射ピクセルを算出し、前記保持された当該被反射ピクセルの色情報を前記ピクセルの色情報に反映し、前記交差座標がないと判定した場合、所定の色情報を前記ピクセルの色情報に反映するピクセル色反映手段として機能させる画像処理プログラムを要旨としている。
【0011】
また、請求項2に記載されるように、請求項1に記載の画像処理プログラムであって、前記交差判定手段は、前記反射線分と、前記視錐台の面との交点を求め、前記反射線分の始点から前記交点の間に複数個のサンプルポイントを設定し、前記反射線分の始点側から、隣り合う2つのサンプルポイントを決定し、当該サンプルポイントに対応する前記投影平面上の2つのサンプルピクセルを算出し、前記メモリから当該2つのサンプルピクセルの深度値を取得し、当該深度値から前記2つのサンプルピクセルに対応する前記オブジェクトの仮想空間上の座標値を算出し、当該2つの座標値の間を結ぶ線分が前記反射線分と交差するか否かを判定し、前記反射線分との交差がある場合は、前記交差した点の座標を前記交差座標として前記判定を終了し、前記反射線分との交差がない場合は、次の隣り合う2つのサンプルポイントを決定して前記判定までを繰り返し、前記設定した全てのサンプルポイントに基づく前記判定によって前記反射線分との交差がない場合には、前記交差座標はないものとして判定を終了するようにすることができる。
【0012】
また、請求項3に記載されるように、請求項1または2のいずれか一項に記載の画像処理プログラムであって、コンピュータを、前記反射オブジェクトの法線情報を変更するための法線マップを作成する手段、前記反射オブジェクトに対応する前記ピクセルの法線値と、当該ピクセルに対応する前記法線マップの法線値に基づいて、前記ピクセルの法線値を変更する手段として機能させるようにすることができる。
【0013】
また、請求項4に記載されるように、請求項1乃至3のいずれか一項に記載の画像処理プログラムであって、前記ピクセル色反映手段は、前記反射オブジェクトの法線値に基づいて、前記反射オブジェクトの前記ピクセルの色情報における輝度を変更するようにすることができる。
【0014】
また、請求項5に記載されるように、請求項1乃至4のいずれか一項に記載の画像処理プログラムを記録するコンピュータ読み取り可能な記録媒体として構成することができる。
【発明の効果】
【0015】
本発明の画像処理プログラムおよびコンピュータ読み取り可能な記録媒体にあっては、簡易な処理により、雨で濡れた路面等により周囲の景色が反射して見える画像を生成することができる。
【図面の簡単な説明】
【0016】
【図1】本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【図2】雨路面高さテクスチャの生成処理の例を示すフローチャートである。
【図3】雨路面高さテクスチャの例を示す図である。
【図4】雨路面法線テクスチャの生成処理の例を示すフローチャートである。
【図5】雨路面法線テクスチャの例を示す図である。
【図6】濡れた路面等のポリゴン描画処理の例を示すフローチャートである。
【図7】ビュー空間および射影空間の例を示す図である。
【図8】処理例を示す図(その1)である。
【図9】処理例を示す図(その2)である。
【図10】処理例を示す図(その3)である。
【図11】生成画像例を示す図(その1)である。
【図12】生成画像例を示す図(その2)である。
【図13】生成画像例を示す図(その3)である。
【発明を実施するための形態】
【0017】
以下、本発明の好適な実施形態につき説明する。
【0018】
<構成>
図1は本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【0019】
図1において、画像処理装置は、ゲームアプリケーション等の3D(3 Dimension)オブジェクトの描画命令を含む3Dアプリケーション(3Dアプリケーションプログラム)2と、この3Dアプリケーション2から描画命令等を受け取るOpenGL、Direct3D等の3D−API(Application Program Interface)3と、描画処理を実行するGPU(Graphics Processing Unit)4とを備えている。なお、図示を省略しているが、3Dアプリケーション2および3D−API3の実行環境として、一般的なコンピュータのCPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)、HDD(Hard Disk Drive)等のハードウェア資源が設けられている。
【0020】
GPU4は、3D−API3からGPUコマンドおよびデータストリームを受け付けるGPUフロントエンド部41と、このGPUフロントエンド部41から3D頂点データを受け取って2Dスクリーン空間に投影した座標変換(行列の転置)等を行うプログラマブル頂点プロセッサ(VS:Vertex Processor)42と、GPUフロントエンド部41から与えられる頂点インデックスストリームとプログラマブル頂点プロセッサ42で座標変換された頂点データとを組み立てる基本アセンブリ部43とを備えている。プログラマブル頂点プロセッサ42および基本アセンブリ部43の部分は、バーテックスシェーダと呼ばれている。
【0021】
また、GPU4は、基本アセンブリ部43で組み立てられた多角形、線および点のデータからラスタライズおよび補間を行うラスタライズ/補間部44と、このラスタライズ/補間部44からラスタライズ済のピクセル(フラグメント)データを受け取ってテクスチャマッピング等を行うプログラマブルピクセルプロセッサ(PS:Pixel Processor)45と、ラスタライズ/補間部44から与えられるピクセル位置ストリームとプログラマブルピクセルプロセッサ45から与えられるテクスチャマッピング済のデータからラスタ演算(ピクセルデータの画面上での配置)を行うラスタ演算部46とを備えている。ラスタライズ/補間部44、プログラマブルピクセルプロセッサ45およびラスタ演算部46の部分は、ピクセルシェーダと呼ばれている。
【0022】
また、GPU4は、ラスタ演算部46により描画内容が書込・更新されるとともに、GPU4内の各部から参照・更新が可能な雨路面高さテクスチャ471、雨路面法線テクスチャ472、深度情報テクスチャ473および色情報テクスチャ474と、ラスタ演算部46により描画内容が書込・更新されるフレームバッファ48とを備えている。
【0023】
雨路面高さテクスチャ471、雨路面法線テクスチャ472、深度情報テクスチャ473および色情報テクスチャ474は、濡れた路面等の描画処理において使用される。雨路面高さテクスチャ471と雨路面法線テクスチャ472については、その生成処理を含め、後述する。
【0024】
深度情報テクスチャ473は、描画フレームの各ピクセルの深度情報(視点からのz方向距離)を保持するテクスチャである。色情報テクスチャ474は、描画フレームの各ピクセルの色情報を保持するテクスチャである。テクスチャは、テクスチャ空間のU座標(一般的に、0≦U≦1)とV座標(一般的に、0≦V≦1)に対応して値を保持するマップデータである。テクスチャは一般に色情報のデータを保持する形式となっているため、色情報以外の情報を保持する場合には色情報の形式に変換されて格納される。
【0025】
フレームバッファ48に書き込まれた内容は周期的に読み出されてビデオ信号に変換され、モニタ装置等によって表示される。
【0026】
また、処理に必要なデータがデータ保持部5に保持されている。主なデータとしては、モデルデータと、モデル姿勢と、視点・視方向・画角と、外部色とがある。モデルデータには、マテリアルと、頂点座標と、法線と、テクスチャと、頂点カラーとが含まれる。
【0027】
モデルデータは、仮想3次元空間内のモデルの標準姿勢における形態を表現したポリゴンデータである。インスタンス化されて仮想3次元空間内に配置されたモデルはオブジェクトと呼ぶ場合がある。マテリアルは、モデルの種別を区別する情報であり、雨により濡れた場合に反射する道路(路面)であるとか、鏡面であるとかを示す。頂点座標は、モデルのポリゴンの頂点の座標(x座標、y座標、z座標)である。法線は、各頂点の面する方向を示すベクトル値である。テクスチャは、ポリゴンの面に貼り付けられる画像データである。頂点カラーは、各頂点のカラーを示すRGB(Red Green Blue)等の値である。
【0028】
モデル姿勢は、各モデルの仮想3次元空間内における位置および回転角度を示す値である。視点・視方向・画角は、仮想3次元空間内のモデルを投影面上の2次元画像として描画する際の仮想カメラ(仮想視点)の3次元位置、視線中心方向および視野角である。外部色は、空の色等であり、他のモデルからの反射がない場合に反射光の色として用いられる。
【0029】
なお、画像処理装置1にGPU4を用いた構成について説明したが、汎用的なコンピュータのハードウェア上でソフトウェア的にグラフィックエンジンを実現した場合にも本発明を適用できることは言うまでもない。この場合、GPU4の機能は3Dアプリケーション2や3D−API3と同様にソフトウェア的に実現され、テクスチャ471〜474やフレームバッファ48はメモリ(RAM)上に配置される。
【0030】
<動作>
図2は雨路面高さテクスチャ471の生成処理の例を示すフローチャートである。雨路面高さテクスチャ471は、道路の路面等に水膜による揺らぎを与えるために、水膜の厚さ(高さ)を示すテクスチャである。雨路面高さテクスチャ471の生成処理は、主にピクセルシェーダにより行われる。
【0031】
図2において、毎フレームもしくは数フレームおきに処理を開始すると(ステップS101)、雨路面高さテクスチャ471の全体に水のパターンを示すノイズを描画する(ステップS102)。
【0032】
次いで、雨路面高さテクスチャ471に降雨による波紋を任意数だけ描画し(ステップS103)、処理を終了する(ステップS104)。
【0033】
図3は雨路面高さテクスチャ471の例を示す図であり、雨路面高さを色により示している。図では、白い部分は高さが高い部分であり、黒い部分は高さが低い部分である。
【0034】
図4は雨路面法線テクスチャ472の生成処理の例を示すフローチャートである。雨路面法線テクスチャ472は、道路の路面等に水膜による揺らぎを与えるために、水膜の表面の法線を示すテクスチャである。雨路面法線テクスチャ472は、前述した雨路面高さテクスチャ471に基づいて生成される。雨路面法線テクスチャ472の生成処理は、主にピクセルシェーダにより行われる。
【0035】
図4において、毎フレームもしくは数フレームおきに処理を開始すると(ステップS111)、全ピクセルの個々につき、該当ピクセル周辺の雨路面高さテクスチャ471の値からテクスチャ空間上の2D傾きベクトルを計算する(ステップS112)。
【0036】
次いで、テクスチャ空間上の2D傾きベクトルから法線ベクトルを計算し、色値として雨路面法線テクスチャ472に出力し(ステップS113)、処理を終了する(ステップS114)。
【0037】
図5は雨路面法線テクスチャ472の例を示す図であり、雨路面法線を色により示している。図では、白い部分は法線が路面等に対して垂直方向の部分であり、黒い部分は法線が路面に対して平行方向の部分である。
【0038】
図6は濡れた路面等のポリゴン描画処理の例を示すフローチャートである。なお、その他のモデルのポリゴンについては通常の描画処理が行われ、濡れた路面等のポリゴンの描画処理結果とフレームバッファ48上で合成される。
【0039】
図6において、毎フレームもしくは数フレームおきに処理を開始すると(ステップS201)、バーテックスシェーダによる処理として、ポリゴンの頂点のビュー空間および射影空間への変換、ラスタライズ等を行う(ステップS202)。
【0040】
図7(a)はビュー空間の例を示している。ビュー空間は視点(仮想カメラ)VPを基準とした座標空間であり、視点VPから視方向に対して横軸がx軸、縦軸がy軸、奥行きがz軸となる。視点VPの視方向に対してx軸方向およびy軸方向にそれぞれ画角だけ振った範囲の、視点VPに近い側には近クリップ平面CP1が設定され、遠い側には遠クリップ平面CP2が設定される。近クリップ平面CP1と遠クリップ平面CP2と画角を示す面で囲われる6面体は視錐台と呼ばれ、その内部に配置されるモデル(オブジェクト)が描画対象となる。視錐台の位置は、ビデオゲームの場合、プレイヤ(遊戯者)が操作手段により操作するプレイヤキャラクタを含むように決定される。図7(b)は射影空間の例を示しており、図7(a)に示したビュー空間を、−1≦x≦1、−1≦y≦1、0≦z≦1の範囲に変換したものである。
【0041】
次いで、図6に戻り、ピクセルシェーダによるピクセル毎の処理を行う(ステップS203)。
【0042】
先ず、処理点法線(処理の対象となるピクセルの位置のオブジェクトの法線値)と雨路面法線テクスチャ472より変更後処理点法線を計算する(ステップS204)。すなわち、オブジェクトの持つもともとの法線値(ベクトル値)に雨路面法線テクスチャ472のUV空間上で対応する法線値を加算等することにより、水膜による揺らぎを与えた変更後処理点法線を求める。図8(a)は処理内容を概念的に示しており、道路オブジェクトOBの処理点PXについてもともとの法線がNであるとすると、雨路面法線テクスチャ472を用いた変更により変更後処理点法線N'を得る。
【0043】
次いで、図6に戻り、処理点座標と変更後処理点法線と視線ベクトルより反射方向ベクトルを計算する(ステップS205)。図8(b)は処理内容を概念的に示しており、視点VPから処理点PXへ向かう視線ベクトルVVと変更後処理点法線N'の為す入射角θと同じ反射角θとなる反射方向ベクトルRVを、幾何学的関係から得る。
【0044】
次いで、図6に戻り、処理点座標と反射方向ベクトルから決まる反射線分と視錐台との交点である最遠反射座標を計算する(ステップS206)。図8(c)は処理内容を概念的に示しており、反射方向ベクトルRVを延伸した反射線分RLと視錐台との交点を、最遠反射座標MPとして幾何学的関係から得る。
【0045】
次いで、図6に戻り、処理点座標から最遠反射座標までの間にn個の3Dサンプルポイント(S(1)、S(2)、・・・、S(n))を処理点座標から近い順に設定する(ステップS207)。図9(a)は処理内容を概念的に示しており、処理点PXから反射線分RLに沿って最遠反射座標MPまでの間に3DサンプルポイントS(1)、S(2)、S(3)、・・・を設定した状態を示している。
【0046】
次いで、図6に戻り、変数iに「1」を設定する(ステップS208)。
【0047】
次いで、3DサンプルポイントS(i)、S(i+1)のテクスチャ空間2D座標(投影平面座標と同様)UV(i)、UV(i+1)を計算し、その位置の深度値D(i)、D(i+1)を深度情報テクスチャ473から取得する(ステップS209)。図9(b)は処理内容を概念的に示しており、3DサンプルポイントS(1)、S(2)に対応するテクスチャ空間2D座標UV(1)、UV(2)を求めた状態を示している。また、図9(c)は、テクスチャ空間2D座標UV(1)、UV(2)に基づき、深度情報テクスチャ473から深度値D(1)、D(2)を求めた状態を示している。深度値D(1)、D(2)は、視点から見て3DサンプルポイントS(1)、S(2)の奥に存在するオブジェクトの表面位置を示している。
【0048】
次いで、図6に戻り、テクスチャ空間2D座標UV(i)と深度値D(i)から3D座標A(i)を計算し、同様にテクスチャ空間2D座標UV(i+1)と深度値D(i+1)から3D座標A(i+1)を計算する(ステップS210)。図10(a)は処理内容を概念的に示しており、視点VPから見て3DサンプルポイントS(1)、S(2)に重なり、視点VPからそれぞれ深度値D(1)、D(2)にある3D座標A(1)、A(2)を求めた状態を示している。
【0049】
次いで、図6に戻り、3D座標A(i)とA(i+1)からなる線分と反射線分との交差座標を計算する(ステップS211)。図10(b)は処理内容を概念的に示しており、3D座標A(1)、A(2)からなる線分ALと反射線分RLとが交差しない場合を示している。交差する場合、その交差座標は、被反射オブジェクトの表面上に投射された2つの3Dサンプルポイントの間の座標となる。
【0050】
次いで、図6に戻り、交差座標が存在するか否か判断する(ステップS212)。交差座標が存在するか否かは、2つの線分の間に交点が存在するか否かを判断する周知の数学公式により判断することができる。
【0051】
交差座標が存在する場合(ステップS212のYes)、交差座標のテクスチャ空間2D座標UVを計算し、色情報テクスチャ474から色情報を取得し、フレームバッファ48への出力色に設定する(ステップS213)。
【0052】
一方、交差座標が存在しない場合(ステップS212のNo)、変数iに1を加算する(ステップS214)。
【0053】
次いで、変数iが3Dサンプルポイントの最大数n以上になったか否か判断する(ステップS215)。
【0054】
変数iが3Dサンプルポイントの最大数n以上になっていない場合(ステップS215のNo)、テクスチャ空間2D座標UV(i)、UV(i+1)の計算および深度値D(i)、D(i+1)の取得(ステップS209)に戻る。
【0055】
変数iが3Dサンプルポイントの最大数n以上になっている場合(ステップS215のYes)、外部色をフレームバッファ48への出力色に設定する(ステップS216)。被反射オブジェクトが存在しない場合、出力色は空等の色が反映されるべきであるからである。
【0056】
出力色の設定(ステップS213、S216)の後、変更後処理点法線の値により出力色の輝度を変更する(ステップS217)。これは、変更後処理点法線の値により入射角・反射角θが小さい場合に出力色の変動が大きくなり、例えば、人物の足下の反射画像の表示が不安定になる不都合を解消するためである。
【0057】
上記の処理を全てのピクセルについて行った後、処理を終了する(ステップS218)。
【0058】
図11〜図13は生成画像例を示す図である。図11は画面の下から上方に向かって平面的な道路が存在するシーンであり、雨に濡れた路面に周囲のオブジェクトの画像が自然に反射している。図12は左下から右上に向かって平面的な道路が存在するとともに、画面中央部に、道路の端に傾斜した踏み板が置かれたシーンである。この場合、傾斜した踏み板には傾斜に応じて傾いた反射画像が表示される。図13は左側の平坦的な道路から、中央付近で右上に傾斜する道路が存在するシーンである。この場合も傾斜した道路の路面には傾斜に応じて傾いた反射画像が表示される。
【0059】
<総括>
以上説明したように、本実施形態によれば次のような利点がある。
(1)反射画像のために新たにオブジェクトを設定する必要がなく、そのための描画処理は不要となるため、処理負荷が小さい。
(2)濡れた路面等の反射オブジェクトの個々のピクセルの処理において、反射ベクトルを辿ることで被反射オブジェクトの色情報を取得し、表示に必要な最小限の処理しか行わないため、処理内容に無駄がない。
(3)濡れた路面等の反射オブジェクトの個々のピクセルに対応する法線を考慮して被反射オブジェクトを特定するため、途中で傾斜が変化する反射物や傾斜の異なる複数の反射物が存在する場合であっても、均一の処理により反射画像を描画することができる。
(4)反射オブジェクトの法線に対して水膜による揺らぎを与えることで、濡れた路面等における自然な反射を表現することができる。
(5)反射オブジェクトの法線値に応じて反射画像の輝度を制御することで、入射角・反射角が小さい場合の反射画像の表示の不安定さを解消することができる。
(6)ひいては、簡易な処理により、雨で濡れた路面等により周囲の景色が反射して見える画像を生成することができる。
【0060】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【符号の説明】
【0061】
1 画像処理装置
2 3Dアプリケーション
3 3D−API
4 GPU
41 GPUフロントエンド部
42 プログラマブル頂点プロセッサ
43 基本アセンブリ部
44 ラスタライズ/補間部
45 プログラマブルピクセルプロセッサ
46 ラスタ演算部
471 雨路面高さテクスチャ
472 雨路面法線テクスチャ
473 深度情報テクスチャ
474 色情報テクスチャ
48 フレームバッファ
5 データ保持部
【特許請求の範囲】
【請求項1】
コンピュータを、
少なくとも反射オブジェクトを含むオブジェクトが配置された仮想空間に対し、仮想視点を設定し、当該仮想視点を基準とした視錐台の内部に配置されたオブジェクトを投影平面に投影する座標変換手段、
前記投影平面のピクセル毎に前記仮想空間における前記オブジェクトの色情報および深度情報をメモリに保持する保持手段、
前記反射オブジェクト上の前記ピクセルの処理に際し、当該ピクセルに対応する前記反射オブジェクトの法線値および座標値を算出する計算手段、
前記算出された座標値および法線値と、前記仮想視点の位置とに基づき、前記座標値を始点とする反射線分を仮想空間内に求める反射線分計算手段、
前記視錐台内で、前記反射線分が前記オブジェクトと交差する交差座標があるか否かを判定する交差判定手段、
前記交差座標があると判定した場合、前記座標値から最も近い交差座標に対応する被反射ピクセルを算出し、前記保持された当該被反射ピクセルの色情報を前記ピクセルの色情報に反映し、前記交差座標がないと判定した場合、所定の色情報を前記ピクセルの色情報に反映するピクセル色反映手段
として機能させる画像処理プログラム。
【請求項2】
請求項1に記載の画像処理プログラムであって、
前記交差判定手段は、
前記反射線分と、前記視錐台の面との交点を求め、
前記反射線分の始点から前記交点の間に複数個のサンプルポイントを設定し、
前記反射線分の始点側から、隣り合う2つのサンプルポイントを決定し、当該サンプルポイントに対応する前記投影平面上の2つのサンプルピクセルを算出し、
前記メモリから当該2つのサンプルピクセルの深度値を取得し、当該深度値から前記2つのサンプルピクセルに対応する前記オブジェクトの仮想空間上の座標値を算出し、当該2つの座標値の間を結ぶ線分が前記反射線分と交差するか否かを判定し、
前記反射線分との交差がある場合は、前記交差した点の座標を前記交差座標として前記判定を終了し、
前記反射線分との交差がない場合は、次の隣り合う2つのサンプルポイントを決定して前記判定までを繰り返し、
前記設定した全てのサンプルポイントに基づく前記判定によって前記反射線分との交差がない場合には、前記交差座標はないものとして判定を終了する
画像処理プログラム。
【請求項3】
請求項1または2のいずれか一項に記載の画像処理プログラムであって、
コンピュータを、
前記反射オブジェクトの法線情報を変更するための法線マップを作成する手段、
前記反射オブジェクトに対応する前記ピクセルの法線値と、当該ピクセルに対応する前記法線マップの法線値に基づいて、前記ピクセルの法線値を変更する手段
として機能させる画像処理プログラム。
【請求項4】
請求項1乃至3のいずれか一項に記載の画像処理プログラムであって、
前記ピクセル色反映手段は、
前記反射オブジェクトの法線値に基づいて、前記反射オブジェクトの前記ピクセルの色情報における輝度を変更する
画像処理プログラム。
【請求項5】
請求項1乃至4のいずれか一項に記載の画像処理プログラムを記録するコンピュータ読み取り可能な記録媒体。
【請求項1】
コンピュータを、
少なくとも反射オブジェクトを含むオブジェクトが配置された仮想空間に対し、仮想視点を設定し、当該仮想視点を基準とした視錐台の内部に配置されたオブジェクトを投影平面に投影する座標変換手段、
前記投影平面のピクセル毎に前記仮想空間における前記オブジェクトの色情報および深度情報をメモリに保持する保持手段、
前記反射オブジェクト上の前記ピクセルの処理に際し、当該ピクセルに対応する前記反射オブジェクトの法線値および座標値を算出する計算手段、
前記算出された座標値および法線値と、前記仮想視点の位置とに基づき、前記座標値を始点とする反射線分を仮想空間内に求める反射線分計算手段、
前記視錐台内で、前記反射線分が前記オブジェクトと交差する交差座標があるか否かを判定する交差判定手段、
前記交差座標があると判定した場合、前記座標値から最も近い交差座標に対応する被反射ピクセルを算出し、前記保持された当該被反射ピクセルの色情報を前記ピクセルの色情報に反映し、前記交差座標がないと判定した場合、所定の色情報を前記ピクセルの色情報に反映するピクセル色反映手段
として機能させる画像処理プログラム。
【請求項2】
請求項1に記載の画像処理プログラムであって、
前記交差判定手段は、
前記反射線分と、前記視錐台の面との交点を求め、
前記反射線分の始点から前記交点の間に複数個のサンプルポイントを設定し、
前記反射線分の始点側から、隣り合う2つのサンプルポイントを決定し、当該サンプルポイントに対応する前記投影平面上の2つのサンプルピクセルを算出し、
前記メモリから当該2つのサンプルピクセルの深度値を取得し、当該深度値から前記2つのサンプルピクセルに対応する前記オブジェクトの仮想空間上の座標値を算出し、当該2つの座標値の間を結ぶ線分が前記反射線分と交差するか否かを判定し、
前記反射線分との交差がある場合は、前記交差した点の座標を前記交差座標として前記判定を終了し、
前記反射線分との交差がない場合は、次の隣り合う2つのサンプルポイントを決定して前記判定までを繰り返し、
前記設定した全てのサンプルポイントに基づく前記判定によって前記反射線分との交差がない場合には、前記交差座標はないものとして判定を終了する
画像処理プログラム。
【請求項3】
請求項1または2のいずれか一項に記載の画像処理プログラムであって、
コンピュータを、
前記反射オブジェクトの法線情報を変更するための法線マップを作成する手段、
前記反射オブジェクトに対応する前記ピクセルの法線値と、当該ピクセルに対応する前記法線マップの法線値に基づいて、前記ピクセルの法線値を変更する手段
として機能させる画像処理プログラム。
【請求項4】
請求項1乃至3のいずれか一項に記載の画像処理プログラムであって、
前記ピクセル色反映手段は、
前記反射オブジェクトの法線値に基づいて、前記反射オブジェクトの前記ピクセルの色情報における輝度を変更する
画像処理プログラム。
【請求項5】
請求項1乃至4のいずれか一項に記載の画像処理プログラムを記録するコンピュータ読み取り可能な記録媒体。
【図1】
【図2】
【図4】
【図6】
【図7】
【図8】
【図9】
【図10】
【図3】
【図5】
【図11】
【図12】
【図13】
【図2】
【図4】
【図6】
【図7】
【図8】
【図9】
【図10】
【図3】
【図5】
【図11】
【図12】
【図13】
【公開番号】特開2011−65535(P2011−65535A)
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願番号】特願2009−217160(P2009−217160)
【出願日】平成21年9月18日(2009.9.18)
【出願人】(000132471)株式会社セガ (811)
【Fターム(参考)】
【公開日】平成23年3月31日(2011.3.31)
【国際特許分類】
【出願日】平成21年9月18日(2009.9.18)
【出願人】(000132471)株式会社セガ (811)
【Fターム(参考)】
[ Back to top ]