(57)【要約】【課題】少ない処理負荷で効果的なカラーシフトを実現できるプログラム、情報記憶媒体及び画像生成システムの提供。【解決手段】画像生成システムは、オブジェクトのライティング処理を行い、オブジェクトの少なくともスペキュラ色とディフューズ色を求めるライティング処理部と、スペキュラ中心からその周囲に向かうにつれて第１の設定色から第２の設定色に変化する第１の補間色を求める第１の色補間部と、スペキュラ中心からその周囲に向かうにつれて第１の補間色からスペキュラ色に変化する第２の補間色を求める第２の色補間部と、少なくとも第２の補間色とディフューズ色に基づいて、オブジェクトの色を求める色合成部を含む。【選択図】図４
2008077410.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトのライティング処理を行い、オブジェクトの少なくともスペキュラ色とディフューズ色を求めるライティング処理部と、
スペキュラ中心からその周囲に向かうにつれて第１の設定色から第２の設定色に変化する第１の補間色を求める第１の色補間部と、
スペキュラ中心からその周囲に向かうにつれて前記第１の補間色から前記スペキュラ色に変化する第２の補間色を求める第２の色補間部と、
少なくとも前記第２の補間色と前記ディフューズ色に基づいて、オブジェクトの色を求める色合成部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記第１の色補間部は、
前記スペキュラ色の強さに応じてその値が変化する第１の補間係数を求め、前記第１、第２の設定色を前記第１の補間係数で補間することで、前記第１の補間色を求めることを特徴とするプログラム。
【請求項３】
請求項２において、
前記第１の色補間部は、
前記スペキュラ色の強さパラメータをＳＰとした場合に、Ｒ１＝ａ×ＳＰ＋ｂの演算式により前記第１の補間係数Ｒ１を求めることを特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記第２の色補間部は、
前記スペキュラ色の強さに応じてその値が変化する第２の補間係数を求め、前記第１の補間色と前記スペキュラ色を前記第２の補間係数で補間することで、前記第２の補間色を求めることを特徴とするプログラム。
【請求項５】
請求項１乃至４のいずれかにおいて、
前記第１の色補間部は、
オブジェクト毎に異なる色に設定された前記第１、第２の設定色を補間することで、前記第１の補間色を求めることを特徴とするプログラム。
【請求項６】
請求項１乃至５のいずれかにおいて、
スペキュラ用法線摂動成分によりその向きが摂動されるスペキュラ用法線ベクトルを求めるスペキュラ用法線ベクトル取得部と、
ディフューズ用法線摂動成分によりその向きが摂動されるディフューズ用法線ベクトルを求めるディフューズ用法線ベクトル取得部として、
コンピュータを機能させ、
前記ライティング処理部は、
求められた前記スペキュラ用法線ベクトルに基づいてオブジェクトの前記スペキュラ色を求め、求められた前記ディフューズ用法線ベクトルに基づいてオブジェクトの前記ディフューズ色を求めることを特徴とするプログラム。
【請求項７】
請求項６において、
前記ライティング処理部は、
光源ベクトルと、仮想カメラの視線ベクトルと、前記スペキュラ用法線ベクトルに基づいて、オブジェクトの前記スペキュラ色を求め、前記光源ベクトルと、前記ディフューズ用法線ベクトルに基づいて、オブジェクトの前記ディフューズ色を求めることを特徴とするプログラム。
【請求項８】
請求項６又は７において、
オブジェクトの法線ベクトル情報に基づいて、オブジェクトの基本法線ベクトルを求める基本法線ベクトル取得部として、
コンピュータを機能させ、
前記スペキュラ用法線ベクトル取得部は、
前記基本法線ベクトルと前記スペキュラ用法線摂動成分に基づいて、前記スペキュラ用法線ベクトルを求め、
前記ディフューズ用法線ベクトル取得部は、
前記基本法線ベクトルと前記ディフューズ用法線摂動成分に基づいて、前記ディフューズ用法線ベクトルを求めることを特徴とするプログラム。
【請求項９】
請求項８において、
前記基本法線ベクトル取得部は、
オブジェクトの頂点に設定される頂点法線ベクトルと、オブジェクトにマッピングされる法線テクスチャに基づいて、前記基本法線ベクトルを求めることを特徴とするプログラム。
【請求項１０】
請求項６乃至９のいずれかにおいて、
基本法線摂動成分を求める基本法線摂動成分取得部として、
コンピュータを機能させ、
前記スペキュラ用法線ベクトル取得部は、
前記基本法線摂動成分に基づき前記スペキュラ用法線摂動成分を求めて、前記スペキュラ用法線ベクトルを求め、
前記ディフューズ用法線ベクトル取得部は、
前記基本法線摂動成分に基づき前記ディフューズ用法線摂動成分を求めて、前記ディフューズ用法線ベクトルを求めることを特徴とするプログラム。
【請求項１１】
請求項１０において、
前記スペキュラ用法線ベクトル取得部は、
前記基本法線摂動成分をＮＲとし、法線摂動成分の割合パラメータをβとした場合に、β×ＮＲに応じた前記スペキュラ用法線摂動成分を求めて、前記スペキュラ用法線ベクトルを求め、
前記ディフューズ用法線ベクトル取得部は、
（１−β）×ＮＲに応じた前記ディフューズ用法線摂動成分を求めて、前記ディフューズ用法線ベクトルを求めることを特徴とするプログラム。
【請求項１２】
請求項１１において、
前記スペキュラ用法線ベクトル取得部は、
法線摂動成分の強さパラメータをＣＰとした場合に、ＮＲＳ＝ＣＰ×β×ＮＲの演算式により前記スペキュラ用法線摂動成分ＮＲＳを求めて、前記スペキュラ用法線ベクトルを求め、
前記ディフューズ用法線ベクトル取得部は、
ＮＲＤ＝ＣＰ×（１−β）×ＮＲの演算式により前記ディフューズ用法線摂動成分ＮＲＤを求めて、前記ディフューズ用法線ベクトルを求めることを特徴とするプログラム。
【請求項１３】
請求項１０乃至１２のいずれかにおいて、
前記基本法線摂動成分取得部は、
テクスチャを繰り返しマッピングするリピートモードにテクスチャラッピングモードを設定して、各テクセルに摂動成分が設定された摂動成分テクスチャのテクスチャマッピングを行うことで、前記基本法線摂動成分を求めることを特徴とするプログラム。
【請求項１４】
請求項１３において、
前記基本法線摂動成分取得部は、
倍率パラメータをＰ１、Ｐ２とした場合に、Ｕ’＝Ｐ１×Ｕ、Ｖ’＝Ｐ２×Ｖの変換式によりテクスチャ座標変換を行って、前記摂動成分テクスチャのテクスチャマッピングを行うことで、前記基本法線摂動成分を求めることを特徴とするプログラム。
【請求項１５】
移動体を含む複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記オブジェクト空間内で前記移動体を移動させるための演算を行う移動体演算部と、
前記オブジェクト空間内の所与の視点から見える画像を生成するための仮想カメラの制御処理を行う仮想カメラ制御部と、
前記移動体のライティング処理を行い、前記移動体の少なくともスペキュラ色とディフューズ色を求めるライティング処理部と、
スペキュラ中心からその周囲に向かうにつれて第１の設定色から第２の設定色に変化する第１の補間色を求める第１の色補間部と、
スペキュラ中心からその周囲に向かうにつれて前記第１の補間色から前記スペキュラ色に変化する第２の補間色を求める第２の色補間部と、
少なくとも前記第２の補間色と前記ディフューズ色に基づいて、前記移動体の色を求める色合成部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項１６】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至１５のいずれかに記載のプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１７】
画像を生成する画像生成システムであって、
オブジェクトのライティング処理を行い、オブジェクトの少なくともスペキュラ色とディフューズ色を求めるライティング処理部と、
スペキュラ中心からその周囲に向かうにつれて第１の設定色から第２の設定色に変化する第１の補間色を求める第１の色補間部と、
スペキュラ中心からその周囲に向かうにつれて前記第１の補間色から前記スペキュラ色に変化する第２の補間色を求める第２の色補間部と、
少なくとも前記第２の補間色と前記ディフューズ色に基づいて、オブジェクトの色を求める色合成部とを含むことを特徴とする画像生成システム。
【請求項１８】
画像を生成する画像生成システムであって、
移動体を含む複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、
前記オブジェクト空間内で前記移動体を移動させるための演算を行う移動体演算部と、
前記オブジェクト空間内の所与の視点から見える画像を生成するための仮想カメラの制御処理を行う仮想カメラ制御部と、
前記移動体のライティング処理を行い、前記移動体の少なくともスペキュラ色とディフューズ色を求めるライティング処理部と、
スペキュラ中心からその周囲に向かうにつれて第１の設定色から第２の設定色に変化する第１の補間色を求める第１の色補間部と、
スペキュラ中心からその周囲に向かうにつれて前記第１の補間色から前記スペキュラ色に変化する第２の補間色を求める第２の色補間部と、
少なくとも前記第２の補間色と前記ディフューズ色に基づいて、前記移動体の色を求める色合成部とを含むことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、車、キャラクタ、戦闘機などの移動体のオブジェクトが配置設定されるオブジェクト空間内（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。レースゲームを楽しむことができる画像生成システムを例にとれば、プレーヤは、ゲームコントローラなどの操作部を用いて自車を操作し、他のプレーヤが操作する他車と競争することでゲームを楽しむ。
【０００３】
このようなレースゲームでは、プレーヤが操作できるレースカーとして、様々な配色のレースカーが用意される。プレーヤは、これらの用意されたレースカーの中から、自身が好む配色のレースカーを選択して、ゲームプレイを楽しむ。従って、このようなプレーヤの選択対象となるレースカーとして、例えば現実世界の車において流行しているマジョーラ（日本ペイントの登録商標）と呼ばれる玉虫色の配色が施されたレースカーについても用意することが望ましい。
【０００４】
しかしながら、このようなレースゲームの画像を生成する画像生成システムでは、一般的に、ＲＧＢのカラーモデルを使用して色を表現している。一方、玉虫色のカラーシフトでは、例えば虹の色のように光の波長に応じて色が変化する。従って、これまでの画像生成システムでは、玉虫色のようなカラーシフトを実現することが困難であるという課題があった。
【特許文献１】特開２００１−３２５６０５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、少ない処理負荷で効果的なカラーシフトを実現できるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００６】
本発明は、画像を生成する画像生成システムであって、オブジェクトのライティング処理を行い、オブジェクトの少なくともスペキュラ色とディフューズ色を求めるライティング処理部と、スペキュラ中心からその周囲に向かうにつれて第１の設定色から第２の設定色に変化する第１の補間色を求める第１の色補間部と、スペキュラ中心からその周囲に向かうにつれて前記第１の補間色から前記スペキュラ色に変化する第２の補間色を求める第２の色補間部と、少なくとも前記第２の補間色と前記ディフューズ色に基づいて、オブジェクトの色を求める色合成部とを含む画像生成システムに関係する。また本発明は、上記各部として画像生成システムを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【０００７】
本発明によれば、第１の色補間により第１の補間色が求められ、第２の色補間により第２の補間色が求められる。このようにして求められた第２の補間色は、例えば、第１の設定色から第２の設定色を経由してスペキュラ色に変化するというような色になる。そして本発明では、この第２の補間色とディフューズ色に基づいて、オブジェクトの色が求められるため、少ない処理負荷で効果的なカラーシフトを実現できる。
【０００８】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記第１の色補間部は、前記スペキュラ色の強さに応じてその値が変化する第１の補間係数を求め、前記第１、第２の設定色を前記第１の補間係数で補間することで、前記第１の補間色を求めるようにしてもよい。
【０００９】
このようにすれば、スペキュラ色の強さに応じた第１の補間係数で第１の色補間が行われるようになるため、スペキュラ中心からその周囲に向かうにつれて第１の設定色から第２の設定色に変化するカラーシフトを実現できる。
【００１０】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記第１の色補間部は、前記スペキュラ色の強さパラメータをＳＰとした場合に、Ｒ１＝ａ×ＳＰ＋ｂの演算式により前記第１の補間係数Ｒ１を求めるようにしてもよい。
【００１１】
このようにすれば、単なる線形補間では実現できない補間処理の実現が可能になる。
【００１２】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記第２の色補間部は、前記スペキュラ色の強さに応じてその値が変化する第２の補間係数を求め、前記第１の補間色と前記スペキュラ色を前記第２の補間係数で補間することで、前記第２の補間色を求めるようにしてもよい。
【００１３】
このようにすれば、スペキュラ色の強さに応じた第２の補間係数で第２の色補間が行われるようになるため、スペキュラ中心からその周囲に向かうにつれて第１の補間色から第２の補間色を経由してスペキュラ色に変化するカラーシフトを実現できる。
【００１４】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記第１の色補間部は、オブジェクト毎に異なる色に設定された前記第１、第２の設定色を補間することで、前記第１の補間色を求めるようにしてもよい。
【００１５】
このようにすれば、オブジェクト毎に異なるカラーシフトを実現でき、生成される画像の多様度を増すことができる。
【００１６】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、スペキュラ用法線摂動成分によりその向きが摂動されるスペキュラ用法線ベクトルを求めるスペキュラ用法線ベクトル取得部と、ディフューズ用法線摂動成分によりその向きが摂動されるディフューズ用法線ベクトルを求めるディフューズ用法線ベクトル取得部を含み（スペキュラ用法線ベクトル取得部とディフューズ用法線ベクトル取得部としてコンピュータを機能させ）、前記ライティング処理部は、求められた前記スペキュラ用法線ベクトルに基づいてオブジェクトの前記スペキュラ色を求め、求められた前記ディフューズ用法線ベクトルに基づいてオブジェクトの前記ディフューズ色を求めるようにしてもよい。
【００１７】
本発明では、スペキュラ用法線ベクトルとディフューズ用法線ベクトルというように、別々の法線ベクトルを用いて、スペキュラ色、ディフューズ色が求められる。従って、スペキュラ用法線ベクトルの摂動成分と、ディフューズ用法線ベクトルの摂動成分を別々に制御することが可能になるため、スペキュラやディフューズについての質感表現を向上できる。
【００１８】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記ライティング処理部は、光源ベクトルと、仮想カメラの視線ベクトルと、前記スペキュラ用法線ベクトルに基づいて、オブジェクトの前記スペキュラ色を求め、前記光源ベクトルと、前記ディフューズ用法線ベクトルに基づいて、オブジェクトの前記ディフューズ色を求めるようにしてもよい。
【００１９】
このようにすれば、照明モデルによりスペキュラ色を求める際と、照明モデルによりディフューズ色を求める際とで、異なる法線ベクトルを使用できるようになるため、ライティング処理による多様な画像表現が可能になる。
【００２０】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、オブジェクトの法線ベクトル情報に基づいて、オブジェクトの基本法線ベクトルを求める基本法線ベクトル取得部を含み（基本法線ベクトル取得部としてコンピュータを機能させ）、前記スペキュラ用法線ベクトル取得部は、前記基本法線ベクトルと前記スペキュラ用法線摂動成分に基づいて、前記スペキュラ用法線ベクトルを求め、前記ディフューズ用法線ベクトル取得部は、前記基本法線ベクトルと前記ディフューズ用法線摂動成分に基づいて、前記ディフューズ用法線ベクトルを求めるようにしてもよい。
【００２１】
このようにすれば、スペキュラ用法線ベクトル、ディフューズ用法線ベクトルに、オブジェクトの法線ベクトル情報を反映させることが可能になり、画像のリアル度を増すことができる。
【００２２】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記基本法線ベクトル取得部は、オブジェクトの頂点に設定される頂点法線ベクトルと、オブジェクトにマッピングされる法線テクスチャに基づいて、前記基本法線ベクトルを求めるようにしてもよい。
【００２３】
このようにすれば、例えばオブジェクトの法線ベクトル情報や法線テクスチャが反映された基本法線ベクトルの取得が可能になる。
【００２４】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、基本法線摂動成分を求める基本法線摂動成分取得部を含み（基本法線摂動成分取得部としてコンピュータを機能させ）、前記スペキュラ用法線ベクトル取得部は、前記基本法線摂動成分に基づき前記スペキュラ用法線摂動成分を求めて、前記スペキュラ用法線ベクトルを求め、前記ディフューズ用法線ベクトル取得部は、前記基本法線摂動成分に基づき前記ディフューズ用法線摂動成分を求めて、前記ディフューズ用法線ベクトルを求めるようにしてもよい。
【００２５】
このようにすれば、共通の基本法線摂動成分を用いて、スペキュラ用法線摂動成分とディフューズ用法線摂動成分を求めることが可能になるため、処理負荷を軽減できる。
【００２６】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記スペキュラ用法線ベクトル取得部は、前記基本法線摂動成分をＮＲとし、法線摂動成分の割合パラメータをβとした場合に、β×ＮＲに応じた前記スペキュラ用法線摂動成分を求めて、前記スペキュラ用法線ベクトルを求め、前記ディフューズ用法線ベクトル取得部は、（１−β）×ＮＲに応じた前記ディフューズ用法線摂動成分を求めて、前記ディフューズ用法線ベクトルを求めるようにしてもよい。
【００２７】
このようにすれば、１つの割合パラメータβを制御するだけで、スペキュラ用法線摂動成分とディフューズ用法線摂動成分の大小関係を連動して制御することが可能になるため、制御処理を簡素化できる
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記スペキュラ用法線ベクトル取得部は、法線摂動成分の強さパラメータをＣＰとした場合に、ＮＲＳ＝ＣＰ×β×ＮＲの演算式により前記スペキュラ用法線摂動成分ＮＲＳを求めて、前記スペキュラ用法線ベクトルを求め、前記ディフューズ用法線ベクトル取得部は、ＮＲＤ＝ＣＰ×（１−β）×ＮＲの演算式により前記ディフューズ用法線摂動成分ＮＲＤを求めて、前記ディフューズ用法線ベクトルを求めるようにしてもよい。
【００２８】
このようにすれば、１つの強さパラメータＣＰを制御するだけで、摂動の度合いを制御することが可能になるため、制御処理を簡素化できる。
【００２９】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記基本法線摂動成分取得部は、テクスチャを繰り返しマッピングするリピートモードにテクスチャラッピングモードを設定して、各テクセルに摂動成分が設定された摂動成分テクスチャのテクスチャマッピングを行うことで、前記基本法線摂動成分を求めるようにしてもよい。
【００３０】
このようにすれば、オブジェクトの接近画像を生成した場合にも、摂動成分テクスチャの十分な解像度を維持でき、質感を維持できる。
【００３１】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記基本法線摂動成分取得部は、倍率パラメータをＰ１、Ｐ２とした場合に、Ｕ’＝Ｐ１×Ｕ、Ｖ’＝Ｐ２×Ｖの変換式によりテクスチャ座標変換を行って、前記摂動成分テクスチャのテクスチャマッピングを行うことで、前記基本法線摂動成分を求めるようにしてもよい。
【００３２】
このようにすれば、倍率パラメータＰ１、Ｐ２によりテクスチャの繰り返し回数を制御できる。
【００３３】
また本発明は、画像を生成する画像生成システムであって、移動体を含む複数のオブジェクトをオブジェクト空間に設定するオブジェクト空間設定部と、前記オブジェクト空間内で前記移動体を移動させるための演算を行う移動体演算部と、前記オブジェクト空間内の所与の視点から見える画像を生成するための仮想カメラの制御処理を行う仮想カメラ制御部と、前記移動体のライティング処理を行い、前記移動体の少なくともスペキュラ色とディフューズ色を求めるライティング処理部と、スペキュラ中心からその周囲に向かうにつれて第１の設定色から第２の設定色に変化する第１の補間色を求める第１の色補間部と、スペキュラ中心からその周囲に向かうにつれて前記第１の補間色から前記スペキュラ色に変化する第２の補間色を求める第２の色補間部と、少なくとも前記第２の補間色と前記ディフューズ色に基づいて、前記移動体の色を求める色合成部とを含む画像生成システムに関係する。また本発明は、上記各部として画像生成システムを機能させるプログラム、又は該プログラムを記憶したコンピュータ読み取り可能な情報記憶媒体に関係する。
【００３４】
本発明によれば、オブジェクト空間を移動する移動体のスペキュラ色やディフューズ色が求められる。そしてこのスペキュラ色に応じた第１、第２の色補間により第１、第２の補間色が求められる。このようにして求められた第２の補間色は、例えば、第１の設定色から第２の設定色を経由してスペキュラ色に変化するというような色になる。そして本発明では、この第２の補間色とディフューズ色に基づいて、移動体の色が求められるため、少ない処理負荷で効果的なカラーシフトを実現できる。また移動体の移動に伴い、移動体の色のカラーシフトの様子もリアルタイムに変化するようになり、これまでにないリアルな画像を生成できる。
【発明を実施するための最良の形態】
【００３５】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００３６】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）のブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００３７】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、方向キー、操作ボタン、アナログスティック、レバー、ステアリング、アクセル、ブレーキ、マイク、或いはタッチパネル型ディスプレイなどにより実現できる。
【００３８】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＤＲＡＭ、ＶＲＡＭ）などにより実現できる。この記憶部１７０は、電源を切るとデータが消えてしまう揮発性のメモリにより構成できるが、補助記憶装置１９４よりも高速な記憶装置になっている。そしてゲームプログラムや、ゲームプログラムの実行に必要なゲームデータは、この記憶部１７０に保持される。
【００３９】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、ＨＤＤ（ハードディスクドライブ）、或いはメモリ（ＲＯＭ等）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータ（操作部、処理部、記憶部、出力部を備える装置）を機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００４０】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００４１】
補助記憶装置１９４（補助メモリ、２次メモリ）は、記憶部１７０の容量を補うために使用される大容量の記憶装置であり、ＳＤメモリーカード、マルチメディアカードなどのメモリーカードや、ＨＤＤなどにより実現できる。この補助記憶装置１９４は脱着自在になっているが、内蔵されるものであってもよい。この補助記憶装置１９４は、ゲームの途中結果などのセーブデータや、プレーヤ（ユーザ）の個人的画像データや音楽データなどを保存するために使用される。
【００４２】
通信部１９６は、有線や無線のネットワークを介して外部（例えば他の画像生成システム、サーバ、ホスト装置）との間で通信を行うものであり、その機能は、通信用ＡＳＩＣ又は通信用プロセッサなどのハードウェアや、通信用ファームウェアにより実現できる。
【００４３】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、サーバ（ホスト装置）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０、補助記憶装置１９４）に配信してもよい。このようなサーバ（ホスト装置）による情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００４４】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などを行う。処理部１００は記憶部１７０（主記憶部１７２）をワーク領域として各種処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＧＰＵ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００４５】
処理部１００は、ゲーム演算部１０８、オブジェクト空間設定部１１０、移動体演算部１１２、仮想カメラ制御部１１４、画像生成部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００４６】
ゲーム演算部１０８はゲーム演算処理を行う。ここでゲーム演算としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、移動体やマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。
【００４７】
オブジェクト空間設定部１１０は、モデルオブジェクト（車、戦闘機、人、ロボット、ミサイル、弾等の移動体）、マップ（地形）、建物、コース（道路）、樹木、壁などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。具体的には、記憶部１７０のモデルデータ記憶部１７６には、移動体（車、戦闘機、キャラクタ）等のモデルデータが記憶されている。そしてオブジェクト空間設定部１１０は、このモデルデータを用いてオブジェクト空間へのオブジェクトの設定（配置）処理を行う。
【００４８】
移動体演算部１１２は、移動体（移動体オブジェクト）を移動させるための演算を行う。また移動体を動作させるための演算も行う。即ち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、移動体（オブジェクト、モデルオブジェクト）をオブジェクト空間内で移動させたり、移動体を動作（モーション、アニメーション）させる処理を行う。具体的には、移動体の移動情報（位置、回転角度、速度、或いは加速度）や動作情報（パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、移動体の移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００４９】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。
【００５０】
例えば仮想カメラにより車、キャラクタ、戦闘機などの移動体を後方から撮影する場合には、移動体の位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動体演算部１１２で得られた移動体の位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【００５１】
なお本実施形態の移動体は、自プレーヤが操作する移動体であってもよいし、他のプレーヤやコンピュータが操作（制御）する移動体であってもよい。また本実施形態により生成される画像は、プレーヤのゲームプレイにより画像が変化する通常のゲーム画像であってもよいし、ゲーム中以外に表示されるリプレイ画像、オープニング画像、エンディング画像であってもよい。
【００５２】
画像生成部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずモデル（オブジェクト）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むモデルデータが入力され、入力されたモデルデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。
【００５３】
頂点処理（頂点シェーダ処理）では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。
【００５４】
ピクセル処理（ピクセルシェーダ処理）では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたモデルの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。即ち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。
【００５５】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００５６】
また画像生成部１２０は、テクスチャマッピング処理を行うことができる。ここでテクスチャマッピング処理は、テクスチャ記憶部１７８に記憶されるテクスチャ（テクセル値）をオブジェクト（ポリゴン）にマッピングする処理である。具体的には、オブジェクト（プリミティブ面）の頂点やピクセルに設定（付与）されるテクスチャ座標等を用いてテクスチャ記憶部１７８からテクスチャ（色、α値などの表面プロパティ）を読み出す。そして２次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間（テクセル補間）などを行う。
【００５７】
また画像生成部１２０は、α値に基づくαブレンディング処理（色合成処理、半透明合成処理）を行うこともできる。ここでαブレンディング処理としては、通常αブレンディング、加算αブレンディング或いは減算αブレンディングなどがある。またα値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、半透明度（透明度、不透明度と等価）情報、マスク情報、或いはバンプ情報などとして使用できる。
【００５８】
画像生成部１２０は、ライティング処理部１２１、第１の色補間部１２２、第２の色補間部１２３、色合成部１２４、スペキュラ用法線ベクトル取得部１２６、ディフューズ用法線ベクトル取得部１２７、基本法線ベクトル取得部１２８、基本法線摂動成分取得部１２９を含む。なおこれらの一部を省略する構成としてもよい。
【００５９】
ライティング処理部１２１は、照明モデル等に基づくライティング処理（シェーディング処理）を行う。具体的にはこのライティング処理は、光源情報（光源ベクトル、光源色、明るさ、光源タイプ等）、仮想カメラ（視点）の視線ベクトル、オブジェクトの法線ベクトル、オブジェクトのマテリアル（色、材質）などを用いて行われる。そして、このオブジェクト（移動体）のライティング処理により、オブジェクトの少なくともスペキュラ色とディフューズ色が求められる。
【００６０】
なお照明モデルとしては、アンビエント光とディフューズ光だけを考慮したランバードの拡散照明モデルや、アンビエント光、ディフューズ光に加えてスペキュラ光も考慮するフォンの照明モデルやブリン・フォンの照明モデルなどがある。
【００６１】
第１の色補間部１２２は、スペキュラ中心からその周囲に向かうにつれて（スペキュラ中心から放射方向に沿って）、第１の設定色から第２の設定色に変化する第１の補間色を求める処理を行う。ここでスペキュラ中心は例えばスペキュラ強度が最も強い部分である。具体的には第１の色補間部１２２は、ライティング処理部１２１により求められたスペキュラ色の強さ（明るさ、インテンシティ、パワー）に応じてその値が変化する第１の補間係数を求める。そして、第１、第２の設定色（第１、第２の基準色）を、求められた第１の補間係数で補間することで、第１の補間色を求める。例えばスペキュラ色の強さパラメータをＳＰとした場合に、ＳＰを引数とする関数Ｇ（ＳＰ）により第１の補間係数を求めることができる。例えばＲ１＝Ｇ（ＳＰ）＝ａ×ＳＰ＋ｂの演算式により第１の補間係数Ｒ１を求めることができる。
【００６２】
第２の色補間部１２３は、スペキュラ中心からその周囲に向かうにつれて（スペキュラ中心から放射方向に沿って）、第１の補間色からスペキュラ色に変化する第２の補間色を求める処理を行う。具体的には第２の色補間部１２３は、ライティング処理部１２１により求められたスペキュラ色の強さに応じてその値が変化する第２の補間係数を求める。そして、第１の色補間部１２２で求められた第１の補間色と、ライティング処理部１２１で求められたスペキュラ色を、第２の補間係数で補間することで、第２の補間色を求める。例えばスペキュラ色の強さパラメータをＳＰとした場合に、ＳＰを引数とする関数Ｈ（ＳＰ）により第２の補間係数を求めることができる。
【００６３】
色合成部１２４は、最終的な色を求めるための色合成処理を行う。例えば色合成部１２４は、少なくとも第２の補間色とディフューズ色に基づいて、オブジェクトの色を求める。具体的には、第２の補間色を補間後のスペキュラ色に設定し、このスペキュラ色と、ディフューズ色及びアンビエント色を合成して、オブジェクトの色（反射色）を求める。
【００６４】
スペキュラ用法線ベクトル取得（演算）部１２６は、スペキュラ用法線摂動成分によりその向きが摂動されるスペキュラ用法線ベクトルを求める処理を行う。このスペキュラ用法線ベクトルは、オブジェクトの反射色であるスペキュラ色を求める際に使用される法線ベクトルである。
【００６５】
ディフューズ用法線ベクトル取得（演算）部１２７は、ディフューズ用法線摂動成分によりその向きが摂動されるディフューズ用法線ベクトルを求める処理を行う。このディフューズ用法線ベクトルは、オブジェクトの反射色であるディフューズ色を求める際に使用される法線ベクトルである。
【００６６】
基本法線ベクトル取得部１２８は、オブジェクトの法線ベクトル情報（頂点法線ベクトル等）に基づいて、オブジェクトの基本法線ベクトル（オブジェクトのデフォルトの法線ベクトル。摂動前の法線ベクトル）を求める処理を行う。具体的には、例えばオブジェクトの頂点に設定される頂点法線ベクトルと、オブジェクトにマッピングされる法線テクスチャ（バンプテクスチャ）に基づいて、基本法線ベクトルを求める。
【００６７】
基本法線摂動成分取得部１２９は、スペキュラ用法線摂動成分やディフューズ用法線摂動成分を求めるための基本法線摂動成分を求める処理を行う。具体的には、テクスチャを繰り返しマッピングするリピートモード（繰り返しモード）にテクスチャラッピングモードを設定する。そして、各テクセルに摂動成分（法線ベクトルの摂動成分）が設定された摂動成分テクスチャのテクスチャマッピングを行うことで、基本法線摂動成分を求める。
【００６８】
そして本実施形態では、基本法線摂動成分取得部１２９が基本法線摂動成分を求めると、スペキュラ用法線ベクトル取得部１２６は、求められた基本法線摂動成分に基づいて、スペキュラ用法線摂動成分を求める。例えば基本法線摂動成分をＮＲとし、法線摂動成分の割合パラメータをβとした場合には、β×ＮＲに応じたスペキュラ用法線摂動成分を求める（β×ＮＲを項として含む演算式により求める）。
【００６９】
また基本法線摂動成分取得部１２９が基本法線摂動成分を求めると、ディフューズ用法線ベクトル取得部１２７は、求められた基本法線摂動成分に基づいて、ディフューズ用法線摂動成分を求める。例えば（１−β）×ＮＲに応じたディフューズ用法線摂動成分を求める（（１−β）×ＮＲを項として含む演算式により求める）。
【００７０】
また基本法線ベクトル取得部１２８が基本法線ベクトルを求めると、スペキュラ用法線ベクトル取得部１２６は、求められた基本法線ベクトルとスペキュラ用法線摂動成分に基づいて、スペキュラ用法線ベクトルを求める。またディフューズ用法線ベクトル取得部１２７は、求められた基本法線ベクトルとディフューズ用法線摂動成分に基づいて、ディフューズ用法線ベクトルを求める。
【００７１】
そしてライティング処理部１２１は、求められたスペキュラ用法線ベクトルに基づいて、オブジェクトのスペキュラ色を求め、求められたディフューズ用法線ベクトルに基づいて、オブジェクトのディフューズ色を求める。具体的には、光源ベクトルと、仮想カメラの視線ベクトルと、スペキュラ用法線ベクトルに基づいて、オブジェクトのスペキュラ色を求める。また光源ベクトルと、ディフューズ用法線ベクトルに基づいて、オブジェクトのディフューズ色を求める。
【００７２】
なおスペキュラ用法線ベクトル取得部１２６が、リピートモードにテクスチャラッピングモードを設定し、各テクセルにスペキュラ用摂動成分が設定されたスペキュラ用摂動成分テクスチャのテクスチャマッピングを行うことで、スペキュラ用法線摂動成分を求めてもよい。またディフューズ用法線ベクトル取得部１２７が、リピートモードにテクスチャラッピングモードを設定して、各テクセルにディフューズ用摂動成分が設定されたディフューズ用摂動成分テクスチャのテクスチャマッピングを行うことで、ディフューズ用法線摂動成分を求めてもよい。
【００７３】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００７４】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００７５】
２．本実施形態の手法
２．１  第１、第２の色補間処理
レースゲームなどでは、プレーヤは、選択画面に表示されたレースカーの中から、自身が好む配色のレースカーを選択し、選択されたレースカーを操作してゲームを楽しむ。従って、このような選択画面において選択できるレースカーとして、現実世界で流行しているマジョーラ（日本ペイントの登録商標）と呼ばれる玉虫色の配色が施されたレースカーを用意できれば、プレーヤの満足度を高めることができる。
【００７６】
しかしながら、図１の画像生成システムでは、ＲＧＢのカラーモデルにより色を表現して、画像を生成している。一方、玉虫色のカラーシフトでは、例えば光の波長に応じて色が変化する。即ち、いわゆる玉虫色において、見る角度や光の当たり方で色彩が変わるのは、入射角度が異なれば、車体の塗料において発生する光の波長も変化し、この波長の変化が異なった色として視覚化されるからである。従って、ＲＧＢのカラーモデルを採用する画像生成システムでは、このような玉虫色のカラーシフトを実現するのが困難であった。
【００７７】
例えば図２（Ａ）において、光源ＬＳからの光が、車などの移動体ＭＯＢ（広義にはオブジェクト）の車体（ボンネット）で反射し、その反射色が、プレーヤの視点である仮想カメラＶＣにより観測されている。なお図２（Ａ）において、Ｌは光源ベクトルであり、Ｅは仮想カメラＶＣの視線ベクトルである。
【００７８】
図２（Ａ）のように光が当たった場合に、通常の照明モデルを用いたライティング処理を行うと、図２（Ｂ）のように、スペキュラ中心ＳＣから周囲に向かってスペキュラ色Ｃｓｐからディフューズ色ＣｄｆにオブジェクトＯＢ（移動体）の色が変化する画像が生成される。
【００７９】
ところが、図２（Ｂ）の画像表現では、スペキュラ色Ｃｓｐとディフューズ色Ｃｄｆの２色の補間が行われるだけであるため、玉虫色のカラーシフトを実現することはできない。
【００８０】
例えば図３にＨＳＶのカラーモデルを示す。ＨＳＶは色相（Hue）、彩度（Saturation）、明度（Value）を意味する。色相は色の種類を表し、彩度は色の鮮やかさを表し、明度は色の明るさを表す。図３は環状のＨＳＶ色空間であり、Ｈにより、例えば赤、黄、緑、シアン、青、マジェンダというように色相が変化する。またＳにより彩度が変化し、Ｖにより明度が変化する。
【００８１】
例えば玉虫色のカラーシフトで青から赤に色を変化させる場合には、図３のように青と赤の中間色として、マジェンダを表示する必要がある。
【００８２】
しかしながら、図２（Ｂ）では、スペキュラ色Ｃｓｐとディフューズ色ＣｄｆがＲＧＢのカラーモデルにより補間されるだけであるため、図３のような青からマジェンダを経由して赤に変化するというようなカラーシフトを実現できないという課題がある。
【００８３】
このような課題を解決するために、本実施形態では以下に説明するような手法を採用している。なお以下では、オブジェクトが移動体（レースカー、車）である場合を例に取り説明するが、本実施形態はこれに限定されない。例えばオブジェクトは、車などの移動体に限定されず、例えば戦闘機、列車、ロボット等の車以外の移動体であってもよいし、移動しない静止オブジェクト等であってもよい。
【００８４】
まず、後述するように照明モデル等を用いてオブジェクトのライティング処理を行い、オブジェクトのスペキュラ色Ｃｓｐやディフューズ色Ｃｄｆを求める。
【００８５】
また玉虫色のカラーシフトを実現するための第１、第２の設定色ＣＡ、ＣＢを予め設定しておく。これらの第１、第２の設定色ＣＡ、ＣＢは、オブジェクト毎に異なる色に設定することができる。具体的には、プレーヤが選択した移動体（広義にはオブジェクト）に応じて、異なる色に設定できる。例えば第１の玉虫色が配色された第１の移動体には、第１、第２の設定色ＣＡ１、ＣＢ１が設定され、第２の玉虫色が配色された第２の移動体には、第１、第２の設定色ＣＡ２、ＣＢ２が設定される。
【００８６】
そして図４（Ａ）に示すような第１の補間処理により、ライティング処理で求められたスペキュラ色Ｃｓｐが最も強い点であるスペキュラ中心ＳＣから、その周囲に向かうにつれて、第１の設定色ＣＡから第２の設定色ＣＢに変化する第１の補間色ＣＩ１を求める。即ちスペキュラ中心ＳＣから放射方向に、設定色ＣＡからＣＢに変化する補間色ＣＩ１を求める。
【００８７】
具体的にはスペキュラ色Ｃｓｐの強さに応じてその値が変化する第１の補間係数（補間率）Ｒ１を求める。そして設定色ＣＡ、ＣＢを補間係数Ｒ１で補間することで、補間色ＣＩ１を求める。例えば線形補間を用いる場合には、下式のような演算式により補間色ＣＩ１を求めることができる。
【００８８】
ＣＩ１＝Ｒ１×ＣＡ＋（１−Ｒ１）×ＣＢ            （１）
またスペキュラ色Ｃｓｐの強さパラメータ（明るさパラメータ）ＳＰは、下式のような演算式により求めることができる。
【００８９】
ＳＰ＝Ｆ（Ｃｓｐ）＝Ｋ１×Ｒｓｐ＋Ｋ２×Ｇｓｐ＋Ｋ３×Ｂｓｐ （２）
ここで、Ｋ１、Ｋ２、Ｋ３としては、ＲＧＢ−ＹＵＶ変換においてＲＧＢ成分をＹ成分に変換する係数等を用いることができ、例えばＫ１＝０．２９９、Ｋ２＝０．５８７、Ｋ３＝０．１１４である。これによりスペキュラ色Ｃｓｐの強さ（明るさ、輝度）を抽出できる。
【００９０】
また補間係数Ｒ１は、スペキュラ色Ｃｓｐの強さパラメータＳＰを引数とする関数Ｇ（ＳＰ）を用いて、Ｒ１＝Ｇ（ＳＰ）というように表すことができる。具体的には例えば下式のような１次式の演算式により求めることができる。
【００９１】
Ｒ１＝Ｇ（ＳＰ）＝ａ×ＳＰ＋ｂ      （３）
ここで、調整パラメータをＣＶとした場合には例えば下式のような演算式を採用できる。
【００９２】
Ｒ１＝２ＣＶ×（ＳＰ−１）＋１      （４）
上式（４）では、ａ＝２ＣＶ、ｂ＝１−２ＣＶになる。
【００９３】
上式（３）、（４）のような演算式により補間係数Ｒ１を求めれば、単なる線形補間では実現できない補間処理を実現できる。例えば、補間色ＣＩ１が設定色ＣＡとＣＢの中間色（ＣＡ＋ＣＢ）／２になる位置を、ずらすことが可能になり、配色を決めるデザイナーの設計の自由度を増すことができる。
【００９４】
なお補間係数Ｒ１を求める関数は、強さパラメータＳＰの２次以上の次数の関数であってもよいし、非線形の関数であってもよい。或いは強さパラメータＳＰそのものを補間係数Ｒ１として用いることも可能である。
【００９５】
次に、図４（Ｂ）に示すような第２の補間処理により、スペキュラ中心ＳＣから、その周囲に向かうにつれて、第１の補間色ＣＩ１からスペキュラ色Ｃｓｐに変化する第２の補間色ＣＩ２を求める。即ちスペキュラ中心ＳＣから放射方向に、補間色ＣＩ１からスペキュラ色Ｃｓｐに変化する補間色ＣＩ２を求める。
【００９６】
具体的にはスペキュラ色Ｃｓｐの強さに応じてその値が変化する第２の補間係数（補間率）Ｒ２を求める。そして補間色ＣＩ１とスペキュラ色Ｃｓｐを補間係数Ｒ２で補間することで、補間色ＣＩ２を求める。例えば線形補間を用いる場合には、下式のような演算式により補間色ＣＩ２を求めることができる。
【００９７】
ＣＩ２＝Ｒ２×ＣＩ１＋（１−Ｒ２）×Ｃｓｐ      （５）
また補間係数Ｒ２は、スペキュラ色Ｃｓｐの強さパラメータＳＰを引数とする関数Ｈ（ＳＰ）を用いて、Ｒ２＝Ｈ（ＳＰ）というように表すことができる。
【００９８】
なお補間係数Ｒ２を求める関数は、強さパラメータＳＰの２次以上の次数の関数であってもよいし、非線形の関数であってもよい。或いは強さパラメータＳＰそのものを補間係数Ｒ２として用いることも可能である。
【００９９】
本実施形態では、以上のような２回の色補間を行うことで、玉虫色の擬似的なカラーシフトを実現している。即ち図５のように、スペキュラ中心ＳＣからその周囲（周辺）に向かうにつれて、設定色ＣＡから、中間色である設定色ＣＢを経由して、スペキュラ色Ｃｓｐに色が変化するカラーシフトを実現できる。
【０１００】
例えば図６（Ａ）に示すように、設定色ＣＡを青に設定し、設定色ＣＢをマジェンダに設定すれば、青から、中間色であるマジェンダを経由して、スペキュラ色Ｃｓｐである赤に色が変化するカラーシフトを実現できる。また図６（Ｂ）に示すように、設定色ＣＡを黄に設定し、設定色ＣＢを緑に設定すれば、黄から、中間色である緑を経由して、スペキュラ色Ｃｓｐであるシアンに色が変化するカラーシフトを実現できる。従って、図３のＨＳＶのカラーモデルにおける色相の変化と同様のカラーシフトを実現できるようになる。
【０１０１】
例えば図７に本実施形態により生成された画像の例を示す。図７は、図２（Ａ）の移動体ＭＯＢの車体の画像の例である。図７では、スペキュラ中心から周囲に向かって、青からマジェンダを経由して赤に車体の色が変化している。この図７のような画像を生成できれば、プレーヤが選択できるレースカーとして、玉虫色の配色が施されたレースカーを用意できるようになり、プレーヤの満足度を向上できる。
【０１０２】
即ち、現実世界における玉虫色の物理現象を忠実にシミュレートして、図３のようなＨＳＶのカラーモデルにしたがったカラーシフトを実現しようとすると、プログラムが複雑化すると共に処理負荷も重くなる。
【０１０３】
これに対して本実施形態では、図４（Ａ）、図４（Ｂ）に示すような２回の色補間を行うだけで、玉虫色のカラーシフトを擬似的に表現できる。そしてこれらの２回の色補間は、上式（１）（５）のような演算だけで済むため、プログラムを簡素化でき、少ない処理負荷で玉虫色のカラーシフトを実現できる。
【０１０４】
またレースカーをデザインするデザイナーは、第１、第２の設定色ＣＡ、ＣＢや、上式（３）（４）のパラメータａ、ｂ、ＣＶを調整するだけで、様々なマジョーラ（登録商標）のカラーのレースカーをデザインできる。これにより、様々な配色のレースカーをプレーヤに提供でき、多様な趣向のプレーヤに対応できるようになる。
【０１０５】
２．２  照明モデルによるライティング処理
次に、ライティング処理によるスペキュラ色、ディフューズ色の求め方について説明する。現実世界での照光現象をシミュレートするための数学的モデルとして、この種の画像生成システムでは種々の照明モデルが用いられている。図８（Ａ）、図８（Ｂ）に、光源が平行光である場合の照明モデルの例を示す。
【０１０６】
図８（Ａ）はフォンの照明モデルを説明する図であり、この照明モデルは下式（６）のように表される。
【０１０７】
Ｉ＝Ｋｓｐ×（Ｌ・Ｒ）ｎ×Ｉｓｐ＋Ｋｄｆ×（Ｎ・Ｌ）×Ｉｄｆ＋Ｋａｍ×Ｉａｍ  （６）
ここで、Ｋｓｐ、Ｋｄｆ、Ｋａｍは、各々、スペキュラ光、ディフューズ光、アンビエント光についての反射率（物体色）であり、Ｉｓｐ、Ｉｄｆ、Ｉａｍは、スペキュラ光、ディフューズ光、アンビエント光の輝度（強さ、光源色）である。Ｎはオブジェクト（移動体）の法線ベクトルであり、Ｌは光源（平行光源）ＬＳのベクトルであり、Ｒは反射ベクトルであり、Ｒ＝−Ｅ＋２（Ｎ・Ｅ）Ｎと表すことができる。ｎは鏡面反射指数（ハイライト特性係数）である。
【０１０８】
このフォンの照明モデルでは、スペキュラ光の強さはライトベクトルＬと反射ベクトルＲの内積のべき乗で表される。従って、ライトベクトルＬと反射ベクトルＲの向きが近くなる場所ほど、スペキュラ光が強くなる。また鏡面反射指数ｎが例えば１０以下というように小さい場合には、広い範囲にわたって鏡面反射のハイライトが広がり、鏡面反射指数Ｐが例えば１００ぐらいに大きい場合には、ハイライトが小さな点になる。
【０１０９】
図８（Ｂ）はブリン・フォンの照明モデルを説明する図であり、この照明モデルは下式（７）のように表される。
【０１１０】
Ｉ＝Ｋｓｐ×（Ｎ・Ｈ）ｎ×Ｉｓｐ＋Ｋｄｆ×（Ｎ・Ｌ）×Ｉｄｆ＋Ｋａｍ×Ｉａｍ  （７）
ここで、Ｈはハーフベクトルであり、Ｈ＝（Ｅ＋Ｌ）／｜Ｅ＋Ｌ｜と表すことができる。
【０１１１】
このブリン・フォンの照明モデルでは、スペキュラ光の強さは法線ベクトルＮとハーフベクトルＨの内積のべき乗で表される。従って、法線ベクトルＮとハーフベクトルＨの向きが近くなる場所ほど、スペキュラ光が強くなる。
【０１１２】
本実施形態では、上式（６）、（７）に示すような照明モデルに基づいて、スペキュラ光による反射色であるスペキュラ色や、ディフューズ光による反射色であるディフューズ色を求める。そして求められたスペキュラ色、ディフューズ色等に基づいて、オブジェクトの最終的な色（反射色）を求める。
【０１１３】
なお本実施形態で用いる照明モデルは上式（６）（７）に限定されない。例えば上式（６）（７）と数学的にほぼ等価な照明モデルであってもよいし、上式（６）（７）の照明モデルに対して明るさ補正等を行ってもよい。或いは、上式（６）（７）とは異なる式で表される照明モデルを用いてもよい。またスペキュラ光による鏡面反射の表現は、例えば円の中心に近づくほど明るくなり、円の中心から遠ざかるほど暗くなる反射マップテクスチャを用いた反射マッピングにより実現してもよい。或いは、オブジェクト（移動体）に対して、周囲の環境を表すテクスチャをマッピングする環境マッピングにより、環境の光の映り込みを表現してもよい。この場合には、上式（６）（７）等の照明モデルにより得られた色と、環境マッピングにより得られたマッピング色を合成した色を、鏡面反射によるスペキュラ色として用いればよい。
【０１１４】
２．３  スペキュラ用法線ベクトル、ディフューズ用法線ベクトル
図９（Ａ）では、レースカーを表す移動体ＭＯＢから遠くの位置に仮想カメラＶＣが配置されて、ゲーム画像が生成されている。一方、図９（Ｂ）では、仮想カメラＶＣが移動体ＭＯＢに接近して、ゲーム画像が生成されている。
【０１１５】
図９（Ａ）の場合に、移動体ＭＯＢの表面で光がスペキュラ反射している画像を生成すれば、車体に塗られたワックス等の表現が可能になる。
【０１１６】
しかしながら、図９（Ｂ）のように仮想カメラＶＣが移動体ＭＯＢに接近した場合には、このようなスペキュラ反射の画像表現だけでは、いかにもＣＧで作られた画像のように見えてしまう。従って、車体表面の質感のディテール表現が不十分であり、生成される画像のリアル度の向上が不十分であるという課題がある。
【０１１７】
このような課題を解決するために、スペキュラ色を求めるためのスペキュラ用法線ベクトルと、ディフューズ色を求めるためのディフューズ用法線ベクトルを、別々に設ける手法を採用する。即ち、従来の手法では、１種類の法線ベクトルに基づいてオブジェクトのスペキュラ色、ディフューズ色が求められていたが、図１０（Ａ）、図１０（Ｂ）では、スペキュラ用法線ベクトルとディフューズ用法線ベクトルというように、別々の２種類の法線ベクトルの各々を用いて、スペキュラ色、ディフューズ色を求める。
【０１１８】
具体的には図１０（Ａ）、図１０（Ｂ）に示すように、スペキュラ用法線摂動成分によりその向きが摂動されるスペキュラ用法線ベクトルＮＳを取得すると共に、ディフューズ用法線摂動成分によりその向きが摂動されるディフューズ用法線ベクトルＮＤを取得する。例えば図１０（Ａ）では、スペキュラ用法線ベクトルＮＳの摂動成分は小さく、ディフューズ用法線ベクトルＮＤの摂動成分は大きい。一方、図１０（Ｂ）では、スペキュラ用法線ベクトルＮＳの摂動成分は大きく、ディフューズ用法線ベクトルＮＤの摂動成分は小さい。このように図１０（Ａ）、図１０（Ｂ）の手法によれば、スペキュラ用法線ベクトルＮＳの摂動成分の大小と、ディフューズ用法線ベクトルＮＤの摂動成分の大小を別々に制御できるため、画像のリアル度を増すことができる。
【０１１９】
例えば図１０（Ａ）のようにスペキュラ用法線ベクトルＮＳの摂動成分を小さく設定すれば、乱反射の少ないスペキュラ反射を表現できるため、車体に綺麗にムラなく塗られたワックスを表現できる。そして図１０（Ａ）のようにディフューズ用法線ベクトルＮＤの摂動成分を大きく設定すれば、車体の塗装や金属の微粒子によるディフューズ光の乱反射等を表現できる。
【０１２０】
即ち、図９（Ａ）のように仮想カメラＶＣが遠くにある場合には、スペキュラ反射でピカピカと光った質感の車体を表現できる。一方、図９（Ｂ）のように仮想カメラＶＣが接近した場合には、スペキュラ反射のワックスの下層にある塗装や金属の微粒子の乱反射の画像表現が可能になる。即ち仮想カメラＶＣが遠くにある場合には見えなかった車体の塗装や金属の粒々感が、仮想カメラＶＣが近づくにつれて見えるようになる。このため、車体表面が、あたかもスペキュラ層とディフューズ層の２層構造になっているかのように見える。従って、車体表面における内部反射をリアルに表現でき、車体表面の質感のディテール表現を大幅に向上できる。
【０１２１】
また例えば図１０（Ｂ）のようにスペキュラ用法線ベクトルＮＳの摂動成分を大きく設定すれば、車体表面のワックスのムラを表現できるようになる。またディフューズ用法線ベクトルＮＤの摂動成分を小さく設定すれば、ムラのあるワックス層の下に、滑らかで粒々感の少ない塗装や金属の層が存在するという画像表現を実現できる。
【０１２２】
図１１、図１２に本実施形態により生成された画像の例を示す。図１１は、図１０（Ａ）のようにスペキュラ用法線ベクトルＮＳの摂動成分が小さく設定され、ディフューズ用法線ベクトルＮＤの摂動成分が大きく設定されている場合の画像の例である。図１１では、ムラのないワックスの層の下に、粒々感のある塗装や金属の層が見える画像が生成されている。即ちスペキュラ光の乱反射は少なく、ディフューズ光の乱反射が大きい画像が生成されている。
【０１２３】
一方、図１２は、図１０（Ｂ）のようにスペキュラ用法線ベクトルＮＳの摂動成分が大きく設定され、ディフューズ用法線ベクトルＮＤの摂動成分が小さく設定されている場合の画像の例である。図１２では、ムラのあるワックスの層の下に、滑らかで粒々感の少ない塗装や金属の層が見える画像が生成されている。即ちスペキュラ光の乱反射が大きく、ディフューズ光の乱反射が少ない画像が生成されている。
【０１２４】
このように図１０（Ａ）、図１０（Ｂ）では、スペキュラ用法線ベクトルＮＳとディフューズ用法線ベクトルＮＤとを別々に設けて、その摂動成分を別々に制御することで、オブジェクトの表面の内部反射のディテールを表現し、従来手法では達成できなかったリアルな内部反射表現の実現に成功している。
【０１２５】
なお図１０（Ａ）、図１０（Ｂ）の手法を採用する場合には、上式（６）（７）のように照明モデルに基づきスペキュラ色、ディフューズ色を求める際に、スペキュラ用法線ベクトルとディフューズ用法線ベクトルとを使い分ける。
【０１２６】
例えば上式（６）のＫｓｐ×（Ｌ・Ｒ）ｎ×Ｉｓｐの項であるスペキュラ色において、反射ベクトルＲ＝−Ｅ＋２（Ｎ・Ｅ）Ｎを求める際には、法線ベクトルＮとしてスペキュラ用法線ベクトルＮＳを用いる。一方、上式（６）のＫｄｆ×（Ｎ・Ｌ）×Ｉｄｆの項であるディフューズ色を求める際には、法線ベクトルＮとしてディフューズ用法線ベクトルＮＤを用いる。
【０１２７】
また上式（７）のＫｓｐ×（Ｎ・Ｈ）ｎ×Ｉｓｐの項であるスペキュラ色を求める際には、法線ベクトルＮとしてスペキュラ用法線ベクトルＮＳを用いる。一方、上式（７）のＫｄｆ×（Ｎ・Ｌ）×Ｉｄｆの項であるディフューズ色を求める際には、法線ベクトルＮとしてディフューズ用法線ベクトルＮＤを用いる。このようにすることで、図１１、図１２に示すような画像の生成が可能になる。
【０１２８】
２．４  基本法線ベクトル
図１３のＡ１では、オブジェクトのデフォルトの法線ベクトルである基本法線ベクトルＮＢを、まず求めている。この基本法線ベクトルＮＢはオブジェクトの法線ベクトル情報に基づいて求めることができる。
【０１２９】
そして図１３のＡ２、Ａ３では、このようにして求められた基本法線ベクトルＮＢに基づいて、スペキュラ用法線ベクトルＮＳとディフューズ用法線ベクトルＮＤを求める。具体的には、基本法線ベクトルＮＢとスペキュラ用法線摂動成分に基づいて、スペキュラ用法線ベクトルＮＳを求める。また基本法線ベクトルＮＢとディフューズ用法線摂動成分に基づいて、ディフューズ用法線ベクトルＮＤを求める。
【０１３０】
このようにすれば、オブジェクトの形状や表面の凹凸を表す基本法線ベクトルＮＢに基づいて、スペキュラ用法線ベクトルＮＳとディフューズ用法線ベクトルＮＤを求めることができる。従って、スペキュラ用法線ベクトルＮＳとディフューズ用法線ベクトルＮＤは、オブジェクトの形状や表面の凹凸に応じたベクトルになり、摂動成分だけが基本法線ベクトルＮＢとは異なるベクトルになる。即ち、スペキュラ用法線ベクトルＮＳとディフューズ用法線ベクトルＮＤは、その方向が、オブジェクトの形状や表面の凹凸に応じた方向に、ある程度向くベクトルになり、その摂動の度合いだけが図１０（Ａ）、図１０（Ｂ）のように互いに異なるベクトルになる。
【０１３１】
このようにすれば、スペキュラ用法線ベクトルＮＳ、ディフューズ用法線ベクトルＮＤに、オブジェクトの形状や凹凸を反映させることが可能になり、画像のリアル度を増すことができる。なお、スペキュラ用法線ベクトルを求める際に使用する基本法線ベクトルと、ディフューズ用法線ベクトルを求める際に使用する基本法線ベクトルとを、異なるベクトルにする変形実施も可能である。
【０１３２】
次に図１４（Ａ）、図１４（Ｂ）に基づいて、基本法線ベクトルＮＢの具体的な取得手法について説明する。例えば図１４（Ａ）では、オブジェクトＯＢに対して、デカール形式の法線テクスチャがマッピングされる。この法線テクスチャ（法線マップテクスチャ）は、オブジェクトＯＢの表面の凹凸（バンプ）を表すためのテクスチャである。具体的には、この法線テクスチャは、オブジェクトＯＢの展開図に対応した法線ベクトルパターンを有し、法線ベクトルの情報が各テクセルに設定される展開図方式のテクスチャである。この展開図方式の法線テクスチャを、オブジェクトＯＢにマッピングすることで、オブジェクトＯＢの表面の凹凸を表現するバンプ処理が実現される。
【０１３３】
なお図１４（Ａ）では、説明を簡単にするために、オブジェクトＯＢが立方体である場合の例を示しているが、実際の法線テクスチャの形状は複雑な形状になる。例えばオブジェクトが車である場合には、法線テクスチャは車の展開図に対応した形状のテクスチャになる。そして法線テクスチャの各テクセルには、車の表面の凹凸を表すため法線ベクトル情報（バンプ情報）が設定される。
【０１３４】
図１４（Ｂ）に示すように、基本法線ベクトルは、オブジェクトの頂点ＶＸ１〜ＶＸ４に設定される頂点法線ベクトルＮＶ１〜ＮＶ４と、オブジェクトにマッピングされる法線テクスチャに基づいて求められる。具体的には、頂点法線ベクトルＮＶ１〜ＮＶ４を、フォンシェーディング等の手法により補間して、各ピクセルに対応する法線ベクトルを求める。そしてこのようにして求められた法線ベクトルと、法線テクスチャの各テクセルに設定されるバンプ用の法線ベクトルとに基づいて、各ピクセルにおける基本法線ベクトルを求める。この場合に、頂点法線ベクトルＮＶ１〜ＮＶ４は、オブジェクトの全体的な形状を表すベクトルであり、オブジェクトのモデルデータとして記憶される。一方、法線テクスチャに設定される法線ベクトルは、オブジェクトの表面における微少な凹凸を表すベクトルになる。従って、これらの頂点法線ベクトルと法線テクスチャの法線ベクトルとにより求められた基本法線ベクトルは、オブジェクトの形状と表面の凹凸に応じたベクトルになる。
【０１３５】
なお図１４（Ｂ）に示すように、法線テクスチャの法線ベクトルのＸ、Ｙ、Ｚ座標成分は、テクスチャのＲ、Ｇ、Ｂチャネル（Ｒ、Ｇ、Ｂプレーン）にＲ、Ｇ、Ｂデータとして設定できる。
【０１３６】
２．５  スペキュラ用法線摂動成分、ディフューズ用法線摂動成分
次に図１５（Ａ）、図１５（Ｂ）を用いて、スペキュラ用法線摂動成分、ディフューズ用法線摂動成分の具体的な取得手法について説明する。
【０１３７】
例えば図１５（Ａ）、図１５（Ｂ）では、基本法線摂動成分ＮＲがまず求められる。そして、この基本法線摂動成分ＮＲに基づきスペキュラ用法線摂動成分ＮＲＳ＝ＣＰ×β×ＮＲが求められ、スペキュラ用法線ベクトルＮＳ＝ＮＢ＋ＮＲＳ＝ＮＢ＋ＣＰ×β×ＮＲが求められる。また基本法線摂動成分ＮＲに基づきディフューズ用法線摂動成分ＮＲＤ＝ＣＰ×（１−β）×ＮＲが求められ、ディフューズ用法線ベクトルＮＤ＝ＮＢ＋ＮＲＤ＝ＮＢ＋ＣＰ×（１−β）×ＮＲが求められる。ここで、βは法線摂動成分の割合パラメータ（配分、比率パラメータ）であり、ＣＰは法線摂動成分の強さパラメータ（係数パラメータ）である。
【０１３８】
そして図１５（Ａ）では、割合パラメータβを小さな値に設定することで、スペキュラ用法線ベクトルＮＳの摂動成分が小さく設定され、ディフューズ用法線ベクトルＮＤの摂動成分が大きく設定される。これにより図１１に示すような画像を生成できる。
【０１３９】
一方、図１５（Ｂ）では、割合パラメータβを大きな値に設定することで、スペキュラ用法線ベクトルＮＳの摂動成分が大きく設定され、ディフューズ用法線ベクトルＮＤの摂動成分が小さく設定される。これにより図１２に示すような画像を生成できる。
【０１４０】
また強さパラメータＣＰを制御することで、基本法線ベクトルＮＢに対する摂動成分ＮＲＳ、ＮＲＤの割合を制御できる。例えばパラメータＣＰを大きな値に設定すれば、ＮＲＳ、ＮＲＤによる摂動の度合いが大きくなり、ＣＰを小さな値に設定すれば、ＮＲＳ、ＮＲＤによる摂動の度合いが小さくなる。
【０１４１】
図１５（Ａ）、図１５（Ｂ）の手法によれば、１つの割合パラメータβを制御するだけで、スペキュラ用法線摂動成分ＮＲＳとディフューズ用法線摂動成分ＮＲＤとの大小関係を連動して制御できる。また１つの強さパラメータＣＰを制御するだけで、摂動の度合いを制御できる。従って制御処理を簡素化できるという利点がある。また基本法線摂動成分ＮＲに対応する１つの摂動成分テクスチャを用意するだけで済むため、テクスチャの使用記憶容量も節約できるという利点がある。
【０１４２】
なおスペキュラ用法線ベクトルとディフューズ用法線ベクトルとで、異なる基本法線摂動成分を用いたり、異なる割合パラメータ、強さパラメータを用いる変形実施も可能である。例えばスペキュラ用法線摂動成分をＮＲＳ＝ＣＰ１×β１×ＮＲ１の演算式により求め、ディフューズ用法線摂動成分をＮＲＤ＝ＣＰ２×β２×ＮＲ２の演算式により求めるなどの変形実施も可能である。
【０１４３】
２．６  摂動成分テクスチャ
次に、摂動成分テクスチャを利用して法線ベクトルの摂動成分を取得する手法について説明する。
【０１４４】
テクスチャ座標Ｕ、Ｖの値域の範囲は例えば０．０≦Ｕ≦１．０、０．０≦Ｖ≦１．０になっている。この値域の範囲を超えたＵ、Ｖが指定された場合のテクスチャラッピングモードには、リピートモードやクランプモードがある。そしてテクスチャラッピングモードがリピートモードに設定された場合には、値域の範囲外の余白のテクスチャ画像を埋めるために、図１６の模式図に示すようにテクスチャの繰り返しマッピングが行われる。
【０１４５】
具体的には、倍率パラメータをＰ１、Ｐ２とした場合に、Ｕ’＝Ｐ１×Ｕ、Ｖ’＝Ｐ２×Ｖの変換式により、摂動成分テクスチャのテクスチャ座標の変換を行う。ここで、Ｐ１、Ｐ２はＰ１＞１、Ｐ２＞１となるパラメータであり、例えばＰ１＞１００、Ｐ２＞１００というような値が設定される。
【０１４６】
このようなテクスチャ座標変換を行い、テクスチャラッピングモードをリピートモードに設定する。そして、各テクセルに摂動成分が設定された摂動成分テクスチャのテクスチャマッピングを行えば、図１６に示すような摂動成分テクスチャの繰り返しマッピングを実現できる。
【０１４７】
例えば図１６の模式図では、図１４（Ａ）の展開図方式の法線テクスチャや色テクスチャに比べて、十分に小さな外形の摂動成分テクスチャが、オブジェクトに対して繰り返しマッピングされる。図１７には、このようにマッピングされる摂動成分テクスチャ（ノイズテクスチャ）の例を示す。この摂動成分テクスチャは、法線ベクトルのノイズ的な揺らぎを表現するためのテクスチャである。そして、摂動成分テクスチャのＲ、Ｇ、Ｂチャネル（Ｒ、Ｇ、Ｂプレーン）には、摂動のＸ、Ｙ、Ｚ成分がＲ、Ｇ、Ｂデータとして格納される。
【０１４８】
図１７のような摂動成分テクスチャを図１６のように繰り返しマッピングすれば、図１１に示すような車体の塗料や金属の微粒子による乱反射を表現できるようになる。
【０１４９】
即ち、このような摂動成分テクスチャとして、図１４（Ａ）に示すような展開図方式のテクスチャを用いたとする。すると、図９（Ｂ）のように仮想カメラＶＣがオブジェクトＯＢに接近した場合に、テクスチャの解像度が足りなくなり、微粒子による乱反射の表現が難しくなる。
【０１５０】
この点、図１６に示すように、外形の小さい摂動成分テクスチャを、リピートモードに設定して繰り返しマッピングする手法を採用すれば、図９（Ｂ）に示すように仮想カメラＶＣが接近した場合にも、摂動成分テクスチャの十分な解像度を維持できる。従って仮想カメラＶＣが接近した場合でも、摂動成分のランダム性を維持でき、微粒子による乱反射を表現できる。この結果、オブジェクトの表面の質感のディテール表現を、負荷の少ない処理で実現できるという利点がある。
【０１５１】
またＵ’＝Ｐ１×Ｕ、Ｖ’＝Ｐ２×Ｖの変換式における倍率パラメータＰ１、Ｐ２を、互いに異なる値に設定してテクスチャ座標変換を行えば、いわゆるヘアライン加工のような表現が可能になる。
【０１５２】
２．７  詳細な処理例
次に本実施形態の詳細な処理例を図１８、図１９のフローチャートを用いて説明する。
【０１５３】
まず、移動体を含む複数のオブジェクトをオブジェクト空間に配置設定するオブジェクト空間設定処理を行う（ステップＳ１）。次に、車等の移動体をオブジェクト空間内で移動させる移動体演算処理を行う（ステップＳ２）。具体的には、操作部１６０からの操作データやプログラムなどに基づいて、１フレームごとの移動体の位置の変化、方向の変化、動作の変化が、リアルタイムに演算される。
【０１５４】
次に頂点シェーダプログラムによる頂点シェーダ処理を行う（ステップＳ３）。この頂点シェーダ処理により得られた頂点座標、視線ベクトル、光源ベクトル、法線ベクトル等は、出力レジスタに格納され、ピクセルシェーダ処理に渡される。
【０１５５】
次に、ピクセルシェーダプログラムによるピクセルシェーダ処理を開始する（ステップＳ４）。このピクセルシェーダ処理によりステップＳ５〜Ｓ１３の処理が行われる。
【０１５６】
具体的には、まず、図１４（Ａ）、図１４（Ｂ）で説明したように、頂点法線ベクトルと、テクスチャ記憶部１７８からフェッチした法線テクスチャとに基づいて、基本法線ベクトルＮＢを求める（ステップＳ５）。そして、図１６で説明したように、倍率パラメータＰ１、Ｐ２に基づいて、テクスチャ座標Ｕ、ＶをＵ’＝Ｐ１×Ｕ、Ｖ’＝Ｐ２×Ｖに変換する（ステップＳ６）。そして、変換により得られたテクスチャ座標Ｕ’、Ｖ’に基づいて、基本法線摂動成分ＮＲのテクスチャ（ノイズテクスチャ）をテクスチャ記憶部１７８からフェッチする（ステップＳ７）。
【０１５７】
次に、図１５（Ａ）、図１５（Ｂ）で説明したように、ステップＳ６で求められた基本法線ベクトルＮＢと、ステップＳ７で取得された基本法線摂動成分ＮＲと、法線摂動成分の割合パラメータβ及び強さパラメータＣＰに基づいて、スペキュラ用法線ベクトルＮＳ＝ＮＢ＋ＣＰ×β×ＮＲを求める（ステップＳ８）。同様に、基本法線ベクトルＮＢと、基本法線摂動成分ＮＲと、法線摂動成分の割合パラメータβ及び強さパラメータＣＰに基づいて、ディフューズ用法線ベクトルＮＤ＝ＮＢ＋ＣＰ×（１−β）×ＮＲを求める（ステップＳ９）。
【０１５８】
次に、図８（Ａ）、図８（Ｂ）で説明したように、光源ベクトルＬと視線ベクトルＥとスペキュラ用法線ベクトルＮＳに基づいて、照明モデルにしたがったスペキュラ色Ｃｓｐを求める（ステップＳ１０）。なおステップＳ５〜Ｓ９の処理を省略する変形実施も可能である。この場合にはステップＳ１０のスペキュラ用法線ベクトルＮＳはオブジェクトの通常の法線ベクトルになる。
【０１５９】
次にスペキュラ色Ｃｓｐの強さパラメータＳＰ＝Ｆ（Ｃｓｐ）＝Ｋ１×Ｒｓｐ＋Ｋ２×Ｇｓｐ＋Ｋ３×Ｂｓｐを求める（ステップＳ１１）。そして求められた強さパラメータＳＰに基づいて、第１の補間係数Ｒ１＝Ｇ（ＳＰ）を求める（ステップＳ１２）。そして図４（Ａ）で説明したように、第１、第２の設定色ＣＡ、ＣＢを第１の補間係数Ｒ１で補間し、第１の補間色ＣＩ１＝Ｒ１×ＣＡ＋（１−Ｒ１）×ＣＢを求める（ステップＳ１３）。
【０１６０】
次に、ステップＳ１１で求められた強さパラメータＳＰに基づいて、第２の補間係数Ｒ２＝Ｈ（ＳＰ）を求める（ステップＳ１４）。そして図４（Ｂ）で説明したように、ステップＳ１３で求められた第１の補間色ＣＩ１とスペキュラ色Ｃｓｐを第２の補間係数Ｒ２で補間し、第２の補間色ＣＩ２＝Ｒ２×ＣＩ１＋（１−Ｒ２）×Ｃｓｐを求める（ステップＳ１５）。そして求められた第２の補間色ＣＩ２をスペキュラ色Ｃｓｐに設定する（ステップＳ６）。
【０１６１】
次に、光源ベクトルＬとディフューズ用法線ベクトルＮＤに基づいて、照明モデルにしたがったディフューズ色Ｃｄｆを求める（ステップＳ１７）。更にアンビエント色Ｃａｍを求める（ステップＳ１８）。
【０１６２】
そして最後に、スペキュラ色Ｃｓｐ、ディフューズ色Ｃｄｆ、アンビエント色Ｃａｍに基づいて、オブジェクトの色ＣＳ＝Ｃｓｐ＋Ｃｄｆ＋Ｃａｍを求める（ステップＳ１９）。
【０１６３】
３．ハードウェア構成
図２０（Ａ）に本実施形態を実現できるハードウェアの構成例を示す。
【０１６４】
ＣＰＵ９００（メインプロセッサ）は、複数のＣＰＵコア１、ＣＰＵコア２、ＣＰＵコア３を含むマルチコアプロセッサである。またＣＰＵ９００は図示しないキャッシュメモリを含む。ＣＰＵコア１、２、３の各々にはベクタ演算器等が設けられている。そしてＣＰＵコア１、２、３の各々は、例えば２つのＨ／Ｗスレッド処理をコンテクストスイッチをすることなしに並列実行でき、マルチスレッド機能がハードウェアでサポートされている。そして３つのＣＰＵコア１、２、３の合計で、６つのＨ／Ｗスレッド処理を並列実行できる。
【０１６５】
ＧＰＵ９１０（描画プロセッサ）は、頂点処理やピクセル処理を行って、描画（レンダリング）処理を実現する。具体的には、シェーダプログラムに従って、頂点データの作成・変更やピクセル（フラグメント）の描画色の決定を行う。１フレーム分の画像がＶＲＡＭ９２０（フレームバッファ）に書き込まれると、その画像はビデオ出力を介してＴＶなどのディスプレイに表示される。なおメインメモリ９３０はＣＰＵ９００やＧＰＵ９１０のワークメモリとして機能する。またＧＰＵ９１０では、複数の頂点スレッド、複数のピクセルスレッドが並列実行され、描画処理のマルチスレッド機能がハードウェアでサポートされている。またＧＰＵ９１０にはハードウェアのテッセレータも備えられている。またＧＰＵ９１０は、頂点シェーダとピクセルシェーダとがハードウェア的に区別されていないユニファイド・シェーダ・タイプとなっている。
【０１６６】
ブリッジ回路９４０（サウスブリッジ）は、システム内部の情報流通を制御する回路であり、ＵＳＢコントローラ（シリアルインターフェース）、ネットワーク（イーサネット（登録商標））の通信コントローラ、ＩＤＥコントローラ、或いはＤＭＡコントローラなどのコントローラを内蔵する。そしてこのブリッジ回路９４０により、ゲームコントローラ９４２、メモリーカード９４４、ＨＤＤ９４６、ＤＶＤドライブ９４８との間のインターフェース機能が実現される。
【０１６７】
なお本実施形態を実現できるハードウェア構成は図２０（Ａ）に限定されず、例えば図２０（Ｂ）のような構成であってもよい。
【０１６８】
図２０（Ｂ）ではＣＰＵ９０２が、プロセッサエレメントＰＰと８つのプロセッサエレメントＰＥ１〜ＰＥ８を含む。プロセッサエレメントＰＰは汎用的なプロセッサコアであり、プロセッサエレメントＰＥ１〜ＰＥ８は比較的シンプルな構成のプロセッサコアである。そしてプロセッサエレメントＰＰとプロセッサエレメントＰＥ１〜ＰＥ８のアーキテクチャは異なっており、プロセッサエレメントＰＥ１〜ＰＥ８は、複数のデータに対して１命令で同じ処理を同時にできるＳＩＭＤ型のプロセッサコアとなっている。これによりストリーミング処理などのマルチメディア処理を効率的に実行できる。プロセッサエレメントＰＰは、２つのＨ／Ｗスレッド処理を並列実行でき、プロセッサエレメントＰＥ１〜ＰＥ８の各々は、１つのＨ／Ｗスレッド処理を実行できる。従って、ＣＰＵ９０２では、合計で１０個のＨ／Ｗスレッド処理の並列実行が可能になる。
【０１６９】
図２０（Ｂ）では、ＧＰＵ９１２とＣＰＵ９０２の連携が密になっており、ＧＰＵ９１２は、ＣＰＵ９０２側のメインメモリ９３０に直接にレンダリング処理を行うことができる。また例えばＣＰＵ９０２がジオメトリ処理を行って、頂点データを転送したり、ＧＰＵ９１２からＣＰＵ９０２にデータを戻すことも容易にできる。またＣＰＵ９０２が、レンダリングのプリプロセッシング処理やポストプロセッシング処理を行うことも容易であり、テッセレーション（平面分割）やドットフィルをＣＰＵ９０２が実行できる。例えば抽象度の高い処理はＣＰＵ９０２が行い、抽象度が低い細かな処理はＧＰＵ９１２が行うというような役割分担が可能である。
【０１７０】
なお本実施形態の各部の処理をハードウェアとプログラムにより実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアであるプロセッサ（ＣＰＵ、ＧＰＵ）に処理を指示すると共に、必要であればデータを渡す。そして、プロセッサは、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１７１】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語（オブジェクト等）と共に記載された用語（移動体等）は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。
【０１７２】
また、第１、第２の色補間処理、ライティング処理、法線ベクトルの取得処理、法線摂動成分の取得処理、テクスチャマッピング処理の手法も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレイヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１７３】
【図１】本実施形態の画像生成システムのブロック図の例。
【図２】図２（Ａ）、図２（Ｂ）は玉虫色のカラーシフトの課題の説明図。
【図３】ＨＳＶのカラーモデルの説明図。
【図４】図４（Ａ）、図４（Ｂ）は本実施形態の第１、第２の色補間処理の説明図。
【図５】本実施形態の色補間処理の説明図。
【図６】図６（Ａ）、図６（Ｂ）は本実施形態により実現される玉虫色のカラーシフトの説明図。
【図７】本実施形態により生成された画像の例。
【図８】図８（Ａ）、図８（Ｂ）は照明モデルの説明図。
【図９】図９（Ａ）、図９（Ｂ）は車体表面の質感のディテール表現の課題の説明図。
【図１０】図１０（Ａ）、図１０（Ｂ）はスペキュラ用、ディフューズ用法線ベクトルの取得手法の説明図。
【図１１】本実施形態により生成された画像の例。
【図１２】本実施形態により生成された画像の例。
【図１３】基本法線ベクトルを用いる手法の説明図。
【図１４】図１４（Ａ）、図１４（Ｂ）は基本法線ベクトルの取得手法の説明図。
【図１５】図１５（Ａ）、図１５（Ｂ）はスペキュラ用、ディフューズ用法線摂動成分の取得手法の説明図。
【図１６】テクスチャの繰り返しマッピング手法を説明するための模式図。
【図１７】摂動成分テクスチャ（ノイズテクスチャ）の例。
【図１８】本実施形態の詳細な処理を説明するフローチャート。
【図１９】本実施形態の詳細な処理を説明するフローチャート。
【図２０】図２０（Ａ）、図２０（Ｂ）はハードウェア構成例。
【符号の説明】
【０１７４】
１００  処理部、１０８  ゲーム演算部、１１０  オブジェクト空間設定部、
１１２  移動体演算部、１１４  仮想カメラ制御部、１２０  画像生成部、
１２１  ライティング処理部、１２２  第１の色補間部、１２３  第２の色補間部、
１２４  色合成部、１２６  スペキュラ用法線ベクトル取得部、
１２７  ディフューズ用法線ベクトル取得部、１２８  基本法線ベクトル取得部、
１２９  基本法線摂動成分取得部、１３０  音生成部、１６０  操作部、１７０  記憶部、
１７２  主記憶部、１７４  描画バッファ、１７６  モデルデータ記憶部、
１７８  テクスチャ記憶部、１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、
１９４  補助記憶装置、１９６  通信部
【図１】
2008077410.tif 000003
【図２】
2008077410.tif 000004
【図３】
2008077410.tif 000005
【図４】
2008077410.tif 000006
【図５】
2008077410.tif 000007
【図６】
2008077410.tif 000008
【図８】
2008077410.tif 000009
【図９】
2008077410.tif 000010
【図１０】
2008077410.tif 000011
【図１３】
2008077410.tif 000012
【図１４】
2008077410.tif 000013
【図１５】
2008077410.tif 000014
【図１６】
2008077410.tif 000015
【図１８】
2008077410.tif 000016
【図１９】
2008077410.tif 000017
【図２０】
2008077410.tif 000018
【図７】
2008077410.tif 000019
【図１１】
2008077410.tif 000020
【図１２】
2008077410.tif 000021
【図１７】
2008077410.tif 000022