(57)【特許請求の範囲】
【請求項１】
画像を生成するためのプログラムであって、
頂点単位で処理を行う頂点シェーダ部と、
ピクセル単位で処理を行うピクセルシェーダ部として、
コンピュータを機能させ、
前記頂点シェーダ部は、
オブジェクトの頂点法線ベクトルを出力し、
前記ピクセルシェーダ部は、
前記頂点シェーダ部から出力された前記頂点法線ベクトルにより得られた各ピクセルの法線ベクトルと、視線ベクトルとに基づいて、色制御パラメータを求め、求められた色制御パラメータに基づいて、オブジェクトの輪郭に近づくほどシルエット色の基準となる色である基準色に近づき、オブジェクトの輪郭から遠ざかるほど色成分が０に近づくシルエット色を求め、求められたシルエット色とオブジェクトの色を合成する処理を行うことを特徴とするプログラム。
【請求項２】
請求項１において、
前記ピクセルシェーダ部は、
各ピクセルの前記法線ベクトルをＮとし、前記視線ベクトルをＥとし、前記シルエット色の強度パラメータをＳとした場合に、１−（Ｎ・Ｅ）Ｓの項（Ｓ≧１）を含む前記色制御パラメータを求め、求められた前記色制御パラメータに基づいて前記シルエット色を求めることを特徴とするプログラム。
【請求項３】
請求項２において、
前記ピクセルシェーダ部は、
前記強度パラメータＳを可変に設定することを特徴とするプログラム。
【請求項４】
請求項３において、
前記オブジェクトが配置されるオブジェクト空間の設定を行うオブジェクト空間設定部として、
コンピュータを機能させ、
前記ピクセルシェーダ部は、
前記オブジェクト空間の設定に応じた値に、前記強度パラメータＳを設定することを特徴とするプログラム。
【請求項５】
請求項２乃至４のいずれかにおいて、
前記ピクセルシェーダ部は、
前記シルエット色の基準色をＣＳとした場合に、ＣＳ×｛１−（Ｎ・Ｅ）Ｓ｝の演算を行って、シルエット色を求めることを特徴とするプログラム。
【請求項６】
請求項５において、
前記ピクセルシェーダ部は、
前記基準色ＣＳを可変に設定することを特徴とするプログラム。
【請求項７】
請求項６において、
前記オブジェクトが配置されるオブジェクト空間の設定を行うオブジェクト空間設定部として、
コンピュータを機能させ、
前記ピクセルシェーダ部は、
前記オブジェクト空間の設定に応じた色に、前記基準色ＣＳを設定することを特徴とするプログラム。
【請求項８】
請求項１乃至７のいずれかにおいて、
仮想カメラと前記オブジェクトとの距離が所定距離以下の場合には、
前記ピクセルシェーダ部が、
頂点法線ベクトルを補間することで得られる各ピクセルの法線ベクトルと、視線ベクトルの内積のべき乗を演算することにより得られる色制御パラメータを求めて、シルエット色を求め、
仮想カメラと前記オブジェクトとの距離が所定距離よりも大きい場合には、
前記頂点シェーダ部が、
頂点法線ベクトルと、視線ベクトルの内積のべき乗を演算することにより得られる色制御パラメータを求めて、シルエット色を求めることを特徴とするプログラム。
【請求項９】
請求項１乃至８のいずれかにおいて、
前記ピクセルシェーダ部は、
現実世界での照光現象をシミュレートするための数学的モデルの演算式である照明モデルと光源情報に基づいて、少なくともスペキュラ演算を含むライティング処理を行って、前記オブジェクトの色を求め、前記ライティング処理により得られたオブジェクトの色と、前記シルエット色を合成する処理を行うことを特徴とするプログラム。
【請求項１０】
請求項１乃至９のいずれかにおいて、
テクスチャを記憶するテクスチャ記憶部として、
コンピュータを機能させ、
前記テクスチャ記憶部は、
前記オブジェクトの展開図に対応した色パターンを有し、前記オブジェクトの表面の色がテクセルに設定されるカラーマップテクスチャと、前記オブジェクトの展開図に対応した反射情報パターンを有し、反射情報がテクセルに設定される反射マップテクスチャとを記憶し、
前記ピクセルシェーダ部は、
前記反射マップテクスチャのテクセルに設定された前記反射情報と、現実世界での照光現象をシミュレートするための数学的モデルの演算式である照明モデルと、光源情報に基づいて、前記オブジェクトのライティング処理を行うことを特徴とするプログラム。
【請求項１１】
請求項１０において、
前記反射マップテクスチャのテクセルのうち、前記ライティング処理が行われるライティング処理領域以外の領域に対応するテクセルでは、前記ライティング処理のスペキュラ演算を無効にする第１の値が設定され、
前記ピクセルシェーダ部は、
前記反射情報が第１の値に設定されている場合に、前記スペキュラ演算を無効にすることを特徴とするプログラム。
【請求項１２】
請求項１０又は１１おいて、
前記テクスチャ記憶部は、
前記オブジェクトの展開図に対応した法線ベクトルパターンを有し、法線ベクトル情報がテクセルに設定される法線マップテクスチャを記憶し、
前記ピクセルシェーダ部は、
前記法線マップテクスチャに基づいて、前記オブジェクトの表面の凹凸を表すためのバンプ処理を行うことを特徴とするプログラム。
【請求項１３】
請求項１乃至９のいずれかにおいて、
テクスチャを記憶するテクスチャ記憶部として、
コンピュータを機能させ、
前記テクスチャ記憶部は、
前記オブジェクトの展開図に対応した色パターンを有し、前記オブジェクトの表面の色がテクセルに設定されるカラーマップテクスチャと、前記オブジェクトの展開図に対応した法線ベクトルパターンを有し、法線ベクトルの情報がテクセルに設定される法線マップテクスチャとを記憶し、
前記ピクセルシェーダ部は、
前記法線マップテクスチャに基づいて、前記オブジェクトの表面の凹凸を表すためのバンプ処理を行うことを特徴とするプログラム。
【請求項１４】
請求項１２又は１３において、
前記頂点シェーダ部は、
オブジェクトの各頂点に設定される座標系であって各頂点の法線ベクトルがＺ軸の正の方向を向く座標系において、Ｘ軸に沿った方向を向くベクトルを接ベクトルとし、Ｙ軸に沿った方向を向くベクトルを従法線ベクトルとした場合に、前記接ベクトル及び前記従法線ベクトルをワールド座標系に座標変換し、
前記ピクセルシェーダ部は、
前記法線マップテクスチャにより得られた法線ベクトルを、前記接ベクトル及び前記従法線ベクトルに基づきワールド座標系に座標変換し、座標変換後の法線ベクトルに基づいて前記バンプ処理を行うことを特徴とするプログラム。
【請求項１５】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至１４のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１６】
画像を生成する画像生成システムであって、
頂点単位で処理を行う頂点シェーダ部と、
ピクセル単位で処理を行うピクセルシェーダ部とを含み、
前記頂点シェーダ部は、
オブジェクトの頂点法線ベクトルを出力し、
前記ピクセルシェーダ部は、
前記頂点シェーダ部から出力された前記頂点法線ベクトルにより得られた各ピクセルの法線ベクトルと、視線ベクトルとに基づいて、色制御パラメータを求め、求められた色制御パラメータに基づいて、オブジェクトの輪郭に近づくほどシルエット色の基準となる色である基準色に近づき、オブジェクトの輪郭から遠ざかるほど色成分が０に近づくシルエット色を求め、求められたシルエット色とオブジェクトの色を合成する処理を行うことを特徴とする画像生成システム。
【請求項１７】
請求項１６において、
仮想カメラと前記オブジェクトとの距離が所定距離以下の場合には、
前記ピクセルシェーダ部が、
頂点法線ベクトルを補間することで得られる各ピクセルの法線ベクトルと、視線ベクトルの内積のべき乗を演算することにより得られる色制御パラメータを求めて、シルエット色を求め、
仮想カメラと前記オブジェクトとの距離が所定距離よりも大きい場合には、
前記頂点シェーダ部が、
頂点法線ベクトルと、視線ベクトルの内積のべき乗を演算することにより得られる色制御パラメータを求めて、シルエット色を求めることを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、キャラクタ、車などのオブジェクトが配置設定されるオブジェクト空間内（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。サッカーゲームを楽しめる画像生成システムを例にとれば、プレーヤは、スクリーン上に映し出されたキャラクタを操作し、ドリブルをしたりシュートをしたりしてゲームを楽しむ。
【０００３】
このような画像生成システムでは、生成される画像のリアル性への要求が、年々、高まっている。従って、キャラクタの後方にある光源からの光がキャラクタのシルエット（輪郭）を透過して見えるシルエット色についても、リアルに表現できることが望ましい。
【特許文献１】特開２００２−４２１５６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、シルエット色のリアルな表現を可能にするプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明は、画像を生成する画像生成システムであって、頂点単位で処理を行う頂点シェーダ部と、ピクセル単位で処理を行うピクセルシェーダ部とを含み、前記頂点シェーダ部は、オブジェクトの頂点法線ベクトルを出力し、前記ピクセルシェーダ部は、前記頂点シェーダ部から出力された前記頂点法線ベクトルにより得られた各ピクセルの法線ベクトルと、視線ベクトルとに基づいて、色制御パラメータを求め、求められた色制御パラメータに基づいて、オブジェクトの輪郭に近づくほど色が濃くなりオブジェクトの輪郭から遠ざかるほど色が薄くなるオブジェクトのシルエット色を求め、求められたシルエット色とオブジェクトの色を合成する処理を行う画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【０００６】
本発明によれば、頂点シェーダ部からの頂点法線ベクトルにより得られた各ピクセルの法線ベクトルと、視線ベクトルとに基づき、色制御パラメータが求められ、色制御パラメータに基づきシルエット色が求められる。このようにすれば、補間された正確な各ピクセルの法線ベクトルに基づき、シルエット色が求められるようになるため、シルエット色の正確なエフェクト処理を実現でき、生成される画像の品質を向上できる。
【０００７】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ピクセルシェーダ部は、各ピクセルの前記法線ベクトルをＮとし、前記視線ベクトルをＥとし、前記シルエット色の強度パラメータをＳとした場合に、１−（Ｎ・Ｅ）Ｓの項（Ｓ≧１）を含む前記色制御パラメータを求め、求められた前記色制御パラメータに基づいて前記シルエット色を求めてもよい。
【０００８】
このようにすれば、法線ベクトルＮと視線ベクトルＥの内積を求めるという簡素な処理で、シルエット色の色制御パラメータを求めることが可能になる。
【０００９】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ピクセルシェーダ部は、前記強度パラメータＳを可変に設定してもよい。
【００１０】
このようにすれば、オブジェクトの輪郭でのシルエット色の影響範囲を可変に制御できるようになり、生成される画像の多様性を増すことができる。
【００１１】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記オブジェクトが配置されるオブジェクト空間の設定を行うオブジェクト空間設定部を含み（該オブジェクト空間設定部としてコンピュータを機能させ）、前記ピクセルシェーダ部は、前記オブジェクト空間の設定に応じた値に、前記強度パラメータＳを設定してもよい。
【００１２】
このようにすれば、オブジェクト空間の設定に応じた最適なシルエット色のエフェクト処理を実現できる。
【００１３】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ピクセルシェーダ部は、前記シルエット色の基準色をＣＳとした場合に、ＣＳ×｛１−（Ｎ・Ｅ）Ｓ｝の演算を行って、シルエット色を求めてもよい。
【００１４】
このようにすれば、簡素な処理でシルエット色を求めることが可能になる。
【００１５】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ピクセルシェーダ部は、前記基準色ＣＳを可変に設定してもよい。
【００１６】
このようにすれば、オブジェクトのシルエット色を可変に制御できるようになり、生成される画像の多様性を増すことができる。
【００１７】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記オブジェクトが配置されるオブジェクト空間の設定を行うオブジェクト空間設定部を含み（該オブジェクト空間設定部としてコンピュータを機能させ）、前記ピクセルシェーダ部は、前記オブジェクト空間の設定に応じた色に、前記基準色ＣＳを設定してもよい。
【００１８】
このようにすれば、オブジェクト空間の設定に応じた最適な色のシルエット効果を実現できる。
【００１９】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、仮想カメラと前記オブジェクトとの距離が近い場合には、前記ピクセルシェーダ部が、各ピクセルの法線ベクトルと、視線ベクトルとに基づいて、色制御パラメータを求めて、シルエット色を求め、仮想カメラと前記オブジェクトとの距離が遠い場合には、前記頂点シェーダ部が、頂点法線ベクトルと、視線ベクトルとに基づいて、色制御パラメータを求めて、シルエット色を求めてもよい。
【００２０】
このようにすれば、生成される画像の品質の維持と処理の効率化を両立できる。
【００２１】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ピクセルシェーダ部は、照明モデルと光源情報に基づいて、少なくともスペキュラー演算を含むライティング処理を行って、前記オブジェクトの色を求め、前記ライティング処理により得られた前記オブジェクトの色と、前記シルエット色を合成してもよい。
【００２２】
このようにすれば、仮想カメラから見てオブジェクトの中心付近では、スペキュラ効果が反映された画像を生成できる一方で、仮想カメラから見てオブジェクトの輪郭付近では、シルエット色の効果が反映された画像を生成できる。
【００２３】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、テクスチャを記憶するテクスチャ記憶部を含み（該テクスチャ記憶部としてコンピュータを機能させ）、前記テクスチャ記憶部は、前記オブジェクトの展開図に対応した色パターンを有し、前記オブジェクトの表面の色がテクセルに設定されるカラーマップテクスチャと、前記オブジェクトの展開図に対応した反射情報パターンを有し、反射情報がテクセルに設定される反射マップテクスチャとを記憶し、前記ピクセルシェーダ部は、前記反射マップテクスチャのテクセルに設定された前記反射情報と、照明モデルと、光源情報に基づいて、前記オブジェクトのライティング処理を行ってもよい。
【００２４】
このようにすれば、オブジェクトの各部分の画像をカラーマップテクスチャに詳細に描くことが可能になる。従って、同じテクスチャを繰り返しマッピングする手法に比べて、より写実的な画像を生成できる。またオブジェクトの各部分の反射情報の状態を反射マップテクスチャに詳細に描くことも可能になる。従って、オブジェクトの各部分のうちライティング処理領域に対応するテクセルに対して反射情報を描くだけで、オブジェクトの各部分での光沢表現を実現できる。この結果、反射マップテクスチャの反射情報パターンを変えるだけで、種々のパターンの画像表現が可能になる。またカラーマップテクスチャに所与の画像パターンが描かれた場合に、反射マップテクスチャのテクセルに対して、その画像パターンに対応した反射情報を書き込むことも可能になる。
【００２５】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記反射マップテクスチャのテクセルのうち、前記ライティング処理が行われるライティング処理領域以外の領域に対応するテクセルでは、前記ライティング処理のスペキュラ演算を無効にする第１の値が設定され、前記ピクセルシェーダ部は、前記反射情報が第１の値に設定されている場合に、前記スペキュラ演算を無効にしてもよい。
【００２６】
このようにすれば、反射マップテクスチャの反射情報をマスク情報として活用し、スペキュラ画像が生成されると不自然になる部分等においてスペキュラ演算を無効にできる。
【００２７】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記テクスチャ記憶部は、前記オブジェクトの展開図に対応した法線ベクトルパターンを有し、法線ベクトル情報がテクセルに設定される法線マップテクスチャを記憶し、前記ピクセルシェーダ部は、前記法線マップテクスチャに基づいて、前記オブジェクトの表面の凹凸を表すためのバンプ処理を行ってもよい。
【００２８】
このようにすれば、ライティング処理によるオブジェクトの表面の光沢表現のみならず、オブジェクトの表面の凹凸表現も実現でき、画像のリアル度を向上できる。
【００２９】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、テクスチャを記憶するテクスチャ記憶部を含み（該テクスチャ記憶部としてコンピュータを機能させ）、前記テクスチャ記憶部は、前記オブジェクトの展開図に対応した色パターンを有し、前記オブジェクトの表面の色がテクセルに設定されるカラーマップテクスチャと、前記オブジェクトの展開図に対応した法線ベクトルパターンを有し、法線ベクトルの情報がテクセルに設定される法線マップテクスチャとを記憶し、前記ピクセルシェーダ部は、前記法線マップテクスチャに基づいて、前記オブジェクトの表面の凹凸を表すためのバンプ処理を行ってもよい。
【００３０】
本発明によれば、オブジェクトの各部分の画像をカラーマップテクスチャに詳細に描くことができるため、より写実的な画像を生成できる。またオブジェクトの各部分の法線ベクトル情報を法線マップテクスチャに詳細に描くことも可能になる。従って、オブジェクトの各部分のうち凹凸を表現したい領域に対して法線ベクトル情報を描くだけで、オブジェクトの各部分での凹凸表現を実現でき、多様な画像を生成できる。またカラーマップテクスチャに所与の画像パターンが描かれた場合に、法線マップテクスチャのテクセルに対して、その画像パターンに対応した法線ベクトル情報を書き込むことも可能になる。
【００３１】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記頂点シェーダ部は、第１、第２の従法線ベクトルをワールド座標系に座標変換し、前記ピクセルシェーダ部は、前記法線マップテクスチャにより得られた法線ベクトルを、前記第１、第２の従法線ベクトルに基づきワールド座標系に座標変換し、座標変換後の法線ベクトルに基づいて前記バンプ処理を行ってもよい。
【００３２】
このようにワールド座標系に座標変換したベクトルにより演算すれば、演算精度を向上できる。そして第１、第２の従法線ベクトルを用いてバンプ処理用の法線ベクトルをワールド座標系に座標変換すれば、座標変換後の法線ベクトルを用いたバンプ処理を実現できる。
【発明を実施するための最良の形態】
【００３３】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３４】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００３５】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、或いはタッチパネル型ディスプレイなどにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００３６】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、ハードディスク、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００３７】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００３８】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３９】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００４０】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０（主記憶部１７２）をワーク領域として各種処理を行う。処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００４１】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、パラメータ演算部１１６、変化処理部１１８、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００４２】
オブジェクト空間設定部１１０は、キャラクタ（人、ロボット等）、スタジアム、建物、樹木、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。具体的には、記憶部１７０のモデルデータ記憶部１７６には、移動体オブジェクト（キャラクタ）、固定物オブジェクト（ビル）、背景オブジェクト（マップ、天球）のモデルデータが記憶されている。そしてオブジェクト空間設定部１１０は、このモデルデータを用いてオブジェクト空間へのオブジェクトの設定（配置）処理を行う。
【００４３】
移動・動作処理部１１２は、オブジェクト（キャラクタ等）の移動・動作演算（移動・動作シミュレーション）を行う。即ち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクト（モデルオブジェクト）をオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００４４】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。
【００４５】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、ボール、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【００４６】
パラメータ演算部１１６は、ゲーム処理に用いる各種のパラメータを演算する。例えばパラメータ演算部１１６は、キャラクタに関するパラメータ（ステータスパラメータ）を演算する。具体的には、キャラクタの体力（スタミナ）パラメータや、運動量（移動量、移動情報）パラメータや、時間経過（運動時間）パラメータを演算する。ここで体力パラメータは、キャラクタの残りの体力を表すパラメータであり、キャラクタの移動・動作の継続や、時間経過に伴って減少する。また運動量パラメータは、キャラクタの運動の度合いを量的に表すパラメータであり、キャラクタが移動・動作することで増加する。また時間経過パラメータは、キャラクタに関する時間の経過を表すパラメータであり、例えばキャラクタが移動・動作（運動）を開始してからの時間経過に伴い増加する。
【００４７】
変化処理部１１８は、パラメータ演算部１１６で演算されたパラメータに基づいて、反射マップテクスチャを変化させる処理を行う。例えば演算されたパラメータに基づいて、反射マップテクスチャの差し替え（切り替え）を行ったり、反射マップテクスチャの反射情報の書き換えを行う。そしてこのように反射マップテクスチャを変化させることで、ライティング処理領域の面積、形状や、光の反射率や、光沢色を変化させる。具体的には、パラメータ演算部１１６で演算された体力パラメータが少なくなるほど、或いは運動量パラメータが大きくなるほど、或いは時間経過パラメータが大きくなるほど、ライティング処理領域の面積（キャラクタ表面での占有面積）を大きくする処理を行う。
【００４８】
また変化処理部１１８は、パラメータ演算部１１６で演算されたパラメータに基づいて、法線マップテクスチャを変化させる処理を行う。例えば演算されたパラメータに基づいて、法線マップテクスチャの差し替え（切り替え）を行ったり、法線マップテクスチャの法線ベクトル情報の書き換えを行う。また変化処理部１１８は、反射マップテクスチャが変化した場合に、反射マップテクスチャの変化に連動して法線マップテクスチャを変化させる処理を行う。例えば反射マップテクスチャの変化により、ライティング処理領域の面積、形状等が変化した場合には、この面積、形状等の変化に連動して、ライティング処理領域での法線マップテクスチャを変化させる。
【００４９】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずモデル（オブジェクト）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むモデルデータが入力され、入力されたモデルデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００５０】
描画部１２０は、オブジェクトを描画する際にジオメトリ処理、隠面消去処理、αブレンディング等を行う。
【００５１】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のモデルデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ、法線ベクトル、或いはα値等）は、記憶部１７０に保存される。
【００５２】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファに格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファのＺ値を新たなＺ値に更新する。
【００５３】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。
【００５４】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００５５】
描画部１２０は、頂点シェーダ部（頂点処理部）１２２、ピクセルシェーダ部（ピクセル処理部）１２４を含む。
【００５６】
頂点シェーダ部１２２は、頂点単位の処理（per vertex processing）である頂点処理を行う。この頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理、座標変換処理（ワールド座標変換、カメラ座標変換、頂点座標変換）、ライティング処理、或いはデータ出力処理（レジスタ格納処理）等が行われる。そして、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データが変更（更新、調整）される。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。
【００５７】
そしてこのラスタライズに続いて、ピクセルシェーダ部１２４は、ピクセル単位の処理（per pixel processing）であるピクセル処理を行う。このピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャのフェッチ（テクスチャマッピング）、ライティング処理、色データの設定／変更、半透明合成、アンチエイリアス等が行われる。そして画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。即ち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。
【００５８】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現できる。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００５９】
そして本実施形態では頂点シェーダ部１２２が、オブジェクト（キャラクタ）の頂点法線ベクトル（頂点に設定された法線ベクトル）を出力する。具体的には、ローカル座標系の頂点法線ベクトルをワールド座標系や頂点座標系（接ベクトル空間）に座標変換して、出力レジスタに格納し、ピクセルシェーダ部１２４に渡す。
【００６０】
ピクセルシェーダ部１２４は、頂点シェーダ部１２２から出力された頂点法線ベクトルにより得られた各ピクセルの法線ベクトルと、視線ベクトルとに基づいて、色制御パラメータを求める。例えば各ピクセルの法線ベクトルをＮとし、視線ベクトルをＥとし、シルエット色（輪郭色）の強度パラメータをＳとした場合に、１−（Ｎ・Ｅ）Ｓの項（Ｓ≧１）を含む色制御パラメータを求める。この場合、１−（Ｎ・Ｅ）Ｓそのものを色制御パラメータとしてもよいし、１−（Ｎ・Ｅ）Ｓに係数を乗算したものや、１−（Ｎ・Ｅ）Ｓを引数とする関数の値を色制御パラメータとしてもよい。またピクセルシェーダ部１２４は、色制御パラメータの強度パラメータＳを可変に設定する。例えばオブジェクト空間毎に強度パラメータＳを異なる値に設定する。具体的には、オブジェクト空間の設定（オブジェクト空間の種類、オブジェクト空間での光源の強弱、光源の位置、光源の配置環境等）に応じた値に、強度パラメータＳを設定する。
【００６１】
そしてピクセルシェーダ部１２４は、求められた色制御パラメータに基づいてオブジェクトのシルエット色（輪郭色）を求める。具体的には、オブジェクトの輪郭に近づくほど、色が濃くなり、オブジェクトの輪郭から遠ざかるほど（オブジェクトの中心に近づくほど）、色が薄くなるシルエット色を求める。例えばシルエット色の基準色（シルエット色の基準となる色。元の色）をＣＳとした場合に、ＣＳ×｛１−（Ｎ・Ｅ）Ｓ｝の演算を行って、シルエット色を求める。この場合にピクセルシェーダ部１２４は、基準色ＣＳを可変に設定する。例えばオブジェクト空間毎に基準色ＣＳを異なる色に設定する。具体的には、オブジェクト空間の設定に応じた色（オブジェクト空間の光源色そのもの、光源色に近い色、光源色に１対１に対応づけられた色）に、基準色ＣＳを設定する。
【００６２】
そしてピクセルシェーダ部１２４は、求められたシルエット色とオブジェクトの色を合成して、最終的なカラーを出力する。具体的には、照明モデルと光源情報に基づいて、少なくともスペキュラー演算を含むライティング処理を行って、オブジェクトの色を求める。そしてライティング処理により得られたオブジェクトの色と、シルエット色を合成する。例えばライティング処理により得られたオブジェクトの色とシルエット色を加算合成する。このライティング処理は、光源情報（ライトベクトル、光源色、明るさ、光源タイプ等）、照明モデル、法線ベクトル、オブジェクトのマテリアル・パラメータ（色、材質）などを用いて、ライティング処理部１２６が行う。また照明モデルとしては、アンビエント光とディフューズ光だけを考慮したランバードの照明モデルや、アンビエント光、ディフューズ光に加えてスペキュラ光も考慮するフォンの照明モデルやブリン・フォンの照明モデルなどがある。
【００６３】
また本実施形態では、仮想カメラとオブジェクト（キャラクタ）の距離（直線距離、奥行き距離）が近い場合には（所定距離以下の場合には）、ピクセルシェーダ部１２４が、頂点シェーダ部１２２からの頂点法線ベクトルを補間することにより得られた各ピクセルの法線ベクトルと、視線ベクトルとに基づいて、色制御パラメータを求める。そして色制御パラメータに基づきシルエット色を求める。一方、仮想カメラとオブジェクトの距離が遠い場合には（所定距離よりも大きい場合には）、頂点シェーダ部１２２が、頂点法線ベクトルと、視線ベクトルとに基づいて、色制御パラメータを求める。そして色制御パラメータに基づきシルエット色を求め、ピクセルシェーダ部１２４に出力する。
【００６４】
また本実施形態ではライティング処理部１２６が、テクスチャ記憶部１７８からフェッチした反射マップテクスチャに基づいてライティング処理を行う。具体的には反射マップテクスチャのテクセルに設定された反射情報と、照明モデル（照明モデルの演算式）と、光源情報（ライトベクトル）に基づいて、オブジェクトのライティング処理を行う。またピクセルシェーダ部１２４が含むバンプ処理部１２８が、テクスチャ記憶部１７８からフェッチした法線マップテクスチャに基づいて、オブジェクトの表面の凹凸を表すためのバンプ処理を行う。具体的には、法線マップテクスチャのテクセルに設定された法線ベクトルの情報に基づいて、ライティング処理領域においてバンプ処理を行い、オブジェクトの表面にあたかも凹凸があるかのように見える、シェーディング処理を施す。なおライティング処理部１２６やバンプ処理部１２８をピクセルシェーダ部１２４に含ませない変形実施も可能である。
【００６５】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００６６】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００６７】
２．本実施形態の手法
２．１  頂点シェーダ、ピクセルシェーダ
図２（Ａ）に頂点シェーダ部１２２、ピクセルシェーダ部１２４の詳細な構成例を示す。頂点シェーダ部１２２（頂点処理部）の機能は、例えばベクトル演算ユニットなどのハードウェアと、図２（Ｂ）に示すような頂点シェーダプログラム（頂点処理プログラム）により実現できる。この頂点シェーダプログラムには頂点毎の処理を行うための変数、関数等が記述されている。またピクセルシェーダ部１２４（ピクセル処理部）の機能も、例えばベクトル演算ユニットなどのハードウェアと、図２（Ｂ）に示すようなピクセルシェーダプログラム（ピクセル処理プログラム）により実現できる。このピクセルシェーダプログラムにはピクセル毎の処理を行うための変数、関数等が記述されている。
【００６８】
図２（Ａ）では頂点シェーダ部１２２は、座標変換部１０と出力部１２を含む。ここで座標変換部１０は種々の座標系への座標変換を行う。具体的には例えば、頂点座標、視線ベクトル、ライトベクトル、頂点法線ベクトル、第１、第２の従法線ベクトル（接ベクトル）を、例えばローカル座標系から例えばワールド座標系に座標変換する。なおこれらのベクトル等の一部のみをワールド座標系に座標変換してもよいし、頂点座標系に座標変換してもよい。出力部１２は、変換後の頂点座標、視線ベクトル、ライトベクトル、頂点法線ベクトル等を出力レジスタに格納してピクセルシェーダ部１２４に渡す。
【００６９】
ラスタライズ処理部１２３はラスタライズ（走査線変換）処理を行う。具体的にはラスタライズ処理部１２３には、頂点シェーダ部１２２から加工済みの頂点データが入力される。そしてラスタライズ処理部１２３は、加工済みの頂点データに基づいて、ポリゴンを構成するピクセルの生成処理を行う。この場合に例えば、頂点データに含まれる頂点座標、各種ベクトル（頂点法線ベクトル等）、頂点色、頂点テクスチャ座標等の補間処理（線形補間等）が行われ、ピクセル座標や、ピクセルでの各種ベクトルや、ピクセル色や、ピクセルでのテクスチャ座標等が求められる。
【００７０】
ピクセルシェーダ部１２４はテクスチャフェッチ部２０（テクスチャマッピング部）とピクセル加工処理部２２を含む。テクスチャフェッチ部２０は、テクスチャのフェッチ処理（マッピング、サンプリング処理）を行う。具体的には、ピクセルのテクスチャ座標等を用いてテクスチャ記憶部１７８からテクスチャのデータを読み出す。
【００７１】
ピクセル加工処理部２２は、ピクセルデータに対する種々の加工処理を行う。そしてこの加工処理により、ピクセル（フラグメント）の色が決定される。そして加工処理（ピクセルシェーダ）の後に、例えばシザーテスト、アルファテスティング、深度テスト又はステンシルテストなどを実行して、そのピクセル（フラグメント）が表示されるのか否かを最終的に決定する。なおそのピクセルが表示されることが決まった後に、更にピクセルデータの加工処理（フォグ、半透明合成、アンチエイリアス）が行われて、加工処理後のピクセルデータがフレームバッファに書き込まれることになる。
【００７２】
２．２  シルエット色
本実施形態ではオブジェクト（キャラクタ、パーツオブジェクト）のシルエット色（輪郭色）を表現するために、以下のような手法を採用している。
【００７３】
例えば図３（Ａ）において、ＮＶ１、ＮＶ２、ＮＶ３は、オブジェクトＯＢを構成する各頂点に設定される頂点法線ベクトルである。またＥは仮想カメラＶＣ（視点ＶＰ）の視線ベクトル（eye vector）である。
【００７４】
本実施形態では図３（Ｂ）に示すように、頂点シェーダ部１２２が頂点法線ベクトルＮＶ１、ＮＶ２、ＮＶ３・・・を出力レジスタに格納して、ピクセルシェーダ部１２４に出力する。そしてピクセルシェーダ部１２４が、頂点シェーダ部１２２からの頂点法線ベクトルＮＶ１、ＮＶ２、ＮＶ３・・・を補間することで得られる各ピクセルの法線ベクトルＮと、視線ベクトルＥに基づいて、色制御パラメータＰＣを求める。ここで色制御パラメータは例えばＰＣ＝１−（Ｎ・Ｅ）Ｓと表すことができる。即ち各ピクセルの法線ベクトルＮと視線ベクトルＥの内積のべき乗を演算することで得られる。従って、仮想カメラＶＣ（視点）から見てオブジェクトＯＢの輪郭での法線ベクトルについて色制御パラメータＰＣを求めると、法線ベクトルＮと視線ベクトルＥのなす角度が９０度になるため、Ｎ・Ｅ＝０になり、ＰＣ＝１−（Ｎ・Ｅ）Ｓ＝１になる。一方、オブジェクトＯＢの中心付近での法線ベクトルについて色制御パラメータＰＣを求めると、法線ベクトルＮと視線ベクトルＥのなす角度が０度になるため、Ｎ・Ｅ＝１になり、ＰＣ＝１−（Ｎ・Ｅ）Ｓ＝０になる。
【００７５】
ピクセルシェーダ部１２４は、このようにして求められた色制御パラメータＰＣに基づきシルエット色ＳＣを求める。この場合、シルエット色の基準色をＣＳとすると、シルエット色ＳＣは例えばＳＣ＝ＣＳ×ＰＣ＝ＣＳ×｛１−（Ｎ・Ｅ）Ｓ｝と表すことができる。このようにして求められたシルエット色ＳＣは、オブジェクトＯＢの輪郭に近づくほど色が濃くなり、オブジェクトＯＢの輪郭から遠ざかるほど色が薄くなる色になる。即ちオブジェクトＯＢの輪郭では、ＰＣ＝１になるため、ＳＣ＝ＣＳとなり、シルエット色は最も濃い色になる。一方、オブジェクトＯＢの中心付近では、ＰＣ＝０になるため、ＳＣ＝０となり、シルエット色は最も薄い色になる。
【００７６】
図４、図５、図６に本実施形態により生成される画像の例を示す。図４、図５、図６はキャラクタの顔（頭）のオブジェクトの画像例である。
【００７７】
図４は、シルエット色のエフェクト処理を施していない場合の画像例である。図４ではオブジェクトの輪郭付近（シルエット）の色は、オブジェクトの肌の色と同じになる。また図４ではオブジェクトの輪郭のギザギザが目立っており、ポリゴンで作られたことが一見してわかる人工的な画像になっている。
【００７８】
図５、図６はシルエット色のエフェクト処理を施した場合の画像例である。図５は、強度パラメータＳが小さい場合の画像例である。図５では、オブジェクトの輪郭の近くの狭い限定された領域において、シルエット色（例えば白、或いは青っぽい白）の影響が大きくなっている。即ち輪郭はそれほどぼけておらず、比較的シャープな輪郭になっている。一方、オブジェクトの中心付近では、シルエット色の影響がほとんど無くなっており、肌の色と同じになっている。
【００７９】
図６は強度パラメータＳが大きい場合の画像例である。図６では、オブジェクトの輪郭から広い領域にわたって、シルエット色の影響が大きくなっている。即ち、輪郭を含む広い範囲にわたって、オブジェクトの色（肌の色）とシルエット色が合成されて、ぼけた画像になっている。一方、オブジェクトの中心付近では、シルエット色の影響はほとんど無くなっている。
【００８０】
例えば図７のゲーム画像では、オブジェクトであるサッカーのキャラクタ（選手）がスタジアムのフィールド（オブジェクト空間）に立っている。そしてキャラクタの背後には、スタジアムの照明３０が配置されている。このようなゲーム画像において、リアルなキャラクタ画像を生成するためには、キャラクタの背後に、照明３０に対応する光源を配置して、この背後の光源によるシルエット色のエフェクト処理（グレア効果）をキャラクタの輪郭に施すことが望ましい。
【００８１】
しかしながら、このような光源をキャラクタの背後に配置すると、光源の数が増えてしまい、処理負荷が重くなる。一方、シルエット色のエフェクト処理を実現するために、擬似的なグレア効果を施す手法もあるが、リアルな画像の生成が難しい。
【００８２】
これに対して本実施形態では、オブジェクトの法線ベクトルＮと視線ベクトルＥに基づき色制御パラメータＰＣを演算し、色制御パラメータＰＣに基づきシルエット色を求めてオブジェクトの色に合成している。従って、図５、図６に示すようなリアルなシルエット色効果を実現できる。即ち、キャラクタの背後に光源を配置しなくても、キャラクタの背後の光源からの光が、あたかもキャラクタの手前側に回り込んでいるかのように見えるシルエット効果（グレア表現）を実現できる。この場合、例えば背後の光源（スタジアムの照明）が青白い光源であると想定される場合には、シルエット色の基準色ＣＳを青白い色に設定することで、青白い光源からの光の回り込みを表現できる。同様に背後の光源が赤っぽい光源であると想定される場合には、シルエット色の基準色ＣＳを赤っぽい色に設定することで、赤っぽい光源からの光の回り込みを表現できる。
【００８３】
またシルエット色のエフェクト処理が施されていない図４の画像では、オブジェクトの輪郭におけるポリゴンのギザギザが目立ってしまい、いわゆるポリゴン画像と呼ばれる人工的な画像が生成されてしまう。これに対して図５、図６のようにシルエット色のエフェクト処理を施すと、オブジェクトの輪郭がぼけた画像になるため、輪郭のギザギザが目立たなくなり、人工的な画像に見えないリアルで自然な画像を生成できる。
【００８４】
また本実施形態の手法によれば、オブジェクトの中心付近の色は、ライティング処理により得られたオブジェクト色になり、シルエット色の影響はほとんど受けなくなる。従って、シルエット色の影響がオブジェクトの中心付近にまで及んで不自然な画像が生成されてしまう事態を防止できる。
【００８５】
また本実施形態の比較例となる手法として、シルエット色のエフェクト処理を頂点シェーダ部１２２により実現する手法も考えられる。例えば頂点シェーダ部１２２が、頂点法線ベクトルと視線ベクトルに基づき色制御パラメータを求め、色制御パラメータに基づきシルエット色を求める。シルエット色のエフェクト処理では、オブジェクトの頂点法線ベクトルが使用されるため、この意味においては、頂点シェーダ部１２２がシルエット色を求める手法も合理的に思える。
【００８６】
しかしながら、頂点シェーダ部１２２がシルエット色を求めると、ラスタライズ処理においては、頂点法線ベクトルではなく、頂点シェーダ部１２２により求められたシルエット色が補間されてしまう。従ってシルエット色の正確なエフェクト処理を実現できない。
【００８７】
これに対して本実施形態では、頂点シェーダ部１２２は、シルエット色ではなく頂点法線ベクトルを出力する。従って、ラスタライズ処理においては、シルエット色ではなく頂点法線ベクトルが補間されて、各ピクセルの法線ベクトルＮが求められる。そしてピクセルシェーダ部１２４は、各ピクセルの法線ベクトルＮと、視線ベクトルＥに基づき色制御パラメータＰＣ＝１−（Ｎ・Ｅ）Ｓを求め、シルエット色ＳＣ＝ＣＳ×｛１−（Ｎ・Ｅ）Ｓ｝を求める。従って、補間された正確な各ピクセルの法線ベクトルに基づきシルエット色が求められるため、正確なシルエット色を得ることができ、生成される画像の品質を向上できる。特にオブジェクトの輪郭付近では、法線ベクトルの方向の変化が激しいため、正確な法線ベクトルに基づきシルエット色を求める本実施形態の手法は有効である。
【００８８】
２．３  強度パラメータ、基準色の設定
本実施形態ではシルエット色の強度パラメータＳや基準色ＣＳを可変に設定している。即ちピクセルシェーダ部１２４は、これらの強度パラメータＳ、基準色ＣＳを可変のパラメータとして取り扱っている。そしてオブジェクトが配置されるオブジェクト空間の設定（光源設定）に応じた値に、強度パラメータＳを設定する。またオブジェクト空間の設定に対応した色に、基準色ＣＳを設定する。
【００８９】
例えば図８（Ａ）（Ｂ）に本実施形態で使用されるテーブルデータの例を示す。図８（Ａ）は、キャラクタ（オブジェクト）が移動するスタジアム及び時間帯と、強度パラメータＳとを対応づけるテーブルデータである。図８（Ａ）に示すように本実施形態では、スタジアム毎に、強度パラメータＳが異なる値に設定される。また時間帯毎に、強度パラメータＳが異なる値に設定される。即ちオブジェクト空間の設定（スタジアムの種類、時間帯等）に応じた値に、強度パラメータＳが設定される。例えば明るいスタジアムや明るい時間帯では、強度パラメータＳの値を小さくし、暗いスタジアムや暗い時間帯では、強度パラメータＳの値を大きくする。このようにすれば、スタジアムが暗くなるほど、或いは暗い時間帯になるほど、オブジェクトの輪郭のシルエット色が目立つようになる演出効果を実現できる。
【００９０】
図８（Ｂ）は、キャラクタ（オブジェクト）が移動するスタジアムと、シルエット色の基準色ＣＳとを対応づけるテーブルデータである。図８（Ｂ）に示すように本実施形態では、スタジアム毎に、基準色ＣＳが異なる色に設定される。即ちオブジェクト空間の設定（スタジアムの種類）に応じた色に、基準色ＣＳが設定される。例えば照明の色が青っぽいスタジアムでは、シルエット色の基準色ＣＳを青白い色に設定する。また照明の色が赤っぽいスタジアムでは、シルエット色の基準色ＣＳを赤っぽい色に設定する。このようにすれば、スタジアムの照明に応じて、オブジェクトのシルエット色が異なる色になり、演出効果を高めることができる。
【００９１】
なお、強度パラメータＳ、基準色ＣＳを設定するパラメータは、スタジアムの種類や時間帯のパラメータに限定されず、例えばキャラクタのステータスパラメータなどの種々のパラメータを採用できる。
【００９２】
２．４  距離による処理の振り分け
本実施形態では、仮想カメラとオブジェクトとの距離に応じて、シルエット色のエフェクト処理を頂点シェーダ部１２２とピクセルシェーダ部１２４に振り分けている。
【００９３】
例えば図９（Ａ）に示すように仮想カメラＶＣとオブジェクト（キャラクタ）ＯＢの距離が近い場合（距離が所定距離以下の場合）には、ピクセルシェーダ部１２４が、各ピクセルの法線ベクトルと、視線ベクトルとに基づいて、色制御パラメータを求めて、シルエット色を求める。即ち図９（Ａ）のＥ１に示すように、ピクセルシェーダ部１２４の処理を実現するピクセルシェーダプログラムの中に、色制御パラメータＰＣ＝１−（Ｎ・Ｅ）Ｓを求める関数を記述する。
【００９４】
一方、図９（Ｂ）に示すように仮想カメラＶＣとオブジェクトＯＢの距離が遠い場合（距離が所定距離よりも長い場合）には、頂点シェーダ部１２２が、頂点法線ベクトルと、視線ベクトルとに基づいて、色制御パラメータを求めて、シルエット色を求める。即ち図９（Ｂ）のＥ２に示すように、頂点シェーダ部１２２の処理を実現する頂点シェーダプログラムの中に、色制御パラメータＰＣ＝１−（ＮＶ・Ｅ）Ｓを求める関数を記述する。
【００９５】
即ち、頂点シェーダ部１２２が色制御パラメータやシルエット色を求める処理を行うと、頂点シェーダ部１２２により求められたシルエット色が補間されるようなるため、正確なシルエット色を得ることができない。そして仮想カメラＶＣとオブジェクトＯＢの距離が近い場合に、得られるシルエット色が不正確になると、その不正確さが目立ってしまい、高品質な画像をプレーヤに提供できなくなる。
【００９６】
そこで、図９（Ａ）では、仮想カメラＶＣとオブジェクトＯＢの距離が近い場合には、ピクセルシェーダ部１２４が色制御パラメータやシルエット色を求める処理を行っている。これにより、高品質な画像をプレーヤに提供できる。
【００９７】
一方、ピクセルシェーダ部１２４が色制御パラメータやシルエット色を求める処理を行うと、ピクセル毎にこれらの処理が行われるようになるため、処理負荷が増加する。また仮想カメラＶＣとオブジェクトＯＢの距離が近い場合には、シルエット色が不正確であっても、それほど目立たない。
【００９８】
そこで、図９（Ｂ）では、仮想カメラＶＣとオブジェクトＯＢの距離が遠い場合には、頂点シェーダ部１２２が色制御パラメータやシルエット色を求める。このようにすれば、色制御パラメータやシルエット色を求める処理は、ピクセル毎ではなく頂点毎に行われるようになるため、全体としての処理負荷を軽減できる。これにより、生成される画像の品質の維持と処理の効率化を両立できる。
【００９９】
２．５  展開図方式のテクスチャによるライティング処理
図１０（Ａ）に、キャラクタを構成する第１のパーツオブジェクトＰＯＢ（広義にはオブジェクト）の例を示す。実際のキャラクタのパーツオブジェクトは、多数のポリゴンにより複雑に形成されているが、図１０（Ａ）では説明を簡素化するために、パーツオブジェクトＰＯＢが６角柱である場合の例を示している。
【０１００】
本実施形態ではキャラクタは、立体形状の複数のパーツオブジェクト（部位オブジェクト）により構成される。具体的には、キャラクタの右腕、左腕、頭（顔）、右足、左足、武器、又は胴等を表すパーツオブジェクトにより構成される。そしてこれらのパーツオブジェクトに対して、各パーツオブジェクトの展開図に対応したカラーマップテクスチャ、反射マップテクスチャ、法線マップテクスチャが用意されて、各パーツオブジェクトにマッピングされる。
【０１０１】
例えば図１０（Ｂ）（Ｃ）に、図１０（Ａ）の６角柱のパーツオブジェクトＰＯＢにマッピングされる展開図方式のカラーマップテクスチャ、反射マップテクスチャの例を示す。図１０（Ｂ）のカラーマップテクスチャは、パーツオブジェクトＰＯＢ（オブジェクト）の展開図に対応した色パターンを有し、パーツオブジェクトＰＯＢの表面の色がテクセルに設定されるテクスチャである。また図１０（Ｃ）の反射マップテクスチャは、パーツオブジェクトＰＯＢの展開図に対応した反射情報パターンを有し、パーツオブジェクトＰＯＢ（オブジェクト）にマッピングすべき反射情報がテクセルに設定されるテクスチャである。本実施形態ではライティング処理部１２６が、反射マップテクスチャのテクセルに設定された反射情報と照明モデルと光源情報に基づいて、パーツオブジェクトＰＯＢのライティング処理を行う。
【０１０２】
例えば本実施形態ではキャラクタ（パーツオブジェクト）の肌（広義には表面）に付着する汗（広義には液体、水分）の画像表現を以下の手法により実現している。なお以下では、本実施形態の手法を、キャラクタの表面に付着する液体の光の反射に適用した場合を例にとり説明するが、本実施形態の手法はこれに限定されず、液体以外の物体による光の反射にも適用できる。例えばキャラクタが着る服による光の反射や、キャラクタが身につける装飾品による光の反射や、キャラクタが所持する武器（例えば剣、銃）の表面での光の反射にも、本実施形態の手法は適用できる。また以下では、キャラクタに付着する液体が汗である場合を例にとり説明するが、本実施形態の液体は汗に限定されない。例えば雨のしずくや、キャラクタの目から流れる涙等であってもよい。或いは海から出現する半漁人等のモンスターの表面に付着する液体等であってもよい。
【０１０３】
本実施形態ではキャラクタの汗を表現するために、図１１（Ａ）に模式的に示される反射マップテクスチャをテクスチャ記憶部１７８に記憶する。この反射マップテクスチャでは、そのテクセルに、汗の光沢（テカリ）を表現するための反射情報が設定される。この反射情報としては、汗での光の反射率や、汗での反射光の光沢色（光源色）などが考えられる。この反射情報は、液体により光が反射する領域と反射しない領域を区別するためのマスク情報としても機能することができる。
【０１０４】
例えば図１１（Ａ）では、キャラクタの肌（表面）のうち汗（液体）が付着する領域として設定される汗付着領域（広義にはライティング処理領域）に対応する反射マップテクスチャのテクセル（テクセル領域）において、反射率Ｋｓが例えば１．０（最大値）に設定される。これにより、キャラクタの汗付着領域には反射率Ｋｓ＝１．０の反射マップテクスチャがマッピングされるようになる。一方、汗付着領域（ライティング処理領域）以外の領域に対応するテクセルでは、ライティング処理のスペキュラ演算を無効にする第１の値である例えば０．０（最小値）に、反射率Ｋｓが設定される。これにより、この領域には反射率Ｋｓ＝０．０の反射マップテクスチャがマッピングされるようになる。そしてこのように反射率Ｋｓ（反射情報）が０．０（第１の値）に設定されると、ライティング処理部１２６によるスペキュラ演算が無効にされて、スペキュラ値が０になる。なお図１１（Ａ）では、反射マップテクスチャのテクセルに設定される反射率Ｋｓが０．０と１．０である場合を示しているが、これの中間の値をテクセルに設定してもよい。例えば反射率Ｋｓ＝１．０である領域からＫｓ＝０．０である領域に向かって、反射率Ｋｓが徐々に減少するようなグラディエーション設定を行ってもよい。
【０１０５】
さて、現実世界での照光現象をシミュレートするための数学的モデルとして、この種の画像生成システムでは種々の照明モデルが用いられている。図１１（Ｂ）に、光源が平行光である場合の照明モデルの例を示す。このブリン・フォンの照明モデル（鏡面反射モデル）は例えば下式（１）で表すことができる。
【０１０６】
Ｉ＝Ｋｓ×（Ｎ・Ｈ）Ｐ×Ｉｓ＋Ｋｄ×（Ｎ・Ｌ）×Ｉｄ＋Ｋａ×Ｉａ    （１）
ここでＫｓ、Ｋｄ、Ｋａは、各々、スペキュラ光、ディフューズ光、アンビエント光についての反射率（反射係数）であり、Ｉｓ、Ｉｄ、Ｉａは、スペキュラ光、ディフューズ光、アンビエント光の強度（輝度、色）である。Ｎはオブジェクトの法線ベクトルであり、Ｌは光源ＬＳのライトベクトルであり、Ｈはハーフベクトルであり、Ｐは鏡面反射指数（ハイライト特性係数）である。またハーフベクトルＨは、Ｈ＝（Ｅ＋Ｌ）／｜Ｅ＋Ｌ｜と表すことができる。
【０１０７】
このブリン・フォンの照明モデルでは、スペキュラ光の強さは法線ベクトルＮとハーフベクトルＨの内積のべき乗で表される。従って、法線ベクトルＮとハーフベクトルＨの向きが近くなる場所ほど、スペキュラ光が強くなる。また鏡面反射指数Ｐが例えば１０以下というように小さい場合には、広い範囲にわたって鏡面反射のハイライトが広がり、鏡面反射指数Ｐが例えば１００ぐらいに大きい場合には、ハイライトが小さな点になる。
【０１０８】
本実施形態の照明モデルは下式（２）で表されるようなフォンの照明モデルであってもよい。
【０１０９】
Ｉ＝Ｋｓ×（Ｌ・Ｒ）Ｐ×Ｉｓ＋Ｋｄ×（Ｎ・Ｌ）×Ｉｄ＋Ｋａ×Ｉａ    （２）
ここでＲは反射ベクトルであり、Ｒ＝−Ｅ＋２（Ｎ・Ｅ）Ｎの式により求めることができる。このフォンの照明モデルでは、スペキュラ光の強さはライトベクトルＬと反射ベクトルＲの内積のべき乗で表される。従って、ライトベクトルＬと反射ベクトルＲの向きが近くなる場所ほど、スペキュラ光が強くなる。
【０１１０】
なお本実施形態の照明モデルは上式（１）（２）の照明モデルに限定されない。例えば上式（１）（２）の照明モデルに対して明るさ補正等を行ってもよいし、上式（１）（２）とは異なる式で表される照明モデルを用いてもよい。
【０１１１】
そして本実施形態ではライティング処理部１２６が、図１１（Ａ）の反射マップテクスチャの反射情報と、図１１（Ｂ）の照明モデルと、光源情報に基づいて、キャラクタの表面のライティング処理を行っている。具体的には汗付着領域において汗の光の反射を表すためのライティング処理を行っている。
【０１１２】
例えば比較例の手法として、キャラクタの汗付着領域に汗の色の着色処理を行うことで、汗を表現する手法が考えられる。具体的には汗付着領域に汗のカラーマップテクスチャをマッピングする。
【０１１３】
しかしながら、この比較例の手法では、視線ベクトル、ライトベクトル、キャラクタの位置・方向関係が変化しても、汗の光沢は変化せず、常に同じような汗の画像が生成されるため、リアル感に乏しい。
【０１１４】
これに対して本実施形態の手法によれば、視線ベクトル、ライトベクトル、キャラクタの位置・方向関係が変化すると、それに応じて汗での光の反射の具合が変化するようになる。例えば図１１（Ｂ）において、ハーフベクトルＨとキャラクタの法線ベクトルＮのなす角度（或いはＬとＲのなす角度）が０度に近い位置・方向関係になると、汗付着領域において汗の光が強く反射して見える画像が生成される。一方、ハーフベクトルＨと法線ベクトルＮのなす角度（或いはＬとＲのなす角度）が大きくなる位置・方向関係になると、汗付着領域における汗の光の反射が弱い画像が生成される。従って、比較例の手法に比べて、生成される画像のリアル度を格段に向上できる。
【０１１５】
例えば本実施形態をサッカーゲーム等のスポーツゲームに適用した場合を考える。この場合に、キャラクタがスタジアムのフィールド上を移動した時に、キャラクタの肌の法線ベクトルＮの方向と、スタジアムに配置された照明からのライトベクトルＬの方向と、キャラクタを追う仮想カメラの視線ベクトルＥの位置・方向関係に応じて、キャラクタの汗の光具合がリアルタイムに変化する。従って、あたかも本当の人間がサッカーをプレイしているかのような見える仮想現実感をプレーヤに与えることができる。
【０１１６】
また本実施形態では、反射マップテクスチャの反射情報である反射率Ｋｓが０．０に設定されると、その部分に光があたっても、スペキュラ演算が無効になり、光の鏡面反射が起こらないようになる。従って、鏡面反射が起きると不自然になる部分については、Ｋｓ＝０．０に設定するだけでスペキュラ演算を無効にできるようになり、キャラクタのデザインを容易化できる。
【０１１７】
２．６  展開図方式のテクスチャの詳細例
図１２、図１３、図１４に、各々、本実施形態で使用されるカラーマップテクスチャ、反射マップテクスチャ、法線マップテクスチャの詳細例を示す。これらのテクスチャは、キャラクタを構成する複数のパーツオブジェクトのうちの腕のパーツオブジェクトにマッピングされるテクスチャである。
【０１１８】
例えば図１２のカラーマップテクスチャは、腕パーツオブジェクト（第１のパーツオブジェクト）の展開図に対応した色パターン（テクスチャ色のパターン）を有する。そして腕パーツオブジェクトの表面の色がカラーマップテクスチャのテクセルに設定される。即ち閉じた図形である立体形状の腕パーツオブジェクトを、開いた図形である展開図にした場合に、この展開図に対してマッピングされるべき色パターンを有するカラーマップテクスチャを用意する。別の言い方をすれば、腕パーツオブジェクトを包み込むようにマッピングされる１枚のカラーマップテクスチャを用意する。例えば図１２のカラーマップテクスチャは、腕（広義には部位）の表の部分と裏の部分は異なる色パターンになっており、腕の下腕部分と上腕部分も異なる色パターンになっている。そしてこのように腕の各部分の色パターンが異なる展開図方式のカラーマップテクスチャを、腕パーツオブジェクトを包み込むようにマッピングする。
【０１１９】
例えば図１７（Ａ）の比較例の手法では、パーツオブジェクトＰＯＢが複数のポリゴンＰＬにより構成される。そしてこれらの複数の各ポリゴンＰＬに対して、肌の模様を表すカラーマップテクスチャＴＥＸを繰り返しマッピングすることで腕の画像を生成する。
【０１２０】
この比較例の手法では、テクスチャの使用記憶容量を節約できるという利点がある。しかしながら、腕の各部分での肌の模様が同じになるため、生成される画像が単調になる。従って、ポリゴンで作った人工的に見えるキャラクタ画像が生成されてしまい、プレーヤの仮想現実感を向上できない。
【０１２１】
これに対して図１２に示すようなカラーマップテクスチャを用いれば、腕の各部分のディテール画像をカラーマップテクスチャに描くことができる。従って、図１７（Ａ）の比較例の手法に比べて、生成される腕の画像のリアル度を格段に向上できる。そして本当の人間の肌の色を持つようなリアルなキャラクタ画像を生成でき、プレーヤの仮想現実感を向上できる。
【０１２２】
そして本実施形態では図１３に示すように、図１２のカラーマップテクスチャと同様に、反射マップテクスチャについても展開図方式のテクスチャを用いている。この図１３の反射マップテクスチャは、腕パーツオブジェクトの展開図に対応した反射情報パターン（マスクパターン）を有する。そして腕パーツオブジェクトの表面にマッピングすべき反射情報が反射マップテクスチャのテクセルに設定される。即ち、閉じた図形である腕パーツオブジェクトの展開図に対してマッピングされるべき反射情報パターンを有する反射マップテクスチャを用意する。別の言い方をすれば、腕パーツオブジェクトを包み込むようにマッピングされる１枚の反射マップテクスチャを用意する。例えば図１３の反射マップテクスチャは、腕の表の部分と裏の部分は異なる反射情報パターンになっており、腕の下腕部分と上腕部分も異なる反射情報パターンになっている。そして、このように腕の各部分の反射情報パターンが異なる展開図方式の反射マップテクスチャを、腕パーツオブジェクトを包み込むようにマッピングする。
【０１２３】
例えば図１７（Ｂ）の比較例の手法では、円の中心に近づくほど明るくなり、円の中心から遠ざかるほど暗くなる反射マップテクスチャを用意する。そしてハーフベクトルＨと法線ベクトルＬの方向が一致する場合には、円の中心付近の反射情報（反射率＝１．０）がフェッチされてマッピングされる。一方、ハーフベクトルＨと法線ベクトルＬの方向が一致しない場合には、円の輪郭付近の反射情報（反射率＝０．０）がフェッチされてマッピングされる。
【０１２４】
しかしながらこの比較例の手法では、ハーフベクトルＨと法線ベクトルＬが一致する場所にハイライトが生成されるというような単調なスペキュラ効果しか実現できない。従って、キャラクタの汗による光のスペキュラ効果を実現するのが困難となる。
【０１２５】
これに対して本実施形態では、腕パーツオブジェクトの各部分のうちライティング処理領域に対応する反射マップテクスチャのテクセル領域に対して、高い反射率の反射情報を描くだけで、ライティング処理領域での光のスペキュラ効果を実現できる。従って、反射マップテクスチャの反射情報パターンを変えるだけで、種々の反射パターンのスペキュラ効果を表現でき、リアルなキャラクタ画像を生成できる。例えば図１２のカラーマップテクスチャにおいて、筋肉の筋を表す画像パターンを描いたとする。この場合には、図１３の反射マップテクスチャにおいて、筋肉の筋を表すパターン画像に対応する領域のテクセルに対して、キャラクタの汗を表現するために、高い反射率の反射情報を書き込む。即ちカラーマップテクスチャに所与の画像パターンが描かれた場合に、反射マップテクスチャのテクセル（その画像パターンが描かれた領域に対応するテクセル）に対して、その画像パターンに対応した反射情報を書き込む。このようにすれば、キャラクタの腕の筋肉の筋に沿って例えば汗等が流れているかのように見える画像を生成できる。
【０１２６】
また本実施形態では図１４に示すように、図１２のカラーマップテクスチャや図１３の反射マップテクスチャと同様に、法線マップテクスチャについても展開図方式のテクスチャを用いている。この図１４の法線マップテクスチャは、腕パーツオブジェクトの展開図に対応した法線ベクトルパターン（マスクパターン）を有する。そして腕パーツオブジェクトの表面にマッピングすべき法線ベクトルが法線マップテクスチャのテクセルに設定される。即ち、展開図の図形に対してマッピングされるべき法線ベクトルパターンを有する法線マップテクスチャを用意する。別の言い方をすれば、腕パーツオブジェクトを包み込むようにマッピングされる１枚の法線マップテクスチャを用意する。そしてこのように腕の各部分の法線ベクトルパターンが異なる展開図方式の法線マップテクスチャを、腕パーツオブジェクトを包み込むようにマッピングする。
【０１２７】
図１５に本実施形態により生成されるキャラクタの腕の画像の例を示す。図１５では、キャラクタの腕の汗の光沢がリアルに表現されている。そして図１１（Ｂ）の法線ベクトルＮとハーフベクトルＨ（或いはＬとＲ）の方向が一致すると、汗付着領域（ライティング処理領域）での汗の光沢が増し、これらのベクトルの方向が一致しなくなると、汗付着領域での汗の光沢が減るようになる。また図１５では、キャラクタの筋肉の筋等にそって汗の光沢が表現される。また本実施形態では汗の凹凸を法線マップテクスチャを用いて表現しているため、平面的ではなく立体的に見える汗が表現される。
【０１２８】
図１６に本実施形態により生成されるキャラクタの顔（頭）の画像の例を示す。図１６では、キャラクタの顔のひたいや、目の下や、唇の上に汗付着領域（ライティング処理領域）が設定される。そして本実施形態では、ライティング処理部１２６が、これらの汗付着領域において、汗の光沢を表すためのライティング処理を行い、バンプ処理部１２８が、汗の凹凸を表すためのバンプ処理を、これらの汗付着領域において行う。こうすることで、これらの汗付着領域では、汗の光沢のみならず汗（肌）の凹凸も表現されるようになる。即ち、ライトにより光る汗が、あたかも肌（皮膚）の凹凸に沿って付着しているかのように見える画像を生成でき、本物の肌に汗が付着しているかのような印象をプレーヤに与えることができる。
【０１２９】
この点、図１７（Ｂ）の手法では、ライティング処理とバンプ処理を連動させた処理を実現できないため、図１６のような画像を生成することは難しい。これに対して本実施形態では、ライティング処理部１２６、バンプ処理部１２８がピクセルシェーダ部１２４に含まれ、これらのライティング処理部１２６、バンプ処理部１２８が、反射マップテクスチャと法線マップテクスチャを用いてピクセル単位でのライティング処理とバンプ処理を行う。従ってライティング処理とバンプ処理を連動させた処理を実現でき、図１６のような汗の光沢と汗の凹凸の両方が表現された画像を生成できる。
【０１３０】
また図１６において、例えば、目の上の隈の部分や鼻の穴の部分や顎の下の部分において、スペキュラ効果が現れると不自然な画像になる。この点、本実施形態では、これらの部分においては、Ｋｓ＝０．０に設定することで、スペキュラ演算を無効にできる。従って、光源からの光がこの部分にあたったとしても、この部分では鏡面反射が生じないようになり、より自然でリアルな画像を少ない処理負荷で生成できる。
【０１３１】
２．７  反射マップテクスチャ
図１８は反射マップテクスチャの説明図である。図１８ではテクスチャ記憶部１７８が、反射マップテクスチャのαプレーンに、反射情報として反射率（反射係数）を記憶している。そしてライティング処理部１２６は、汗付着領域（ライティング処理領域）において、αプレーンの反射率で光が鏡面反射するライティング処理を行う。一方、テクスチャ記憶部１７８は、反射マップテクスチャの色プレーンに、反射情報として汗等の光沢色（光源色）を記憶する。例えば反射マップテクスチャのＲ、Ｇ、Ｂプレーンのテクセルに、光沢色のＲ、Ｇ、Ｂデータが記憶される。そしてライティング処理部１２６は、汗付着領域において、色プレーンの光沢色で光が鏡面反射するライティング処理を行う。
【０１３２】
図１８の反射マップテクスチャによれば、αプレーンに設定される反射率を用いて、汗付着領域での光の反射の強度を制御できる。一方、Ｒ、Ｇ、Ｂの色プレーンに設定される光沢色に基づいて、汗により反射する色を制御できる。例えば黄色の肌を有するキャラクタでは、汗の光沢色を黄色に設定したり、白の肌のキャラクタでは、汗の光沢色を青みがかった色に設定するなどの制御が可能になる。これにより、更にリアルな画像を生成できる。
【０１３３】
なお図１８では、反射マップテクスチャの反射情報として光沢色を設定しているが、これらの光沢色を設定せずに、反射率のみを設定するようにしてもよい。またαプレーンに設定される反射情報は反射率そのものでもあってもよいし、反射率と等価なパラメータ（マスクパラメータ）であってもよい。また反射率をＲ、Ｇ、Ｂのいずれかの色プレーンに設定する変形実施も可能である。
【０１３４】
２．８  法線マップテクスチャ
本実施形態ではキャラクタの汗（肌）の凹凸を表すための法線マップテクスチャに基づいて、汗付着領域（ライティング処理領域）においてバンプ処理を行っている。この場合に図１９に示すように、反射マップテクスチャでは、汗付着領域において反射率Ｋｓが高い値に設定されると共に、この法線マップテクスチャにおいても、汗付着領域において凹凸を表現する法線ベクトルに設定されている。具体的には法線マップテクスチャでは、バンプ用の法線ベクトルＮＢのＸ、Ｙ、Ｚ座標（頂点座標系での座標）が、各々、テクスチャのＲ、Ｇ、Ｂプレーンに記憶される。従って、法線ベクトルＮＢが全てＺ方向を向いているような平らな面では、法線ベクトルＮＢのＸ、Ｙ座標（Ｒ、Ｇ成分）が０になり、Ｚ座標（Ｂ成分）だけが値を持つため、法線マップテクスチャの色は青になる。一方、図１９のＡ１に示すように凹凸がある面では、バンプ用の法線ベクトルＮＢのＸ、Ｙ座標が値を有するため、法線マップテクスチャの色は青とは異なる色になる。そして本実施形態では図１９のＡ２に示すように、反射率Ｋｓが高い値に設定されている汗付着領域において、法線ベクトルＮＢのＸ、Ｙ座標が値を有しており、青以外の色になっている。そしてこのような法線ベクトルＮＢを用いてシェーディングを行うことで、Ａ１に示すような汗の形状を疑似表現できる。これにより図１５、図１６に示すようなリアルな画像を生成できる。
【０１３５】
２．９  バンプ用法線ベクトルの座標変換
本実施形態では図２０（Ａ）に示すように、頂点シェーダ部１２２が、第１、第２の従法線ベクトルＴ、Ｂ等を、ワールド座標系に座標変換する。そしてピクセルシェーダ部１２４は、法線マップテクスチャにより得られた法線ベクトルＮＢを、第１、第２の従法線ベクトルＴ、Ｂに基づきワールド座標系に座標変換する。具体的にはバンプ用の法線ベクトルＮＢのＸ座標、Ｙ座標をＮＢＸ、ＮＢＹとした場合に、ＮＢＸ×Ｔ＋ＮＢＹ×Ｂの式で表される座標変換を行う。そしてバンプ処理部１２８は、座標変換後の法線ベクトルＮＢに基づいてバンプ処理を行う。
【０１３６】
例えば図２０（Ｂ）に頂点座標系（接ベクトル空間）の例を示す。この頂点座標系はオブジェクトＯＢの頂点毎に計算した従法線ベクトルＴ、Ｂを基底ベクトルとした座標系である。この頂点座標系では、全ての頂点において、法線ベクトルはＺ軸の正の方向を向く。また従法線ベクトルＴ（接ベクトル）はＸ軸に沿った方向を向き、従法線ベクトルＢはＹ軸に沿った方向を向く。
【０１３７】
法線マップテクスチャを用いたバンプ処理（バンプマップ）を行う場合には、頂点シェーダ部１２２が、視線ベクトルＥやライトベクトルＬを頂点座標系（接ベクトル空間）に座標変換するのが一般的である。このようにすれば、法線マップテクスチャの法線ベクトルＮＢのＸ、Ｙ座標をそのままテクスチャ座標Ｕ、Ｖとして使用できるからである。
【０１３８】
この点、本実施形態では頂点シェーダ部１２２が、視線ベクトルＥ、ライトベクトルＬ等を頂点座標系ではなくワールド座標系に座標変換して出力している。このようにワールド座標系を用いることで、これらのベクトルを用いた演算の精度を向上できる。
【０１３９】
しかしながら、これらのベクトルがワールド座標系のベクトルであると、法線マップテクスチャの法線ベクトルＮＢのＸ、Ｙ座標をそのままテクスチャ座標Ｕ、Ｖとして使用できないという問題がある。
【０１４０】
そこで本実施形態では図２０（Ａ）に示すように、頂点シェーダ部１２２が従法線ベクトルＴ、Ｂについてもワールド座標系に変換する。そしてピクセルシェーダ部１２４が、法線マップテクスチャの法線ベクトルＮＢを、座標変換後の従法線ベクトルＴ、Ｂに基づいて、例えばＮＢＸ×Ｔ＋ＮＢＹ×Ｂの式でワールド座標系に座標変換する。このようにすれば、図１４に示す法線マップテクスチャを、図１２、図１３のカラーマップテクスチャ、反射マップテクスチャと同様の座標系で取り扱って、キャラクタの腕パーツオブジェクトにマッピングできるようになり、処理を簡素化できる。
【０１４１】
２．１０  詳細な処理例
次に本実施形態の詳細な処理例を図２１のフローチャートを用いて説明する。
【０１４２】
まずキャラクタの移動・動作処理を行う（ステップＳ１）。具体的には、操作部１６０からの操作データやプログラムなどに基づいて、１フレームごとのキャラクタの位置の変化、方向の変化、動作（モーション）の変化が、リアルタイムに演算される。
【０１４３】
次にキャラクタと仮想カメラとの距離ＬＣを演算する（ステップＳ２）。この距離ＬＣは、キャラクタと仮想カメラの直線距離であってもよいし、奥行き距離（Ｚ方向の距離）であってもよい。そして、距離ＬＣが、所定距離ＬＴＨ以下か否かを判断する（ステップＳ３）。そして距離ＬＣが所定距離ＬＴＨ以下と判断された場合には、ステップＳ４に移行して、頂点シェーダプログラムによる頂点シェーダ処理を開始する。そしてこの頂点シェーダ処理では、頂点法線ベクトル等を出力する（ステップＳ５）。具体的には例えばローカル座標系からワールド座標系に座標変換して出力レジスタに格納し、ピクセルシェーダ部１２４に渡す。
【０１４４】
次に、ピクセルシェーダ処理を開始する（ステップＳ６）。このピクセルシェーダ処理では、図９（Ａ）で説明したように色制御パラメータＰＣ＝１−（Ｎ・Ｅ）Ｓを演算する（ステップＳ７）。具体的にはステップＳ５で頂点シェーダ部１２２が出力した頂点法線ベクトルに基づいて、各ピクセルの法線ベクトルＮが求められ、この法線ベクトルＮと視線ベクトルＥに基づき色制御パラメータＰＣが求められる。
【０１４５】
次に、色制御パラメータＰＣに基づき、シルエット色ＳＣを求める（ステップＳ８）。即ちシルエット色ＳＣのＲ、Ｇ、Ｂ成分が、各々、ＳＣ（Ｒ）＝ＰＣ×ＣＳ（Ｒ）、ＳＣ（Ｇ）＝ＰＣ×ＣＳ（Ｇ）、ＳＣ（Ｂ）＝ＰＣ×ＣＳ（Ｂ）というように求められる。なおＣＳ（Ｒ）、ＣＳ（Ｇ）、ＣＳ（Ｂ）は、各々、基準色ＣＳのＲ、Ｇ、Ｂ成分である。
【０１４６】
次に、スペキュラ色ＣＳＰ、ディフューズ色ＣＤＦ、アンビエント色ＣＡＢを、照明モデル、光源情報等に基づき求める（ステップＳ９）。そして、これらのＣＳＰ、ＣＤＦ、ＣＡＢ、ＳＣを加算合成して、最終的なカラーであるＣＯＵＴ＝ＣＳＰ＋ＣＤＦ＋ＣＡＢ＋ＳＣを求める（ステップＳ１０）。
【０１４７】
図２１のステップＳ３で、距離ＬＣが所定距離ＬＴＨよりも大きいと判断された場合には、ステップＳ１１に移行して、頂点シェーダプログラムによる頂点シェーダ処理を開始する。そしてこの頂点シェーダ処理では、図９（Ｂ）で説明したように色制御パラメータＰＣ＝１−（ＮＶ・Ｅ）Ｓを演算する（ステップＳ１２）。なおＮＶは頂点法線ベクトルである。
【０１４８】
次に、色制御パラメータＰＣに基づき、シルエット色ＳＣを求める（ステップＳ１３）。即ちＳＣ（Ｒ）＝ＰＣ×ＣＳ（Ｒ）、ＳＣ（Ｇ）＝ＰＣ×ＣＳ（Ｇ）、ＳＣ（Ｂ）＝ＰＣ×ＣＳ（Ｂ）が求められる。そして求められたシルエット色ＳＣを、出力レジスタに格納し、ピクセルシェーダ部１２４に渡す。
【０１４９】
次に、ピクセルシェーダ処理を開始する（ステップＳ１４）。このピクセルシェーダ処理では、スペキュラ色ＣＳＰ、ディフューズ色ＣＤＦ、アンビエント色ＣＡＢを、照明モデル、光源情報等に基づき求める（ステップＳ１５）。そして、求められたＣＳＰ、ＣＤＦ、ＣＡＢと、頂点シェーダ部１２２から出力されたＳＣを加算合成して、最終的なカラーであるＣＯＵＴ＝ＣＳＰ＋ＣＤＦ＋ＣＡＢ＋ＳＣを求める（ステップＳ１６）。
【０１５０】
３．ハードウェア構成
図２２に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＤＶＤ９８２（情報記憶媒体。ＣＤでもよい。）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１５１】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【０１５２】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。頂点シェーダやピクセルシェーダなどのプログラマブルシェーダが実装されている場合には、シェーダプログラムに従って、頂点データの作成・変更（更新）やピクセル（あるいはフラグメント）の描画色の決定を行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【０１５３】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【０１５４】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＤＶＤドライブ９８０（ＣＤドライブでもよい。）は、プログラム、画像データ、或いは音データなどが格納されるＤＶＤ９８２（ＣＤでもよい。）にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【０１５５】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１５６】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１５７】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語（オブジェクト、ライティング処理領域、液体等）と共に記載された用語（パーツオブジェクト、液体付着領域・汗付着領域、汗等）は、明細書または図面のいかなる箇所においても、その異なる用語に置き換えることができる。
【０１５８】
また頂点シェーダ処理、ピクセルシェーダ処理、ライティング処理、バンプ処理等も本実施形態で説明したものに限定されず、これらと均等な処理、手法も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレイヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１５９】
【図１】本実施形態の画像生成システムの機能ブロック図の例。
【図２】図２（Ａ）（Ｂ）は頂点シェーダ部、ピクセルシェーダ部の説明図。
【図３】図３（Ａ）（Ｂ）は本実施形態のシルエット色のエフェクト処理の説明図。
【図４】シルエット色のエフェクト処理を施さない画像の例。
【図５】シルエット色のエフェクト処理を施した画像の例。
【図６】シルエット色のエフェクト処理を施した画像の例。
【図７】シルエット色の説明図。
【図８】図８（Ａ）（Ｂ）はテーブルデータの例。
【図９】図９（Ａ）（Ｂ）は仮想カメラとの距離に応じて処理を振り分ける手法の説明図。
【図１０】図１０（Ａ）（Ｂ）（Ｃ）は展開図方式のテクスチャを用いる本実施形態の手法の説明図。
【図１１】図１１（Ａ）（Ｂ）は本実施形態のライティング処理の説明図。
【図１２】カラーマップテクスチャの例。
【図１３】反射マップテクスチャの例。
【図１４】法線マップテクスチャの例。
【図１５】本実施形態により生成されたキャラクタの腕の画像の例。
【図１６】本実施形態により生成されたキャラクタの顔の画像の例。
【図１７】図１７（Ａ）（Ｂ）は比較例の手法の説明図。
【図１８】反射マップテクスチャの説明図。
【図１９】法線マップテクスチャの説明図。
【図２０】図２０（Ａ）（Ｂ）はワールド座標系への座標変換処理の説明図。
【図２１】本実施形態の処理の詳細例。
【図２２】ハードウェア構成例。
【符号の説明】
【０１６０】
１０  座標変換部、１２  出力部、２０  テクスチャフェッチ部、
２２  ピクセル加工処理部、１００  処理部、１１０  オブジェクト空間設定部、
１１２  移動・動作処理部、１１４  仮想カメラ制御部、１１６  パラメータ演算部、
１１８  変化処理部、１２０  描画部、
１２２  頂点シェーダ部、１２３  ラスタライズ処理部、１２４  ピクセルシェーダ部、
１２６  ライティング処理部、１２８  バンプ処理部、１３０  音生成部、
１６０  操作部、１７０  記憶部、１７２  主記憶部、１７４  描画バッファ、
１７６  モデルデータ記憶部、１７８  テクスチャ記憶部、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、
１９４  携帯型情報記憶装置、１９６  通信部
【図１】
0004734138.tif 000002
【図２】
0004734138.tif 000003
【図３】
0004734138.tif 000004
【図７】
0004734138.tif 000005
【図８】
0004734138.tif 000006
【図９】
0004734138.tif 000007
【図１０】
0004734138.tif 000008
【図１１】
0004734138.tif 000009
【図１７】
0004734138.tif 000010
【図１８】
0004734138.tif 000011
【図１９】
0004734138.tif 000012
【図２０】
0004734138.tif 000013
【図２１】
0004734138.tif 000014
【図２２】
0004734138.tif 000015
【図４】
0004734138.tif 000016
【図５】
0004734138.tif 000017
【図６】
0004734138.tif 000018
【図１２】
0004734138.tif 000019
【図１３】
0004734138.tif 000020
【図１４】
0004734138.tif 000021
【図１５】
0004734138.tif 000022
【図１６】
0004734138.tif 000023