(57)【要約】【課題】少ない処理量で、くっきりとした陰影や繊細な色のグラデーションなどを表現することが可能な画像処理プログラム等を提供する。【解決手段】仮想三次元空間内に光源とポリゴンで構成される物体とカメラとを配置して、前記カメラで撮影した画像を生成する処理をコンピュータに実行させるための画像処理プログラムにおいて、前記仮想光源からの光が第１及び第２の物体に当たったときの拡散反射及び前記第２の物体に当たった前記第１の物体の影を、ライティング情報テクスチャにより物体のディテールを表すベーステクスチャと重ねて該当の物体にマッピングするステップと、前記仮想光が前記第１の及び第２の物体に当たったときの鏡面反射を算出し、前記第１及び第２の物体表面にスペキュラを生成するステップと、前記第２の物体にマッピングされる前記ライティング情報テクスチャに設けられたマスク情報に基づいて前記スペキュラをマスクするステップと、を備える。【選択図】図１
2007066064.tif 000002
【特許請求の範囲】
【請求項１】
仮想三次元空間内にポリゴンで構成される物体と仮想カメラと仮想光源とを配置して、前記仮想カメラで撮影した画像を生成する画像生成装置であって、
前記仮想三次元空間内に配置される各物体のディテールをマッピングするためのベーステクスチャ、及び、物体表面における拡散反射及び物体の影を少なくともマッピングするためのカラー情報を有すると共に前記影を含む暗い領域をマスクするためのマスク情報を有するライティング情報テクスチャを記憶する２次元画像記憶手段と、前記仮想光源からの仮想光が第１の物体及び第２の物体に当たったときの拡散反射及び前記第２の物体に当たった前記第１の物体の影を、前記ライティング情報テクスチャにより前記ベーステクスチャと重ねて該当の物体にマッピングするテクスチャマッピング手段と、前記仮想光が前記第１の及び第２の物体に当たったときの鏡面反射を算出し、前記第１及び第２の物体表面にスペキュラを生成するスペキュラ生成手段と、前記第２の物体にマッピングされた前記ライティング情報テクスチャに設けられた前記マスク情報に基づいて前記スペキュラをマスクするライトマスク手段と、を備えたことを特徴とする画像生成装置。
【請求項２】
前記スペキュラ生成手段は、前記スペキュラを生成する際、前記スペキュラを生成する箇所に対応する前記ライティング情報テクスチャの箇所に前記マスク情報があるか否かを判定し、マスク情報がある箇所は前記スペキュラを生成する処理を実行しないことを特徴とする請求項１に記載の画像生成装置。
【請求項３】
前記マスク情報は、前記カラー情報をモノクロ情報に変換した情報であることを特徴とする請求項１又は２に記載の画像生成装置。
【請求項４】
前記ポリゴンで構成される各物体は、前記仮想三次元空間内を移動する移動オブジェクトと前記仮想三次元空間内で固定または前記仮想光源との位置関係が一定の位置関係にある固定オブジェクトとを識別可能に設定されており、処理対象の物体が前記固定オブジェクトか否かを判定する判定手段を有し、該判定手段によって前記固定オブジェクトと判定された場合にのみ前記ライティング情報テクスチャを用いて前記拡散反射及び前記影のマッピング処理を実行することを特徴とする請求項１乃至３のいずれかに記載の画像処理装置。
【請求項５】
仮想三次元空間内に仮想光源とポリゴンで構成される物体と仮想カメラとを配置して、前記仮想カメラで撮影した画像を生成する処理をコンピュータに実行させるための画像処理プログラムであって、
前記仮想光源からの仮想光が第１の物体及び第２の物体に当たったときの拡散反射及び前記第２の物体に当たった前記第１の物体の影を、ライティング情報テクスチャにより物体のディテールを表すベーステクスチャと重ねて該当の物体にマッピングするステップと、前記仮想光が前記第１の及び第２の物体に当たったときの鏡面反射を算出し、前記第１及び第２の物体表面にスペキュラを生成するステップと、前記第２の物体にマッピングされる前記ライティング情報テクスチャに設けられたマスク情報に基づいて前記スペキュラをマスクするステップと、を有することを特徴とする画像処理プログラム。
【請求項６】
前記スペキュラを生成する際、前記スペキュラを生成する箇所に対応する前記ライティング情報テクスチャの箇所に前記マスク情報があるか否かを判定し、マスク情報がある箇所は前記スペキュラを生成する処理を実行しないことを特徴とする請求項４に記載の画像処理プログラム。
【請求項７】
前記スペキュラを生成する際、ハイ・ダイナミック・レンジ情報を持ったイメージベースライティングの処理によって前記スペキュラを生成することを特徴とする請求項５に記載の画像処理プログラム。
【請求項８】
前記ポリゴンで構成される各物体は、前記仮想三次元空間内を移動する移動オブジェクトと前記仮想三次元空間内で固定または前記仮想光源との位置関係が一定の位置関係にある固定オブジェクトとを識別可能に設定されており、、処理対象の物体が前記固定オブジェクトか否かを判定する判定ステップを有し、該判定ステップによって前記固定オブジェクトと判定された場合にのみ前記ライティング情報テクスチャを用いて前記拡散反射及び前記影のマッピング処理を実行することを特徴とする請求項５乃至７のいずれかに記載の画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＧ（コンピュータグラフィックス）技術におけるレンダリングの技術に関し、特に、光源からの光によって生じる物体表面の反射光や影をより現実的な状態で表示するための画像生成装置及びプログラムに関するものである。
【背景技術】
【０００２】
ＣＧ技術を活用した各種のシミュレーション装置やゲーム装置においては、現実に近い画像をリアルタイムに生成することが要求される。このような装置においては、３次元空間にモデル化された物体（オブジェクト）、ライト（仮想光源）、カメラ（仮想カメラ）などの情報から２次元画像を生成する処理、いわゆるレンダリングを行なうことによって、より写実的な画像を表示するようにしている。
【０００３】
３次元の仮想空間内に配置された各種の３次元形状のモデルをリアルタイムに画像表現する際には、ポリゴンが広く使用されている。このポリゴンは、表示する立体の材質などに合致させるべく、不透明のポリゴンだけでなく、透明あるいは半透明のポリゴンが用いられている。また、物体表面の色や柄を表現したり、質感を出したりするために、ポリゴンに着色したり、表面にテクスチャ（２次元画像）を貼り付けたりするなどの手法が採られている。
【０００４】
現実に近い画像を表示するためには、光源からの効果を画像に反映させることが必要となる。光源の種類としては、例えば非常に輝度が高い太陽などの光源、輝度が高くある方向に指向性を持つレーザ光やスポットライトなどの光源、輝度は低いが星の光など指向性があって鏡面等に対して反射する光源などがある。このような光源から物体に光を当てたときに生じる物体表面での反射は、拡散反射と鏡面反射とに分けることができる。拡散反射による反射光は、物体のどの方向にも均一に反射する光であり、鏡面反射による反射光は、指向性のある光に対する反射光で、入射角と等しい反射角の方向に指向性をもって反射する光である。後者の拡散反射光には、昼間の太陽の下の様に、太陽からの直接照射による拡散光（ディフューズ光）と、周囲の物体で反射される光による周囲光或いは環境光とがある。一般に、環境光（アンビエント）は無数の光源からなることから、コンピュータを利用した画像処理では、拡散光の定数項として処理される。
【０００５】
ところで、物体表面における光（反射光等）と影を表現する際には、（１）物体表面におけるベースの色や絵柄、（２）物体表面における拡散反射（ディフューズ）、（３）光が遮られることにより生じる影、（４）物体表面における鏡面反射（スペキュラ）、（５）周囲の環境物の映り込みなどを考慮する必要がある。なお、上記（３）の影の種類としては、他の物体に落とす自分の影の他に、物体の裏側のように光が当たらない側の陰影、物体の突起部等により自身に落とす影（セルフシャドウ）がある。
【０００６】
上記のような要素を考慮して光と影を表現する方法としては、例えば、（Ａ）ポリゴンの頂点データ（頂点のカラー、輝度、透明度等のデータ）に基づいてポリゴン面の各ピクセルの輝度等を求めて表現する方法と、（Ｂ）予め影などを反映したテクスチャをポリゴンに貼り付けることによって表現する方法とがある。
【０００７】
上記（Ａ）の方法としては、例えば、ポリゴンの頂点データを用いて頂点間の輝度を補間して辺の輝度を求め、さらに辺と辺の間の輝度を補間してポリゴンの当該領域を描画する方法（グーロシェーディング法）と、輝度ではなく法線を補間して各ピクセルの輝度を求めてポリゴンの当該領域を描画する方法（フォンシェーディング法）が挙げられる。後者のフォンシェーディング法は、膨大な演算処理が必要となるため、リアルタイムでの処理が要求されるゲーム装置等においては、一般的に前者のグーロシェーディング法が採用されている。
【０００８】
一方、前記（Ｂ）の方法としては、テクスチャを構成する各ピクセルについて、例えばカラー、輝度、透明度の情報を予め与えておき、テクスチャを貼り付けた部分のピクセルを、テクスチャのカラー、輝度、透明度に置き換えたり、ポリゴンのカラー、輝度、透明度とそれぞれブレンドさせたりする方法が採られている。その際、例えば、ポリゴンの一部分に不透明又は半透明のテクスチャを貼り付けると、ディスプレイ上では、そのポリゴンはあたかも貼り付けたテクスチャの形状と同じ輪郭を持ったもののように表示される。このようなことから、凹凸のある複雑な輪郭を持った平板状の物体を表示する場合には、凹凸のすべてを多数の面を組み合わせて表現する手法よりは、むしろ一つのポリゴンに希望する物体の輪郭を持ったテクスチャを貼り付ける手法が採られている。
【０００９】
ここで、従来技術を用いたレンダリングの処理について具体例を示して説明する。
【００１０】
図５（Ａ）〜（Ｅ）は、従来技術によるレンダリング処理の流れの一例を示す模式図である。ここでは理解を容易にするため、図５（Ａ）に示すように、球体Ａ１と立方体Ａ２とから構成されるポリゴンモデルＡ（第１の物体）を２次元形状のポリゴンモデルＢ（第２の物体）の上に配置し、各モデルの斜め上方に位置する仮想光源から光（本例では面状の平行光）を当てた場合を例として説明する。
【００１１】
図５（Ｂ）に示されるベーステクスチャＴ１は、物体表面におけるベースの色や絵柄などを表わすテクスチャであり、レンダリングの過程においては、先ず、ベーステクスチャＴ１から必要な部分を切り取って、図５（Ａ）に示される第１の物体Ａと第２の物体Ｂに貼り付ける。この処理によって、図５（Ｃ）に示すように、物体Ｂの表面の色や絵柄、物体Ａの表面に映り込む物体Ｂの絵柄などが表現される。
【００１２】
一方、物体表面における反射光や影は、光線ベクトルや法線ベクトルなどの情報に基づいてポリゴンの頂点毎にカラー情報（赤（Ｒ），緑（Ｇ），青（Ｂ）の三原色の濃度）を予め計算し、他の属性情報（頂点座標、透明度、テクスチャ座標、法線ベクトル等）と共にポリゴンの頂点データとして設定しておく。さらに、そのポリゴンの頂点データを用いてグーロシェーディング法による線分補間等の補間処理により、ポリゴン面のカラー情報を算出し、図５（Ｄ）に示されるような物体Ａ及びＢの画像情報を記憶しておく。なお、視線の方向によって反射光の領域が変化したり、光源の移動によって影の形状が変化したりするが、そのような状態を表現する場合は、レンダリングの過程において、光源、物体Ａ、及び物体Ｂの各位置関係を考慮して、上記グーロシェーディング法等によって該当のポリゴンのカラー情報をリアルタイムに演算してライティング効果用の画像情報を生成する必要がある。
【００１３】
次に、図５（Ｃ）の画像情報と図５（Ｄ）の画像情報とを乗算（カラー情報を合成）する。この処理によって、図５（Ｅ）示すように、物体Ａ，Ｂの表面における光の反射（ディフューズやスペキュラ）と影を反映した画像が表現される。従来は、このようなレンダリングの処理をフレーム単位で繰り返すことによって、例えば、３次元空間内を移動する物体Ａの動画像を表示するようにしている。
【００１４】
なお、グーロシェーディング法では、スポットライトの様に照射領域が小さな光を当てた際に、照射領域内にいずれの頂点も位置しない場合や、一部の頂点しか位置しない場合が生じるため、現実的な光の分布を再現することができないと言う問題がある。このような問題に対しては、例えば、拡散反射光（ディフューズ光）や鏡面反射光（スペキュラ光）の光と影の境界領域に位置するポリゴンを検出し、そのポリゴンを分割して細分化されたポリゴンを生成し、そのポリゴンの頂点データを用いてグーロシェーディング法等により処理することで、光源による効果をより現実的に表示できるようにしたものが提案されている（例えば特許文献１参照）。
【００１５】
また、例えば、背景に表示されている月が欠けていく様子を表現する場合のように、テクスチャに描かれている絵柄の形状（輪郭）を変化させたい場合、一般的に、その都度、所望の絵柄を有する別々のテクスチャを読み出すことによって変化させるようにしているが、この方法では、大容量のテクスチャマップが必要になる等の問題がある。このような問題に対しては、例えば、テクスチャの各ピクセルに付与された透明度を示すα値を変更（例えば該当の箇所のα値を透明又は不透明に変更）することによって、同一のテクスチャを用いて絵柄の形状を変化させることを可能としたものが提案されている（例えば特許文献２参照）。
【００１６】
【特許文献１】特開平１１−２０３５０１号公報
【特許文献２】特許３３８０６７４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
ところで、上述したグーロシェーディング法を用いた従来のレンダリング方法では、反射光や影などのライティング情報をポリゴンの頂点単位でしか表現できないため、図５（Ｅ）の例のように、反射光や影がぼんやりとした画像が生成されてしまい、くっきりとした陰影や、繊細な色のグラデーションなどを表現することができなかった。また、より写実的にするには、モデルのポリゴンの数を増やす必要があるため、膨大な演算処理が必要となってしまい、適用できる装置が限られてしまうという問題があった。例えば、上述した特許文献１のように、該当の部分だけをポリゴンを分割して細分化し、そのポリゴンの頂点データを用いて処理することによって改善することができるが、くっきりとした陰影などを表現することは困難であった。また、より少ない処理量で光源からのライティングによる効果をより向上させることが望まれていた。
【００１８】
さらに、図５を用いて説明した従来の画像生成方法では、頂点のカラー情報を乗算するだけなので、光を当てた部分の明るさをベースのテクスチャより明るくさせることができなかった。そのため、物体の表面にスポットライトを当てた場合や晴天などの強い太陽の光を当てた場合において、強い光を表現することができないなどの問題があった。このような問題に対しては、例えばＨＤＲ（ハイ・ダイナミック・レンジ）情報を持ったイメージベースドライティングの処理を行なうことによって強い光を表現することが可能であるが、影などの暗い部分にも光がそのまま乗ってしまい、本来暗い部分までが明るくなってしまうという問題があった。
【００１９】
本発明は上述のような問題に鑑みて成されたものであり、本発明の目的は、上記の課題を解決し、少ない処理量で、くっきりとした陰影や繊細な色のグラデーションなどを表現することが可能な画像生成装置、及び画像処理プログラムを提供することにある。
【課題を解決するための手段】
【００２０】
本発明は、画像生成装置及びプログラムに関するものであり、画像生成装置に関しては、本発明の上記目的は、仮想三次元空間内にポリゴンで構成される物体と仮想カメラと仮想光源とを配置して、前記仮想カメラで撮影した画像を生成する画像生成装置であって、前記仮想三次元空間内に配置される各物体のディテールをマッピングするためのベーステクスチャ、及び、物体表面における拡散反射及び物体の影を少なくともマッピングするためのカラー情報を有すると共に前記影を含む暗い領域をマスクするためのマスク情報を有するライティング情報テクスチャを記憶する２次元画像記憶手段と、前記仮想光源からの仮想光が第１の物体及び第２の物体に当たったときの拡散反射及び前記第２の物体に当たった前記第１の物体の影を、前記ライティング情報テクスチャにより前記ベーステクスチャと重ねて該当の物体にマッピングするテクスチャマッピング手段と、前記仮想光が前記第１の及び第２の物体に当たったときの鏡面反射を算出し、前記第１及び第２の物体表面にスペキュラを生成するスペキュラ生成手段と、前記第２の物体にマッピングされた前記ライティング情報テクスチャに設けられた前記マスク情報に基づいて前記スペキュラをマスクするライトマスク手段と、を備えることによって達成される。
【００２１】
さらに、本発明の上記目的は、前記スペキュラ生成手段は、前記スペキュラを生成する際、前記スペキュラを生成する箇所に対応する前記ライティング情報テクスチャの箇所に前記マスク情報があるか否かを判定し、マスク情報がある箇所は前記スペキュラを生成する処理を実行しないこと、前記マスク情報は、前記カラー情報をモノクロ情報に変換した情報であること、前記ポリゴンで構成される各物体は、前記仮想三次元空間内を移動する移動オブジェクトと前記仮想三次元空間内で固定または前記仮想光源との位置関係が一定の位置関係にある固定オブジェクトとを識別可能に設定されており、、処理対象の物体が前記固定オブジェクトか否かを判定する判定手段を有し、該判定手段によって前記固定オブジェクトと判定された場合にのみ前記ライティング情報テクスチャを用いて前記拡散反射及び前記影のマッピング処理を実行すること、によってそれぞれ一層効果的に達成される。
【００２２】
また、画像処理プログラムに関しては、本発明の上記目的は、仮想三次元空間内に仮想光源とポリゴンで構成される物体と仮想カメラとを配置して、前記仮想カメラで撮影した画像を生成する処理をコンピュータに実行させるための画像処理プログラムであって、前記仮想光源からの仮想光が第１の物体及び第２の物体に当たったときの拡散反射及び前記第２の物体に当たった前記第１の物体の影を、ライティング情報テクスチャにより物体のディテールを表すベーステクスチャと重ねて該当の物体にマッピングするステップと、前記仮想光が前記第１の及び第２の物体に当たったときの鏡面反射を算出し、前記第１及び第２の物体表面にスペキュラを生成するステップと、前記第２の物体にマッピングされる前記ライティング情報テクスチャに設けられたマスク情報に基づいて前記スペキュラをマスクするステップと、を有すること、によって達成される。
【００２３】
さらに、本発明の上記目的は、前記スペキュラを生成する際、前記スペキュラを生成する箇所に対応する前記ライティング情報テクスチャの箇所に前記マスク情報があるか否かを判定し、マスク情報がある箇所は前記スペキュラを生成する処理を実行しないこと、前記スペキュラを生成する際、ハイ・ダイナミック・レンジ情報を持ったイメージベースドライティングの処理によって前記スペキュラを生成すること、前記ポリゴンで構成される各物体は、前記仮想三次元空間内を移動する移動オブジェクトと前記仮想三次元空間内で固定または前記仮想光源との位置関係が一定の位置関係にある固定オブジェクトとを識別可能に設定されており、処理対象の物体が前記固定オブジェクトか否かを判定する判定ステップを有し、該判定ステップによって前記固定オブジェクトと判定された場合にのみ前記ライティング情報テクスチャを用いて前記拡散反射及び前記影のマッピング処理を実行すること、によってそれぞれ一層効果的に達成される。
【発明の効果】
【００２４】
本発明によれば、ポリゴンの頂点ではなく、２枚目のテクスチャ（ライティング情報テクスチャ）に陰影などの拡散反射や影などを表わすライティング情報を予め持たせるようにしているので、頂点間の補間処理等をすることなく、くっきりとした陰影や繊細な色のグラデーションなどを表現することができる。また、スペキュラを生成する際、影などの暗い部分をマスクして生成するようにしているので、影などの暗い部分を損なわずにスペキュラを追加することが可能になる。このマスク処理によって、晴天などの強い太陽の光をリアルに表現することができる。さらに、光源からの光のライティングの計算処理はスペキュラ成分だけで良いので、処理量を軽減させつつ、正しい位置にスペキュラを表示することができる。なお、ライティングは、ＨＤＲ（ハイ・ダイナミック・レンジ）情報を持ったイメージベースドライティングをすることによって、通常のライトの計算をするよりも処理が軽く、リアルな表現をすることが可能になる。
【発明を実施するための最良の形態】
【００２５】
本発明は、ゲーム装置やシミュレーション装置などのリアルタイムでの動画の生成処理が要求される情報処理装置に好適に適用されるものである。先ず、本発明の技術的着想とレンダリング時の処理における本発明の技術的な特徴について、概要を説明する。
【００２６】
物体表面における光の拡散反射等のシェーディング処理や、他の物体に映り込む影のシャドウイング処理などは、光源と物体の位置関係及び光の入射角に依存するため、視点位置が変わったのみでは物体の輝度や影の位置は変わらず、一方、物体表面における光の鏡面反射等のスペキュラ処理は、視線方向によって反射光の強さが変わるため、視点位置の影響を受けやすいという特徴がある。
【００２７】
また、上記のシェーディングやシャドウイングは、物体を構成するポリゴンの頂点間の輝度等を計算により補間して求めることになるため、ポリゴンの数や大きさ、形状によっては、光と影の境界が正しく表現できなくなってしまう恐れがある。
【００２８】
そこで、本発明では、シェーディング処理やシャドウイング処理は、計算により表面特性を求めるのではなく、ライティング用のテクスチャから必要な部分を切り取って物体に貼り付ける方法で処理を行ない、スペキュラ処理については、計算により求めることで正しい位置に表示するようにしている。
【００２９】
こういった処理によって複数の物体にスペキュラ表示を行なう場合、ある物体のスペキュラ表示位置に、他の物体の影が映り込む場合がある。実際に物体に当たった影の部分は光が遮られているため、その物体と光源との位置関係のみでは正しいスペキュラ表示ができないため、従来の方法では、他の物体との位置関係も考慮したスペキュラ処理を行なう必要がある。しかし、リアルタイムにＣＧで動画を生成する場合、限られた時間内に正しい処理を行なう必要があるが、従来の方法では影の位置とスペキュラの位置とを比較するための処理に時間がかかってしまい、処理能力の低い装置ではリアルタイム処理を実現することができないため、適用範囲が限られてしまう。
【００３０】
そこで、本発明では、ライティング用のテクスチャに予めマスク情報を組み込んでおき、例えば、スペキュラ表示の際に、該当する位置のライティング用のテクスチャにマスク情報があるか否かを判定し、ある場合にはその箇所にスペキュラ表示を行なわないように処理をスキップするようにしている。また、マスク情報が多ビットで構成されている場合は、値の大きさによってスペキュラの濃さ（輝度）を変化させるようにしている。こうすることで、処理量を軽減させつつ正しい表示が可能になる。
【００３１】
尚、この画像処理は、仮想光源と物体の位置関係が一定（または固定）の場合に更なる効果を奏する。
【００３２】
この場合、仮想光源と物体の位置関係が一定（または固定）の場合は、拡散光も常に物体の同じ位置に同じように照射されるため、ライティング情報テクスチャのテクスチャメモリからの読み出しアドレスが同じ値になるため、ポリゴン頂点の輝度計算やテクスチャアドレスの計算が不要になる。
【００３３】
従って、本発明では、仮想３次元空間内を移動または向きを変える物体と、固定に配置される物体とをフラグ等で識別可能にメモリに記憶しておき、描画の際に、このフラグによって、仮想３次元空間内に固定的に配置される物体と識別されたときに、上記の処理を行って描画するか否かを決定している。
【００３４】
また、フラグは、ライティング情報テクスチャにパラメータとして設定しておき、物体の描画時に描画に用いられるテクスチャのパラメータを識別し、パラメータの値（フラグ）によって上記の処理を行って描画するか否かを決定しても良い。
【００３５】
仮想３次元空間内に固定的に配置される物体は、例えば、建物や風景等であり、移動または向きを変える物体は、人物や動物、乗り物等である。
【００３６】
一般的に、仮想３次元空間内に固定的に配置される物体は、視点位置や向きを固定にした場合に静止した画像になるので、表面のディテールや光の当たり具合の精密さが求められ、移動または向きを変える物体は、視点位置や向きとは関係なく常に位置や向きを変えて表示されるので、同じ箇所が常に同じ位置に表示されないので、表面のディテールや光の当たり具合の精密さは固定的に配置される物体ほどは要求されないので、本発明は、リアルタイムな動画像を生成するビデオゲーム等での画像表示において有効に働く。
【００３７】
以下、本発明の好適な実施の形態について図面を参照して詳細に説明する。
【００３８】
図１（Ａ）〜（Ｇ）は、本発明に係るレンダリング処理の流れの一例を、図５に示した従来例と比較して説明するための模式図である。なお、ここでは理解を容易にするため、図５（Ａ）と同様に、図１（Ａ）に示される３次元形状のポリゴンモデルＡ（第１の物体）を２次元形状のポリゴンモデルＢ（第２の物体）の上に配置し、斜め上方に位置する仮想光源から面状の平行光（仮想光）を当てた場合を例として説明する。但し、本発明は、物体Ａ，Ｂの形状や光源の種類（点光源、スポットライト、平行光源、線光源、面光源等）、及び物体や光源の数に限定されるものではない。また、第１の物体Ａがそれ自身に落とす影（セルフシャドウ）等の処理については説明を省略するが、物体を構成する各部位（本例では球体Ａ１と立方体Ａ２）が第１の物体と第２の物体になるだけであり、レンダリングに係る処理は同様である。
【００３９】
以下、本発明に係るレンダリング時の処理を図１（Ａ）〜（Ｇ）の流れに沿って説明するが、以下に示す［１］〜［４］の処理は、処理の順番を規定するものではない。
【００４０】
［１］『ベーステクスチャのマッピング処理』
図１（Ｂ）に示されるベーステクスチャＴ１は、物体表面におけるベースの色や絵柄などを表わすテクスチャであり、レンダリングの手順としては、先ず、ベーステクスチャＴ１から必要な部分を切り取って、図１（Ａ）に示される第１の物体Ａと第２の物体Ｂに貼り付ける。この処理は従来と同様であり、図１（Ｃ）に示すように、物体Ｂの表面の色や絵柄、物体Ａの表面に映り込む物体Ｂの絵柄などが表現される。
【００４１】
［２］『ライティング用テクスチャのマッピング処理』
一方、物体表面における反射光や影を表現する場合、ライティング効果用の画像情報は、従来のように影などのカラー情報をポリゴンの頂点データに持つのではなく、図１（Ｄ）に示すように、２枚目のライティング用テクスチャＴ２（以下「ライティング情報テクスチャ」と言う）に持たせておく。
【００４２】
本例でのライティング情報テクスチャＴ２は、仮想光源からの仮想光により生じる影，ディフューズ，及びアンビエント（物体からの反射光や大気による光の回り込みなど）を少なくとも表現するカラー情報（Ｒ、Ｇ、Ｂの三原色の濃度情報）の他に、後述するマスク情報を有している。ここで言う「影」とは、物体の光が当たらない側の影、他の物体に落とす自分の影、物体がそれ自身に落とす影などであり、本発明では、これらの全ての影を表現したカラー情報をライティング情報テクスチャＴ２に設けている。なお、このライティング情報テクスチャＴ２は、現実のモデルをカメラ等により撮像したものを用いても良い。
【００４３】
このようなライティング情報テクスチャＴ２を用いて、光源からの光のライティング効果を表現する場合には、図１（Ｄ）のライティング情報テクスチャＴ２から必要な部分を切り取り、その部分のカラー情報と図１（Ｃ）の画像情報とを乗算（合成）する。
【００４４】
要約すると、上記［１］、［２］の処理では、仮想光源からの仮想光が第１の物体Ａと第２の物体Ｂに当たったときの拡散反射（ディフューズ）及び第２の物体Ｂに当たった第１の物体Ａの影を表わすライティング情報テクスチャＴ２を、物体のディテールを表すベーステクスチャＴ１に重ねて、第１の物体Ａ及び第２の物体Ｂにマッピングする。このような処理によって、図１（Ｅ）に示すように、光を各物体Ａ、Ｂに当てたときに生じる影、ディフューズ、アンビエント等を表現することができると共に、くっきりとした陰影や繊細な色のグラデーションなどを表現することが可能となる。
【００４５】
［３］『スペキュラの生成処理』
次に、スペキュラの表現について説明する。
【００４６】
前述したように、物体表面における鏡面反射は、光が拡散せず、物体への入射角と同じ角度で反射する鏡のような反射をいい、ある光源から強度Ipの光が入射したとき、鏡面反射光により観測される輝度Lsは、視線と反射光の角度をeとすると、
Ls=c(s)・cos e^n・Ip
となり、視線方向と正反射方向とのずれ角によって輝度が決まる。すなわち、視線方向によって反射光の強さが変わるため、視点位置の影響を受けやすい。そのため、本実施の形態では、視線方向などの変動によって鏡面反射の位置や領域が変化した場合においても正しいスペキュラ表示ができるようにするため、スペキュラについては計算によって表面特性を求めるようにしている。
【００４７】
スペキュラの生成処理としては、例えば、仮想光が各物体Ａ，Ｂに当たったときの鏡面反射を算出し、各物体Ａ，Ｂの表面（鏡面反射の影響を受けるポリゴン部分）にスペキュラを生成する。本実施の形態では、ＨＤＲ（ハイ・ダイナミック・レンジ）情報を持ったイメージベースドライティングをすることによって、スペキュラを反映した画像を生成するようにしている。なお、物体表面にスペキュラを生成（形成）する方法としては、公知の技術として、（１）スペキュラのポリゴンを用いて物体のポリゴンにスペキュラのテクスチャを貼り付ける方法、（２）スペキュラのポリゴンを用いて、物体のポリゴンの頂点カラーを変更してシェーディング処理を行なう方法、（３）物体を構成するポリゴンのテクスチャをスペキュラのテクスチャに変更する方法、またはスペキュラのテクスチャを、物体を構成するポリゴンのテクスチャに重ねて貼り付ける方法、（４）物体を構成するポリゴンの点カラーを変更してシェーディング処理を行なう方法などがあり、これらのいずれかの方法を用いるようにしても良い。
【００４８】
［４］『ライト（スペキュラ光）のマスク処理』
上記のようなスペキュラ処理をそのまま行なうと、影などの暗い部分にもスペキュラ光が合成されて、影などの暗い部分が明るくなってしまう。これを回避し、且つレンダリングにおける処理量を軽減させるために、本発明では、ライティング情報テクスチャＴ２にマスク情報（以下「ライトマスク情報」と呼ぶ）を設け、物体表面にスペキュラを表示する際、その表示領域のうち非マスク領域を対象としてスペキュラを表示するようにしている。すなわち、陰などの暗い部分は覆い被せて（マスクして）スペキュラを生成することによって、本来暗い部分が明るくならないようにしている。
【００４９】
本発明に用いるライトマスク情報は、上記のように影などの暗い部分を本来の暗さに保持（又は補正）するための情報であり、ライトマスク情報のデータ構成としては、ライティング情報テクスチャＴ２を構成するピクセル毎のマスク値で構成される。そして、マスク値は、当該位置のピクセルをマスクするか否かを示す２値（白黒）の情報、あるいは、グレイスケールを示す多値（輝度または濃度の階調値）の情報で構成される。このライトマスク情報の記憶場所は限定されるものではないが、ライティング情報テクスチャＴ２においてテクスチャの各テクセル毎の未使用の領域（本例では透明度を示す情報（α値）の記憶領域）を使用するのが好ましい。例えば、テクスチャマッピングの処理を回路で構成した場合には、αチャンネルの領域を使用する。
【００５０】
図１（Ｆ）は、マスク情報のイメージを示しており、本例では、図１（Ｄ）のライティング情報テクスチャＴ２に設定された影などのカラー情報をモノクロ情報（２値化した白黒画像又は、グレイスケールの多階調の画像）に変換し、そのモノクロ情報を「マスク情報」としている。
【００５１】
このようなマスク情報を用いて物体Ａ、Ｂの表面にスペキュラを生成する際には、例えば、スペキュラを生成する箇所（領域又は位置）に対応するライティング情報テクスチャＴ２の箇所（領域又は位置）に、マスク情報があるか否かを判定し、マスク情報がある場合には、その箇所にスペキュラ表示を行なわないように、スペキュラの生成処理（描画処理）をスキップする形態とするのが望ましい。
【００５２】
尚、描画の順序としては、物体Ａ、Ｂに物体のベーステクスチャとライティング情報テクスチャをマッピングしてから、光源等から鏡面反射を算出して、ライティング情報テクスチャに設定されたマスク情報に基づいてスペキュラの描画をピクセル単位で行なっていく方法や、物体Ａ、Ｂに物体に対して光源等から鏡面反射を算出してスペキュラの描画を行なっておき、後にベーステクスチャとライティング情報テクスチャをマッピングする際に、ライティング情報テクスチャに設定されたマスク情報に基づいて、ベーステクスチャとライティング情報テクスチャの描画をピクセル単位で行なっていく方法のいずれかでも良い。後者の場合、物体Ａ、Ｂに予めベーステクスチャをマッピングしておき、ライティング情報テクスチャのみをこれに設定されたマスク情報に基づいてピクセル単位で仰臥するようにしても良い。
【００５３】
図１の例では、図１（Ｅ）に示す物体Ａ，Ｂの表面にスペキュラを生成する際、マスク情報に基づいてスペキュラをマスクした状態とし、スペキュラを生成する領域のうち非マスク領域を対象として生成することによって、処理量を軽減させつつ、正しい表示が可能になる。例えば、晴天などの強い太陽の光を当てている状態を表現したい場合（あるいは物体の表面にスポットライトを当てた状態を表現したい場合など）、図１（Ｆ）に示すように、強い光を表現し、且つ影などの暗い部分が明るくならないように表示することができる。
【００５４】
なお、グレイスケールを示す階調値をマスク値とした場合には、例えばマスク情報とスペキュラの生成情報に含まれる濃度（輝度）を混合してスペキュラの画像を生成する。すなわち、予め設定若しくは設定変更されたマスク値の大きさによってスペキュラの濃さ（輝度）を変化させる構成としても良い。
【００５５】
以上のようなレンダリングの処理を含む画像生成処理をコンピュータに実行させるためのプログラム（以下「画像処理プログラム」と言う）は、任意の装置外部の記録媒体又は装置内部の記録媒体に格納されており、当該装置のコンピュータにより読み出されて実行される。本発明に係る画像処理プログラムは、その他の処理を行なうメインプログラムから指令されて動作するプログラム、又はゲームプログラムやシミュレーションプログラムなどの各種のアプリケーションプログラムに組み込まれて提供され、当該コンピュータを各種の情報処理装置として機能させる。なお、本発明に係る画像生成処理の一部の処理をハードウェアで実現する形態も本発明に含まれる。
【００５６】
次に、本発明に係るレンダリングのアルゴリズムを適用した画像生成装置の構成について説明する。
【００５７】
図２は、本発明に係る画像生成装置の構成の一例を示すブロック図である。なお、本発明は、シミュレーション装置やゲーム装置に限らず、ナビゲーション装置や医療補助装置、パチンコ機などの各種の情報処理装置に適用できるものであり、図２に示されるハードウェア構成に限定されるものではなく、汎用的なハードウェア構成の装置に適用することができる。
【００５８】
本発明に係る技術は、図２中のレンダリング処理部１１２に適用されるため、画像処理部１１０又はレンダリング処理部１１２を本発明の画像生成装置として定義することもできるが、ここでは、図２中の符号１００で示される破線枠内の部分を画像生成装置と定義して説明する。
【００５９】
図２において、画像生成装置１００には、操作者が入力操作を行なう操作部１０、スピーカ２０及びディスプレイ３０など接続される。
【００６０】
画像生成装置１００は、Ｉ／Ｏ（入出力）処理部１０１、ＣＰＵ（Central  Processing  Unit）１０２、ＲＯＭ（Read  Only  Memory）１０３、ＲＡＭ（Random  Access  Memory）１０４、サウンドメモリ１０５ａを有するサウンド処理部１０５、及び画像処理部１１０が、それぞれ共通のバス１０６で接続されている。
【００６１】
画像処理部１１０は、図２中に示すように、ジオメトリ処理部１１１、レンダリング処理部１１２、ビデオ処理部１１３、及び記憶部（本例では、テクスチャバッファ１１４ａ、Ｚバッファ１１４ｂ、及びフレームバッファ１１４ｃ）等から構成される。
【００６２】
ジオメトリ処理部１１１は、３次元座標系内に配置された物体のポリゴンを、回転，縮小又は拡大を行なう相似変換処理、視点に対して表示画面上の２次元座標系へ変換する透視変換処理等を行なう。２次元座標系へ変換されたポリゴンデータは、レンダリング処理部１１２に供給される。そのポリゴンデータは、通常、ポリゴンを構成する頂点の三次元座標、法線ベクトル、輝度データ、色データ、透明度、テクスチャ座標等の頂点データ（２次元座標内の頂点データ）で構成される。
【００６３】
レンダリング処理部１１２には、本例では、テクスチャデータが格納されたテクスチャバッファ１１４ａと、各ピクセルの二次元座標内の奥行きを示すＺ値が格納されるＺバッファ１１４ｂとが接続される。
【００６４】
レンダリング処理部１１２で生成された１フレーム分の画像情報は、フレームバッファ１１４ｃに書き込まれる。そして、フレームバッファ１１４ｃに書き込まれた画像情報は、ビデオ処理部１１３で所定の同期タイミングでビデオ信号に変換されてディスプレイ３０に出力される。
【００６５】
なお、上記のジオメトリ処理部１１１とレンダリング処理部１１２でのポリゴンに対する処理は、通常の画像生成装置では、次々に供給されるポリゴンデータを順次処理するパイプライン処理の構成をとる。或いは、汎用コンピュータにより処理する場合は、ジオメトリ処理とレンダリング処理は、それぞれの処理プログラムに従って行なわれる。
【００６６】
図３は、本発明に係るレンダリング処理部１１２の主要部の構成を示す機能ブロック図である。レンダリング処理部１１２は、前述のベーステクスチャ及びライティング情報テクスチャ等を記憶する２次元画像記憶手段５１と、前述の［１］及び［２］のマッピング処理を行なうテクスチャマッピング手段５２と、前述の［３］のスペキュラの生成処理を行なうスペキュラ生成手段５３と、前述の［４］のライトのマスク処理を行なうライトマスク手段５４などから構成される。
【００６７】
図３中の２次元画像記憶手段５１は、ハードウェアとしては図２中のテクスチャバッファ１１４ａに相当する。テクスチャマッピング手段５２は、仮想光源からの仮想光が第１の物体及び第２の物体に当たったときの拡散反射及び第２の物体に当たった第１の物体の影を、ライティング情報テクスチャにより物体のディテールを表すベーステクスチャと重ねて物体にマッピングする機能などを有している。
【００６８】
スペキュラ生成手段５３は、仮想光が第１及び第２の物体に当たったときの鏡面反射を算出し、第１及び第２の物体の表面にスペキュラを生成する機能などを有している。そして、ライトマスク手段５４は、第２の物体にマッピングされるライティング情報テクスチャに設けられたマスク情報に基づいて上記スペキュラをマスクする機能を有している。
【００６９】
なお、上記手段５１〜５４は、説明の便宜上、レンダリング処理部の機能構成を示すために、構成要素に手段名を付けて機能的に分類したものであり、ソフトウェ構成等を限定するものではない。また、上記テクスチャマッピング手段５２、スペキュラ生成手段５３、及びライトマスク手段５４は、本実施の形態ではハードウェアと協働して動作する画像処理プログラムで実現されるが、一部又は全ての処理をハードウェアで構成する形態としても良い。
【００７０】
このような構成において、本発明に係る画像生成装置の動作例を説明する。なお、レンダリング処理部１１２の以外の動作については一般的な画像生成装置の動作と同様であるため説明を省略し、ここでは、本発明に係るレンダリング処理部１１２の主要な動作について説明する。
【００７１】
以下、本発明に係るレンダリング処理部の動作例を図４のフローチャートの流れに沿って説明する。
【００７２】
レンダリング処理部１１２では、ジオメトリ処理部１１１から供給される各物体のポリゴンの頂点データ、光源データ、及び視点データを入力する。ここで入力される光源データは、例えばスポットライトの場合は、光源の位置座標、強さ、色、光源からの光線が届く距離の範囲、光の広がりを示す円錐角、方向等の情報を含んでいる（ステップＳ１）。
【００７３】
レンダリング処理部１１２のテクスチャマッピング手段５２では、２次元画像記憶手段５１（図２中のテクスチャバッファ１１４ａ）から、ポリゴンのテクスチャ座標に対応するベーステクスチャ（１枚目のテクスチャ）及びライティング情報テクスチャを（２枚目のテクスチャ）読み出し、光源からの光が第１，第２の物体に当たったときの拡散反射（ディフューズ）及び第１の物体（光源側の物体）が第２の物体（光源に対して奥側の物体）に落とす影などを、ライティング情報テクスチャによって物体のディテールを表すベーステクスチャに重ね合わせて第１，第２の物体にマッピングする（ステップＳ２）。なお、ここで言う「ライティング情報テクスチャ」は、前述のカラー情報及びマスク情報を有する２枚目のライティング用テクスチャＴ２のことであり、影，ディフューズ，アンビエントなどを表す１枚のテクスチャである。
【００７４】
続いて、レンダリング処理部１１２のスペキュラ生成手段５３では、各物体の頂点データ、光源データ及び視点データをもとに、各物体と視点と光源の位置関係等を求めて仮想光源からの光が物体に当たったときの物体表面におけるスペキュラの領域を決定すると共に（ステップＳ３）、光源の強さと色、光の入射角等の情報に基づいて物体表面におけるスペキュラの明るさ（輝度又は色の濃度、若しくは両者）を算出する（ステップＳ４）。
【００７５】
一方、ライトマスク手段５４によって、第２の物体（第１の物体によって光源からの光が遮られる奥側の物体）にマッピングされるライティング情報テクスチャに設けられたマスク情報に基づいて、スペキュラ領域（スペキュラ光の表示領域）をマスクしておく（ステップＳ５）。そして、前記ステップＳ４においてスペキュラの画像情報を生成する際（あるいは、スペキュラの画像情報を前記ステップＳ２でテクスチャマッピングした画像情報と合成して表示する際）には、スペキュラ生成手段５３では、スペキュラ領域の各ピクセル位置にマスク情報（マスク値）があるか否かを判定し（ステップＳ６）、マスク情報があるにはスペキュラの処理をスキップして、非マスク領域を対象としてＨＤＲ（ハイ・ダイナミック・レンジ）情報を持ったイメージベースドライティングの処理によって該当の部分だけにスペキュラを生成（あるいは合成）する（ステップＳ７）。そして、スペキュラを反映した画像情報をフレームバッファ１１４ｃに書き込み（ステップＳ８）、１フレーム分の処理を終了する。
【００７６】
以上の処理によって、光源からのライティングによる物体表面の各種の光と影の効果を反映した画像がディスプレイ３０に出力される。そして、ステップＳ１以降の処理をフレーム毎に繰り返すことによって動画像が表示される。例えば、ゲーム装置の場合は、操作手段の操作に応答して仮想三次元空間内を移動する移動体（プレイヤキャラクタ等）の動画像が表示される。また、ナビゲーション装置の場合は、無線によって受信した移動体の位置情報を可変要素として入力することによって、移動体（車両や携帯電話機所持者など）を表わすモデルが地図の画像上を移動する様子を示す動画像等が表示される。
【００７７】
以上のように、本発明に係る画像生成装置（及びプログラム）では、ライティングによる影などのカラー情報をテクスチャとして持たせておき、そのテクスチャをベーステクスチャと重ね合わせて物体表面にマッピングすることによって、影やディフューズ、アンビエント等を反映させる。一方、スペキュラについては、視線方向の変化や、物体，光源，仮想カメラの移動などに伴って変化するスペキュラの位置を演算により検出し、正しい位置にスペキュラを設定すると共に、影などの暗い部分をマスクしてスペキュラを表示する。その結果、レンダリングにおける処理量を軽減させつつ、物体表面の反射光や影などをより一層現実的に表示することが可能となる。
【図面の簡単な説明】
【００７８】
【図１】本発明に係るレンダリング処理の流れの一例を示す模式図である。
【図２】本発明に係る画像生成装置の構成の一例を示すブロック図である。
【図３】本発明に係るレンダリング処理部の構成の一例を示す機能ブロック図である。
【図４】本発明に係るレンダリング処理部の動作例を説明するためのフローチャートである。
【図５】従来技術によるレンダリング処理の流れの一例を示す模式図である。
【符号の説明】
【００７９】
Ａ  第１の物体
Ｂ  第２の物体
Ｔ１  ベーステクスチャ
Ｔ２  ライティング情報テクスチャ
５１  ２次元画像記憶手段(テクスチャバッファ)
５２  テクスチャマッピング手段
５３  スペキュラ生成手段
５４  ライトマスク手段
１００  画像生成装置
１１０  画像処理
１１１  ジオメトリ処理部
１１２  レンダリング処理部
１１３  ビデオ処理部
１１４ａ  テクスチャバッファ
１１４ｃ  フレームバッファ
【図１】
2007066064.tif 000003
【図２】
2007066064.tif 000004
【図３】
2007066064.tif 000005
【図４】
2007066064.tif 000006
【図５】
2007066064.tif 000007