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