(57)【要約】      （修正有）【課題】簡易な処理により、雨で濡れた路面等により周囲の景色が反射して見える画像を生成する。【解決手段】仮想視点を基準とした視錐台の内部に配置されたオブジェクトを投影平面に投影する座標変換手段、前記オブジェクトの色情報および深度情報をメモリに保持する保持手段、前記反射オブジェクト上のピクセルの処理に際し、当該ピクセルに対応する前記反射オブジェクトの法線値および座標値を算出する計算手段、前記座標値を始点とする反射線分を仮想空間内に求める反射線分計算手段、前記視錐台内で、前記反射線分が前記オブジェクトと交差する交差座標があるか否かを判定する交差判定手段、前記交差座標があると判定した場合、前記保持された当該被反射ピクセルの色情報を前記ピクセルの色情報に反映し、前記交差座標がないと判定した場合、所定の色情報を前記ピクセルの色情報に反映するピクセル色反映手段として機能させる。【選択図】図１
2011065535.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータを、
少なくとも反射オブジェクトを含むオブジェクトが配置された仮想空間に対し、仮想視点を設定し、当該仮想視点を基準とした視錐台の内部に配置されたオブジェクトを投影平面に投影する座標変換手段、
前記投影平面のピクセル毎に前記仮想空間における前記オブジェクトの色情報および深度情報をメモリに保持する保持手段、
前記反射オブジェクト上の前記ピクセルの処理に際し、当該ピクセルに対応する前記反射オブジェクトの法線値および座標値を算出する計算手段、
前記算出された座標値および法線値と、前記仮想視点の位置とに基づき、前記座標値を始点とする反射線分を仮想空間内に求める反射線分計算手段、
前記視錐台内で、前記反射線分が前記オブジェクトと交差する交差座標があるか否かを判定する交差判定手段、
前記交差座標があると判定した場合、前記座標値から最も近い交差座標に対応する被反射ピクセルを算出し、前記保持された当該被反射ピクセルの色情報を前記ピクセルの色情報に反映し、前記交差座標がないと判定した場合、所定の色情報を前記ピクセルの色情報に反映するピクセル色反映手段
として機能させる画像処理プログラム。
【請求項２】
請求項１に記載の画像処理プログラムであって、
前記交差判定手段は、
前記反射線分と、前記視錐台の面との交点を求め、
前記反射線分の始点から前記交点の間に複数個のサンプルポイントを設定し、
前記反射線分の始点側から、隣り合う２つのサンプルポイントを決定し、当該サンプルポイントに対応する前記投影平面上の２つのサンプルピクセルを算出し、
前記メモリから当該２つのサンプルピクセルの深度値を取得し、当該深度値から前記２つのサンプルピクセルに対応する前記オブジェクトの仮想空間上の座標値を算出し、当該２つの座標値の間を結ぶ線分が前記反射線分と交差するか否かを判定し、
前記反射線分との交差がある場合は、前記交差した点の座標を前記交差座標として前記判定を終了し、
前記反射線分との交差がない場合は、次の隣り合う２つのサンプルポイントを決定して前記判定までを繰り返し、
前記設定した全てのサンプルポイントに基づく前記判定によって前記反射線分との交差がない場合には、前記交差座標はないものとして判定を終了する
画像処理プログラム。
【請求項３】
請求項１または２のいずれか一項に記載の画像処理プログラムであって、
コンピュータを、
前記反射オブジェクトの法線情報を変更するための法線マップを作成する手段、
前記反射オブジェクトに対応する前記ピクセルの法線値と、当該ピクセルに対応する前記法線マップの法線値に基づいて、前記ピクセルの法線値を変更する手段
として機能させる画像処理プログラム。
【請求項４】
請求項１乃至３のいずれか一項に記載の画像処理プログラムであって、
前記ピクセル色反映手段は、
前記反射オブジェクトの法線値に基づいて、前記反射オブジェクトの前記ピクセルの色情報における輝度を変更する
画像処理プログラム。
【請求項５】
請求項１乃至４のいずれか一項に記載の画像処理プログラムを記録するコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオゲームやＣＧ（Computer Graphics）ビデオ等における表示画像の生成技術に関する。
【背景技術】
【０００２】
ビデオゲームやＣＧビデオ等においては、雨で濡れた路面や水面あるいは鏡面等により周囲の景色が反射して見える画像が必要とされるシーンがしばしば存在する。
【０００３】
特許文献１には、太陽からの光の反射により生じる水面のきらめき（グリッター）を、少ない処理負荷でリアルタイムに実現するための技術が開示されている。ただし、水面のきらめきを表現するのみであり、周囲の景色の反射の画像を水面上に表現するものではない。
【０００４】
一方、特許文献２には、鏡面反射画像を生成する技術が開示されている。すなわち、第１の３次元画像データを生成した後、第１の３次元画像データを鏡面反射させた第２の３次元画像データを生成し、第２の３次元画像データに対して、くり抜き表示領域を設定する。そして、第１、第２の３次元画像データを第１、第２の２次元画像データに変換した後、第１の２次元画像データに、くり抜き表示領域の第２の２次元画像データを加算描画する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４００１５５６号公報
【特許文献２】特開２００７−２５９９４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述した特許文献２に開示された技術によれば、画面内に鏡面反射画像を表示することができるが、基本的な第１の３次元画像データとは別に、第１の３次元画像データを鏡面反射させた第２の３次元画像データを生成し、これを第２の２次元画像データに変換しなければならず、処理負荷が過大になるという問題がある。
【０００７】
また、第２の２次元画像データのうち、くり抜き表示領域の画像のみが最終的に表示されるものであるにもかかわらず、それ以外の全体的な３次元画像データおよび２次元画像データが生成されることから、処理内容に無駄があるという問題もあった。
【０００８】
更に、第１の３次元画像データを鏡面反射させた第２の３次元画像データを生成するにあたり、床面等の平坦な鏡面に対して鏡面対象となる位置に一律にオブジェクトを配置することから、途中で傾斜が変化する反射物や、傾斜の異なる複数の反射物が存在する場合には、個別に鏡面反射画像を生成しなければならず、処理が複雑になりすぎるという問題があった。
【０００９】
本発明は上記の従来の問題点に鑑み提案されたものであり、その目的とするところは、簡易な処理により、雨で濡れた路面等により周囲の景色が反射して見える画像を生成することのできる画像処理プログラムおよびコンピュータ読み取り可能な記録媒体を提供することにある。
【課題を解決するための手段】
【００１０】
上記の課題を解決するため、本発明にあっては、請求項１に記載されるように、コンピュータを、少なくとも反射オブジェクトを含むオブジェクトが配置された仮想空間に対し、仮想視点を設定し、当該仮想視点を基準とした視錐台の内部に配置されたオブジェクトを投影平面に投影する座標変換手段、前記投影平面のピクセル毎に前記仮想空間における前記オブジェクトの色情報および深度情報をメモリに保持する保持手段、前記反射オブジェクト上の前記ピクセルの処理に際し、当該ピクセルに対応する前記反射オブジェクトの法線値および座標値を算出する計算手段、前記算出された座標値および法線値と、前記仮想視点の位置とに基づき、前記座標値を始点とする反射線分を仮想空間内に求める反射線分計算手段、前記視錐台内で、前記反射線分が前記オブジェクトと交差する交差座標があるか否かを判定する交差判定手段、前記交差座標があると判定した場合、前記座標値から最も近い交差座標に対応する被反射ピクセルを算出し、前記保持された当該被反射ピクセルの色情報を前記ピクセルの色情報に反映し、前記交差座標がないと判定した場合、所定の色情報を前記ピクセルの色情報に反映するピクセル色反映手段として機能させる画像処理プログラムを要旨としている。
【００１１】
また、請求項２に記載されるように、請求項１に記載の画像処理プログラムであって、前記交差判定手段は、前記反射線分と、前記視錐台の面との交点を求め、前記反射線分の始点から前記交点の間に複数個のサンプルポイントを設定し、前記反射線分の始点側から、隣り合う２つのサンプルポイントを決定し、当該サンプルポイントに対応する前記投影平面上の２つのサンプルピクセルを算出し、前記メモリから当該２つのサンプルピクセルの深度値を取得し、当該深度値から前記２つのサンプルピクセルに対応する前記オブジェクトの仮想空間上の座標値を算出し、当該２つの座標値の間を結ぶ線分が前記反射線分と交差するか否かを判定し、前記反射線分との交差がある場合は、前記交差した点の座標を前記交差座標として前記判定を終了し、前記反射線分との交差がない場合は、次の隣り合う２つのサンプルポイントを決定して前記判定までを繰り返し、前記設定した全てのサンプルポイントに基づく前記判定によって前記反射線分との交差がない場合には、前記交差座標はないものとして判定を終了するようにすることができる。
【００１２】
また、請求項３に記載されるように、請求項１または２のいずれか一項に記載の画像処理プログラムであって、コンピュータを、前記反射オブジェクトの法線情報を変更するための法線マップを作成する手段、前記反射オブジェクトに対応する前記ピクセルの法線値と、当該ピクセルに対応する前記法線マップの法線値に基づいて、前記ピクセルの法線値を変更する手段として機能させるようにすることができる。
【００１３】
また、請求項４に記載されるように、請求項１乃至３のいずれか一項に記載の画像処理プログラムであって、前記ピクセル色反映手段は、前記反射オブジェクトの法線値に基づいて、前記反射オブジェクトの前記ピクセルの色情報における輝度を変更するようにすることができる。
【００１４】
また、請求項５に記載されるように、請求項１乃至４のいずれか一項に記載の画像処理プログラムを記録するコンピュータ読み取り可能な記録媒体として構成することができる。
【発明の効果】
【００１５】
本発明の画像処理プログラムおよびコンピュータ読み取り可能な記録媒体にあっては、簡易な処理により、雨で濡れた路面等により周囲の景色が反射して見える画像を生成することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【図２】雨路面高さテクスチャの生成処理の例を示すフローチャートである。
【図３】雨路面高さテクスチャの例を示す図である。
【図４】雨路面法線テクスチャの生成処理の例を示すフローチャートである。
【図５】雨路面法線テクスチャの例を示す図である。
【図６】濡れた路面等のポリゴン描画処理の例を示すフローチャートである。
【図７】ビュー空間および射影空間の例を示す図である。
【図８】処理例を示す図（その１）である。
【図９】処理例を示す図（その２）である。
【図１０】処理例を示す図（その３）である。
【図１１】生成画像例を示す図（その１）である。
【図１２】生成画像例を示す図（その２）である。
【図１３】生成画像例を示す図（その３）である。
【発明を実施するための形態】
【００１７】
以下、本発明の好適な実施形態につき説明する。
【００１８】
＜構成＞
図１は本発明の一実施形態にかかる画像処理装置の構成例を示す図である。
【００１９】
図１において、画像処理装置は、ゲームアプリケーション等の３Ｄ（3 Dimension）オブジェクトの描画命令を含む３Ｄアプリケーション（３Ｄアプリケーションプログラム）２と、この３Ｄアプリケーション２から描画命令等を受け取るＯｐｅｎＧＬ、Ｄｉｒｅｃｔ３Ｄ等の３Ｄ−ＡＰＩ（Application Program Interface）３と、描画処理を実行するＧＰＵ（Graphics Processing Unit）４とを備えている。なお、図示を省略しているが、３Ｄアプリケーション２および３Ｄ−ＡＰＩ３の実行環境として、一般的なコンピュータのＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、ＨＤＤ（Hard Disk Drive）等のハードウェア資源が設けられている。
【００２０】
ＧＰＵ４は、３Ｄ−ＡＰＩ３からＧＰＵコマンドおよびデータストリームを受け付けるＧＰＵフロントエンド部４１と、このＧＰＵフロントエンド部４１から３Ｄ頂点データを受け取って２Ｄスクリーン空間に投影した座標変換（行列の転置）等を行うプログラマブル頂点プロセッサ（ＶＳ：Vertex Processor）４２と、ＧＰＵフロントエンド部４１から与えられる頂点インデックスストリームとプログラマブル頂点プロセッサ４２で座標変換された頂点データとを組み立てる基本アセンブリ部４３とを備えている。プログラマブル頂点プロセッサ４２および基本アセンブリ部４３の部分は、バーテックスシェーダと呼ばれている。
【００２１】
また、ＧＰＵ４は、基本アセンブリ部４３で組み立てられた多角形、線および点のデータからラスタライズおよび補間を行うラスタライズ／補間部４４と、このラスタライズ／補間部４４からラスタライズ済のピクセル（フラグメント）データを受け取ってテクスチャマッピング等を行うプログラマブルピクセルプロセッサ（ＰＳ：Pixel Processor）４５と、ラスタライズ／補間部４４から与えられるピクセル位置ストリームとプログラマブルピクセルプロセッサ４５から与えられるテクスチャマッピング済のデータからラスタ演算（ピクセルデータの画面上での配置）を行うラスタ演算部４６とを備えている。ラスタライズ／補間部４４、プログラマブルピクセルプロセッサ４５およびラスタ演算部４６の部分は、ピクセルシェーダと呼ばれている。
【００２２】
また、ＧＰＵ４は、ラスタ演算部４６により描画内容が書込・更新されるとともに、ＧＰＵ４内の各部から参照・更新が可能な雨路面高さテクスチャ４７１、雨路面法線テクスチャ４７２、深度情報テクスチャ４７３および色情報テクスチャ４７４と、ラスタ演算部４６により描画内容が書込・更新されるフレームバッファ４８とを備えている。
【００２３】
雨路面高さテクスチャ４７１、雨路面法線テクスチャ４７２、深度情報テクスチャ４７３および色情報テクスチャ４７４は、濡れた路面等の描画処理において使用される。雨路面高さテクスチャ４７１と雨路面法線テクスチャ４７２については、その生成処理を含め、後述する。
【００２４】
深度情報テクスチャ４７３は、描画フレームの各ピクセルの深度情報（視点からのｚ方向距離）を保持するテクスチャである。色情報テクスチャ４７４は、描画フレームの各ピクセルの色情報を保持するテクスチャである。テクスチャは、テクスチャ空間のＵ座標（一般的に、０≦Ｕ≦１）とＶ座標（一般的に、０≦Ｖ≦１）に対応して値を保持するマップデータである。テクスチャは一般に色情報のデータを保持する形式となっているため、色情報以外の情報を保持する場合には色情報の形式に変換されて格納される。
【００２５】
フレームバッファ４８に書き込まれた内容は周期的に読み出されてビデオ信号に変換され、モニタ装置等によって表示される。
【００２６】
また、処理に必要なデータがデータ保持部５に保持されている。主なデータとしては、モデルデータと、モデル姿勢と、視点・視方向・画角と、外部色とがある。モデルデータには、マテリアルと、頂点座標と、法線と、テクスチャと、頂点カラーとが含まれる。
【００２７】
モデルデータは、仮想３次元空間内のモデルの標準姿勢における形態を表現したポリゴンデータである。インスタンス化されて仮想３次元空間内に配置されたモデルはオブジェクトと呼ぶ場合がある。マテリアルは、モデルの種別を区別する情報であり、雨により濡れた場合に反射する道路（路面）であるとか、鏡面であるとかを示す。頂点座標は、モデルのポリゴンの頂点の座標（ｘ座標、ｙ座標、ｚ座標）である。法線は、各頂点の面する方向を示すベクトル値である。テクスチャは、ポリゴンの面に貼り付けられる画像データである。頂点カラーは、各頂点のカラーを示すＲＧＢ（Red Green Blue）等の値である。
【００２８】
モデル姿勢は、各モデルの仮想３次元空間内における位置および回転角度を示す値である。視点・視方向・画角は、仮想３次元空間内のモデルを投影面上の２次元画像として描画する際の仮想カメラ（仮想視点）の３次元位置、視線中心方向および視野角である。外部色は、空の色等であり、他のモデルからの反射がない場合に反射光の色として用いられる。
【００２９】
なお、画像処理装置１にＧＰＵ４を用いた構成について説明したが、汎用的なコンピュータのハードウェア上でソフトウェア的にグラフィックエンジンを実現した場合にも本発明を適用できることは言うまでもない。この場合、ＧＰＵ４の機能は３Ｄアプリケーション２や３Ｄ−ＡＰＩ３と同様にソフトウェア的に実現され、テクスチャ４７１〜４７４やフレームバッファ４８はメモリ（ＲＡＭ）上に配置される。
【００３０】
＜動作＞
図２は雨路面高さテクスチャ４７１の生成処理の例を示すフローチャートである。雨路面高さテクスチャ４７１は、道路の路面等に水膜による揺らぎを与えるために、水膜の厚さ（高さ）を示すテクスチャである。雨路面高さテクスチャ４７１の生成処理は、主にピクセルシェーダにより行われる。
【００３１】
図２において、毎フレームもしくは数フレームおきに処理を開始すると（ステップＳ１０１）、雨路面高さテクスチャ４７１の全体に水のパターンを示すノイズを描画する（ステップＳ１０２）。
【００３２】
次いで、雨路面高さテクスチャ４７１に降雨による波紋を任意数だけ描画し（ステップＳ１０３）、処理を終了する（ステップＳ１０４）。
【００３３】
図３は雨路面高さテクスチャ４７１の例を示す図であり、雨路面高さを色により示している。図では、白い部分は高さが高い部分であり、黒い部分は高さが低い部分である。
【００３４】
図４は雨路面法線テクスチャ４７２の生成処理の例を示すフローチャートである。雨路面法線テクスチャ４７２は、道路の路面等に水膜による揺らぎを与えるために、水膜の表面の法線を示すテクスチャである。雨路面法線テクスチャ４７２は、前述した雨路面高さテクスチャ４７１に基づいて生成される。雨路面法線テクスチャ４７２の生成処理は、主にピクセルシェーダにより行われる。
【００３５】
図４において、毎フレームもしくは数フレームおきに処理を開始すると（ステップＳ１１１）、全ピクセルの個々につき、該当ピクセル周辺の雨路面高さテクスチャ４７１の値からテクスチャ空間上の２Ｄ傾きベクトルを計算する（ステップＳ１１２）。
【００３６】
次いで、テクスチャ空間上の２Ｄ傾きベクトルから法線ベクトルを計算し、色値として雨路面法線テクスチャ４７２に出力し（ステップＳ１１３）、処理を終了する（ステップＳ１１４）。
【００３７】
図５は雨路面法線テクスチャ４７２の例を示す図であり、雨路面法線を色により示している。図では、白い部分は法線が路面等に対して垂直方向の部分であり、黒い部分は法線が路面に対して平行方向の部分である。
【００３８】
図６は濡れた路面等のポリゴン描画処理の例を示すフローチャートである。なお、その他のモデルのポリゴンについては通常の描画処理が行われ、濡れた路面等のポリゴンの描画処理結果とフレームバッファ４８上で合成される。
【００３９】
図６において、毎フレームもしくは数フレームおきに処理を開始すると（ステップＳ２０１）、バーテックスシェーダによる処理として、ポリゴンの頂点のビュー空間および射影空間への変換、ラスタライズ等を行う（ステップＳ２０２）。
【００４０】
図７（ａ）はビュー空間の例を示している。ビュー空間は視点（仮想カメラ）ＶＰを基準とした座標空間であり、視点ＶＰから視方向に対して横軸がｘ軸、縦軸がｙ軸、奥行きがｚ軸となる。視点ＶＰの視方向に対してｘ軸方向およびｙ軸方向にそれぞれ画角だけ振った範囲の、視点ＶＰに近い側には近クリップ平面ＣＰ１が設定され、遠い側には遠クリップ平面ＣＰ２が設定される。近クリップ平面ＣＰ１と遠クリップ平面ＣＰ２と画角を示す面で囲われる６面体は視錐台と呼ばれ、その内部に配置されるモデル（オブジェクト）が描画対象となる。視錐台の位置は、ビデオゲームの場合、プレイヤ（遊戯者）が操作手段により操作するプレイヤキャラクタを含むように決定される。図７（ｂ）は射影空間の例を示しており、図７（ａ）に示したビュー空間を、−１≦ｘ≦１、−１≦ｙ≦１、０≦ｚ≦１の範囲に変換したものである。
【００４１】
次いで、図６に戻り、ピクセルシェーダによるピクセル毎の処理を行う（ステップＳ２０３）。
【００４２】
先ず、処理点法線（処理の対象となるピクセルの位置のオブジェクトの法線値）と雨路面法線テクスチャ４７２より変更後処理点法線を計算する（ステップＳ２０４）。すなわち、オブジェクトの持つもともとの法線値（ベクトル値）に雨路面法線テクスチャ４７２のＵＶ空間上で対応する法線値を加算等することにより、水膜による揺らぎを与えた変更後処理点法線を求める。図８（ａ）は処理内容を概念的に示しており、道路オブジェクトＯＢの処理点ＰＸについてもともとの法線がＮであるとすると、雨路面法線テクスチャ４７２を用いた変更により変更後処理点法線Ｎ'を得る。
【００４３】
次いで、図６に戻り、処理点座標と変更後処理点法線と視線ベクトルより反射方向ベクトルを計算する（ステップＳ２０５）。図８（ｂ）は処理内容を概念的に示しており、視点ＶＰから処理点ＰＸへ向かう視線ベクトルＶＶと変更後処理点法線Ｎ'の為す入射角θと同じ反射角θとなる反射方向ベクトルＲＶを、幾何学的関係から得る。
【００４４】
次いで、図６に戻り、処理点座標と反射方向ベクトルから決まる反射線分と視錐台との交点である最遠反射座標を計算する（ステップＳ２０６）。図８（ｃ）は処理内容を概念的に示しており、反射方向ベクトルＲＶを延伸した反射線分ＲＬと視錐台との交点を、最遠反射座標ＭＰとして幾何学的関係から得る。
【００４５】
次いで、図６に戻り、処理点座標から最遠反射座標までの間にｎ個の３Ｄサンプルポイント（Ｓ（１）、Ｓ（２）、・・・、Ｓ（ｎ））を処理点座標から近い順に設定する（ステップＳ２０７）。図９（ａ）は処理内容を概念的に示しており、処理点ＰＸから反射線分ＲＬに沿って最遠反射座標ＭＰまでの間に３ＤサンプルポイントＳ（１）、Ｓ（２）、Ｓ（３）、・・・を設定した状態を示している。
【００４６】
次いで、図６に戻り、変数ｉに「１」を設定する（ステップＳ２０８）。
【００４７】
次いで、３ＤサンプルポイントＳ（ｉ）、Ｓ（ｉ＋１）のテクスチャ空間２Ｄ座標（投影平面座標と同様）ＵＶ（ｉ）、ＵＶ（ｉ＋１）を計算し、その位置の深度値Ｄ（ｉ）、Ｄ（ｉ＋１）を深度情報テクスチャ４７３から取得する（ステップＳ２０９）。図９（ｂ）は処理内容を概念的に示しており、３ＤサンプルポイントＳ（１）、Ｓ（２）に対応するテクスチャ空間２Ｄ座標ＵＶ（１）、ＵＶ（２）を求めた状態を示している。また、図９（ｃ）は、テクスチャ空間２Ｄ座標ＵＶ（１）、ＵＶ（２）に基づき、深度情報テクスチャ４７３から深度値Ｄ（１）、Ｄ（２）を求めた状態を示している。深度値Ｄ（１）、Ｄ（２）は、視点から見て３ＤサンプルポイントＳ（１）、Ｓ（２）の奥に存在するオブジェクトの表面位置を示している。
【００４８】
次いで、図６に戻り、テクスチャ空間２Ｄ座標ＵＶ（ｉ）と深度値Ｄ（ｉ）から３Ｄ座標Ａ（ｉ）を計算し、同様にテクスチャ空間２Ｄ座標ＵＶ（ｉ＋１）と深度値Ｄ（ｉ＋１）から３Ｄ座標Ａ（ｉ＋１）を計算する（ステップＳ２１０）。図１０（ａ）は処理内容を概念的に示しており、視点ＶＰから見て３ＤサンプルポイントＳ（１）、Ｓ（２）に重なり、視点ＶＰからそれぞれ深度値Ｄ（１）、Ｄ（２）にある３Ｄ座標Ａ（１）、Ａ（２）を求めた状態を示している。
【００４９】
次いで、図６に戻り、３Ｄ座標Ａ（ｉ）とＡ（ｉ＋１）からなる線分と反射線分との交差座標を計算する（ステップＳ２１１）。図１０（ｂ）は処理内容を概念的に示しており、３Ｄ座標Ａ（１）、Ａ（２）からなる線分ＡＬと反射線分ＲＬとが交差しない場合を示している。交差する場合、その交差座標は、被反射オブジェクトの表面上に投射された２つの３Ｄサンプルポイントの間の座標となる。
【００５０】
次いで、図６に戻り、交差座標が存在するか否か判断する（ステップＳ２１２）。交差座標が存在するか否かは、２つの線分の間に交点が存在するか否かを判断する周知の数学公式により判断することができる。
【００５１】
交差座標が存在する場合（ステップＳ２１２のＹｅｓ）、交差座標のテクスチャ空間２Ｄ座標ＵＶを計算し、色情報テクスチャ４７４から色情報を取得し、フレームバッファ４８への出力色に設定する（ステップＳ２１３）。
【００５２】
一方、交差座標が存在しない場合（ステップＳ２１２のＮｏ）、変数ｉに１を加算する（ステップＳ２１４）。
【００５３】
次いで、変数ｉが３Ｄサンプルポイントの最大数ｎ以上になったか否か判断する（ステップＳ２１５）。
【００５４】
変数ｉが３Ｄサンプルポイントの最大数ｎ以上になっていない場合（ステップＳ２１５のＮｏ）、テクスチャ空間２Ｄ座標ＵＶ（ｉ）、ＵＶ（ｉ＋１）の計算および深度値Ｄ（ｉ）、Ｄ（ｉ＋１）の取得（ステップＳ２０９）に戻る。
【００５５】
変数ｉが３Ｄサンプルポイントの最大数ｎ以上になっている場合（ステップＳ２１５のＹｅｓ）、外部色をフレームバッファ４８への出力色に設定する（ステップＳ２１６）。被反射オブジェクトが存在しない場合、出力色は空等の色が反映されるべきであるからである。
【００５６】
出力色の設定（ステップＳ２１３、Ｓ２１６）の後、変更後処理点法線の値により出力色の輝度を変更する（ステップＳ２１７）。これは、変更後処理点法線の値により入射角・反射角θが小さい場合に出力色の変動が大きくなり、例えば、人物の足下の反射画像の表示が不安定になる不都合を解消するためである。
【００５７】
上記の処理を全てのピクセルについて行った後、処理を終了する（ステップＳ２１８）。
【００５８】
図１１〜図１３は生成画像例を示す図である。図１１は画面の下から上方に向かって平面的な道路が存在するシーンであり、雨に濡れた路面に周囲のオブジェクトの画像が自然に反射している。図１２は左下から右上に向かって平面的な道路が存在するとともに、画面中央部に、道路の端に傾斜した踏み板が置かれたシーンである。この場合、傾斜した踏み板には傾斜に応じて傾いた反射画像が表示される。図１３は左側の平坦的な道路から、中央付近で右上に傾斜する道路が存在するシーンである。この場合も傾斜した道路の路面には傾斜に応じて傾いた反射画像が表示される。
【００５９】
＜総括＞
以上説明したように、本実施形態によれば次のような利点がある。
（１）反射画像のために新たにオブジェクトを設定する必要がなく、そのための描画処理は不要となるため、処理負荷が小さい。
（２）濡れた路面等の反射オブジェクトの個々のピクセルの処理において、反射ベクトルを辿ることで被反射オブジェクトの色情報を取得し、表示に必要な最小限の処理しか行わないため、処理内容に無駄がない。
（３）濡れた路面等の反射オブジェクトの個々のピクセルに対応する法線を考慮して被反射オブジェクトを特定するため、途中で傾斜が変化する反射物や傾斜の異なる複数の反射物が存在する場合であっても、均一の処理により反射画像を描画することができる。
（４）反射オブジェクトの法線に対して水膜による揺らぎを与えることで、濡れた路面等における自然な反射を表現することができる。
（５）反射オブジェクトの法線値に応じて反射画像の輝度を制御することで、入射角・反射角が小さい場合の反射画像の表示の不安定さを解消することができる。
（６）ひいては、簡易な処理により、雨で濡れた路面等により周囲の景色が反射して見える画像を生成することができる。
【００６０】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。すなわち、具体例の詳細および添付の図面により本発明が限定されるものと解釈してはならない。
【符号の説明】
【００６１】
１          画像処理装置
２          ３Ｄアプリケーション
３          ３Ｄ−ＡＰＩ
４          ＧＰＵ
４１        ＧＰＵフロントエンド部
４２        プログラマブル頂点プロセッサ
４３        基本アセンブリ部
４４        ラスタライズ／補間部
４５        プログラマブルピクセルプロセッサ
４６        ラスタ演算部
４７１      雨路面高さテクスチャ
４７２      雨路面法線テクスチャ
４７３      深度情報テクスチャ
４７４      色情報テクスチャ
４８        フレームバッファ
５          データ保持部
【図１】
2011065535.tif 000003
【図２】
2011065535.tif 000004
【図４】
2011065535.tif 000005
【図６】
2011065535.tif 000006
【図７】
2011065535.tif 000007
【図８】
2011065535.tif 000008
【図９】
2011065535.tif 000009
【図１０】
2011065535.tif 000010
【図３】
2011065535.tif 000011
【図５】
2011065535.tif 000012
【図１１】
2011065535.tif 000013
【図１２】
2011065535.tif 000014
【図１３】
2011065535.tif 000015