(57)【特許請求の範囲】
【請求項１】
画像を生成するためのプログラムであって、
オブジェクト空間に設定されたオブジェクトをスクリーンに投影して仮想カメラから見た視界画像を生成する視界画像生成部と、
前記スクリーンに対してポストエフェクト領域を設定し、前記ポストエフェクト領域の一部又は全体において第１のエフェクト色をグラデーション変化させるための第１の色調整情報と、前記視界画像の奥行き値に応じて第１のエフェクト色を変化させるための第２の色調整情報とを設定し、前記第１の色調整情報と前記第２の色調整情報とに基づいて、前記視界画像の前記ポストエフェクト領域に対応する領域に前記第１のエフェクト色を反映させて前記視界画像の色を調整するポストエフェクト処理を行うポストエフェクト処理部としてコンピュータを機能させ、
前記ポストエフェクト処理部が、
前記仮想カメラの制御情報に基づいて、前記ポストエフェクト領域の一部であるグラデーション調整領域を設定し、前記第１の色調整情報を、前記グラデーション調整領域の一端から他端に向けてグラデーション変化するように設定することを特徴とするプログラム。
【請求項２】
請求項１において、
前記ポストエフェクト処理部が、
第１のα値を前記第１の色調整情報として設定するとともに、第２のα値を第２の色調整情報として設定し、
前記第１のα値と前記第２のα値との乗算結果に基づいてαブレンディングを行うことにより、前記視界画像に対して前記ポストエフェクト処理を行うことを特徴とするプログラム。
【請求項３】
請求項１、２のいずれかにおいて、
前記ポストエフェクト処理部が、
オブジェクト空間の所定の基準面からの高さ情報に基づいて該高さ情報に対応するスクリーン座標系における座標情報を取得し、取得した座標情報に基づいて前記グラデーション調整領域を設定することを特徴とするプログラム。
【請求項４】
請求項１〜３のいずれかにおいて、
前記ポストエフェクト処理部が、
前記第１の色調整情報を設定する処理として、一端側の頂点と他端側の頂点とで異なるα値が設定された第１のポリゴンを描画する処理を行うことを特徴とするプログラム。
【請求項５】
請求項１〜４のいずれかにおいて、
前記ポストエフェクト処理部が、
前記第１の色調整情報を、前記ポストエフェクト領域の前記グラデーション調整領域以外の領域では前記グラデーション調整領域の他端に設定される色調整情報に設定すること
を特徴とするプログラム。
【請求項６】
請求項５において、
前記ポストエフェクト処理部が、
前記ポストエフェクト領域を設定する処理として、全ての頂点に対して前記グラデーション調整領域の他端での色調整情報が設定され、前記ポストエフェクト領域の前記グラデーション調整領域以外の領域に対応する第２のポリゴンを描画する処理を行うことを特徴とするプログラム。
【請求項７】
請求項１〜６のいずれかにおいて、
前記ポストエフェクト処理部が、
前記視界画像の奥行き値に応じて第２のエフェクト色を変化させるための第３の色調整情報を設定し、
前記第３の色調整情報に基づいて、前記視界画像の全領域に前記第２のエフェクト色を反映させて前記視界画像の色を調整するポストエフェクト処理を更に行うことを特徴とするプログラム。
【請求項８】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１〜７のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項９】
画像生成システムであって、
オブジェクト空間に設定されたオブジェクトをスクリーンに投影して仮想カメラから見た視界画像を生成する視界画像生成部と、
前記スクリーンに対してポストエフェクト領域を設定し、前記ポストエフェクト領域の一部又は全体において第１のエフェクト色をグラデーション変化させるための第１の色調整情報と、前記視界画像の奥行き値に応じて第１のエフェクト色を変化させるための第２の色調整情報とを設定し、前記第１の色調整情報と前記第２の色調整情報とに基づいて、前記視界画像の前記ポストエフェクト領域に対応する領域に前記第１のエフェクト色を反映させて前記視界画像の色を調整するポストエフェクト処理を行うポストエフェクト処理部とを含み、
前記ポストエフェクト処理部が、
前記仮想カメラの制御情報に基づいて、前記ポストエフェクト領域の一部であるグラデーション調整領域を設定し、前記第１の色調整情報を、前記グラデーション調整領域の一端から他端に向けてグラデーション変化するように設定することを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間内（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
このような画像生成システムでは、オブジェクト空間に配置されたオブジェクトにエフェクト色を反映させて、霧（フォグ）、もや、煙、ホコリなどが掛かった場面を表示する場合がある。この場合には、プレーヤの仮想現実感を向上させるために、仮想カメラ（視点）からの距離に応じてエフェクト色の濃度を変化させ、現実世界のフォグ特性等を表現することが望ましい。このようなエフェクト色の濃度の制御を行う技術としては、特開２００３−３２３６３０号公報に開示される従来技術がある。
【０００４】
しかしながら、従来の画像生成システムでは、エフェクト色の濃度の変化は仮想カメラからの距離に応じたα値（フォグの乗り具合）で制御するのみであり、フォグ効果による画像表現には限界があった。
【特許文献１】特開２００３−３２３６３０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、仮想カメラからの距離に応じたエフェクト色の濃度の変化特性に他の変化特性を加味してオブジェクトにエフェクト色を反映させることにより、画像表現のバリエーションを増やして現実感を更に高めるとともに、軽い処理負荷でかかる画像表現を実現することができるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００６】
（１）本発明は、オブジェクト空間に設定されたオブジェクトをスクリーンに投影して仮想カメラから見た視界画像を生成する視界画像生成部と、
前記視界画像に対して色を調整するポストエフェクト処理を行うポストエフェクト処理部とを含み、
前記ポストエフェクト処理部が、
前記スクリーンに対してポストエフェクト領域を設定し、
前記ポストエフェクト領域の一部又は全体において第１のエフェクト色をグラデーション変化させるための第１の色調整情報と、前記視界画像の奥行き値に応じて第１のエフェクト色を変化させるための第２の色調整情報とを設定し、
前記第１の色調整情報と前記第２の色調整情報とに基づいて、前記視界画像の前記ポストエフェクト領域に対応する領域に前記第１のエフェクト色を反映させて前記視界画像の色を調整するポストエフェクト処理を行うことを特徴とする画像生成システムに関係する。
【０００７】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【０００８】
本発明において、視界画像とは、フレームバッファに出力された段階の画像データとしてもよいし、フレームバッファに出力される前段階としてワークバッファ等の中間バッファに出力された中間段階の画像データとしてもよい。
【０００９】
また、ポストエフェクト処理とは、フレームバッファに出力された視界画像の画像データにエフェクト色を反映させるようにしてもよいし、ワークバッファに出力された視界画像の画像データにエフェクト色を反映させた画像データを、フレームバッファに出力するようにしてもよい。
【００１０】
また、視界画像に対して色を調整するポストエフェクト処理とは、視界画像に対して直接的に色を調整することの他、他の色調整処理等を加えた後の視界画像に対して色を調整することを含む。また、視界画像に第１のエフェクト色を反映させるとは、視界画像に直接的に第１のエフェクト色を反映させることの他、他の色調整処理等を加えた後の視界画像に第１のエフェクト色を反映させることを含む。
【００１１】
また、視界画像の奥行き値とは、Ｚバッファに格納された視界画像のＺ値や、該Ｚ値を変換した所定の距離情報とすることができる。
【００１２】
本発明によれば、奥行き値に応じたエフェクト色の変化特性に、所定の領域でグラデーション変化するエフェクト色の変化特性を加味した変化特性により、視界画像に第１のエフェクト色を反映させることができる。例えば、視界画像の地平線や水平線付近の領域をポストエフェクト領域として設定すれば、地平線や水平線から離れるにつれ空の色がグラデーション変化するようにすることができる。
【００１３】
従って、奥行き値が最遠景として一定に設定される空などの領域では、視界画像の奥行き値に応じた色調整情報だけではエフェクト色の反映に変化を持たせることができなかったが、本発明によれば、例えば、地平線や水平線付近での空の色の変化等を表現することができる。
【００１４】
しかも、スクリーンに対して設定されたポストエフェクト領域に、より手前側のオブジェクトが存在する場合には、視界画像の奥行き値に応じた第２の色調整情報によって第１のエフェクト色が調整される。従って、ポストエフェクト領域において第１のエフェクト色をグラデーション変化させても不自然に見えることはない。
【００１５】
更に、従来の画像生成システムでは、地平線や水平線付近での空の色の変化等を表現する際には、空に対応する領域に天球（スフィア）等を設定し、該天球の法線ベクトルの向きと仮想カメラの視線方向に基づいて、空の色の変化を調整するための演算を行う等していた。しかし、本発明によれば、かかる手法を採用しなくとも、軽い処理負荷で地平線や水平線付近での空の色の変化等をリアルに表現することができる。
【００１６】
（２）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
（１）の発明において、
前記ポストエフェクト処理部が、
第１のα値を前記第１の色調整情報として設定するとともに、第２のα値を第２の色調整情報として設定し、
前記第１のα値と前記第２のα値との乗算結果に基づいてαブレンディングを行うことにより、前記視界画像に対して前記ポストエフェクト処理を行うようにしてもよい。
【００１７】
本発明によれば、第１のエフェクト色をグラデーション変化させる第１のα値と、視界画像の奥行き値に応じた第２のα値との乗算結果に基づいてαブレンディングを行うことにより、奥行き値に応じたエフェクト色の変化特性に、所定の領域でグラデーション変化するエフェクト色の変化特性を加味した変化特性により、視界画像に第１のエフェクト色を反映させることができる。
【００１８】
（３）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
（１）、（２）の発明のいずれかにおいて、
前記ポストエフェクト処理部が、
前記仮想カメラの制御情報に基づいて、前記ポストエフェクト領域を設定するようにしてもよい。
【００１９】
本発明においては、仮想カメラの位置、向き、画角に関する制御情報や、それらの情報に基づいて求められる情報に基づいて、ポストエフェクト領域を設定することができる。また、ポストエフェクト領域を設定するとは、ポストエフェクト領域の基準位置を設定するようにしてもよいし、ポストエフェクト領域の範囲を設定するようにしてもよい。
【００２０】
本発明によれば、仮想カメラの位置、向き、画角の変化により、ポストエフェクト処理の対象とすべき領域のスクリーン上の位置が変化した場合に、仮想カメラの位置、向き、画角の変化に合わせてポストエフェクト領域を設定することができる。
【００２１】
例えば、仮想カメラの位置が高くなれば、或いは仮想カメラの向きが上向きになれば、スクリーンに投影される地平線や水平線は相対的にスクリーンの下方に位置することになる。そこで、仮想カメラの位置、向き、画角の変化に合わせてポストエフェクト領域を設定することにより、仮想カメラの位置、向き、画角が変化しても、例えば地平線や水平線付近をポストエフェクト処理の対象領域とすることができる。
【００２２】
（４）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
（１）〜（３）の発明のいずれかにおいて、
前記ポストエフェクト処理部が、
オブジェクト空間の所定の基準面からの高さ情報に基づいて該高さ情報に対応するスクリーン座標系における座標情報を取得し、取得した座標情報に基づいて前記ポストエフェクト領域を設定するようにしてもよい。
【００２３】
本発明においては、例えばCPU等の演算手段が演算した座標情報を、ポストエフェクト処理部が取得するようにしてもよいし、ポストエフェクト処理部が座標情報を演算することにより座標情報を取得するようにしてもよい。
【００２４】
また、オブジェクト空間の所定の基準面からの高さ情報とは、該オブジェクト空間のオブジェクト配置や仮想カメラの移動範囲等に応じて、任意に定めることができる。
【００２５】
本発明によれば、例えば、オブジェクト空間における所定の高さ情報に対応するスクリーン座標系における座標情報を、ポストエフェクト領域を設定する際の基準とすることができる。従って、仮想カメラの位置、向き、画角の変化により、ポストエフェクト処理の対象とすべき領域のスクリーン上の位置が変化した場合に、仮想カメラの位置、向き、画角の変化に合わせてポストエフェクト領域を設定することができる。
【００２６】
（５）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
（１）〜（４）の発明のいずれかにおいて、
前記ポストエフェクト処理部が、
前記第１の色調整情報を、前記ポストエフェクト領域の一部であるグラデーション調整領域の一端から他端に向けてグラデーション変化するように設定するようにしてもよい。
【００２７】
本発明によれば、グラデーション調整領域の一端から他端に向けて第１のエフェクト色がグラデーション変化するように、第１のエフェクト色を視界画像に反映させることができる。
【００２８】
（６）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
（５）の発明において、
前記ポストエフェクト処理部が、
前記第１の色調整情報を設定する処理として、一端側の頂点と他端側の頂点とで異なるα値が設定された第１のポリゴンを描画する処理を行うようにしてもよい。
【００２９】
本発明において、第１のポリゴンは、例えば、スクリーンの横幅に対応する一定サイズの矩形のポリゴンとしてもよい。ここで、スクリーンの横幅に対応するとは、スクリーンの横幅と横幅が等しいポリゴンとしてもよいし、スクリーンの横幅よりも横幅が多少広い或いは狭いポリゴンとしてもよい。
【００３０】
本発明によれば、ポリゴンの頂点に対して設定したα値により、グラデーション調整領域において第１のエフェクト色の濃度をグラデーション変化させることができる。例えば、矩形のポリゴンの右上、左上の頂点に設定されるα値を０．０（透明）とし、右下、左下の頂点に設定されるα値を１．０（不透明）とすれば、第１のポリゴンの上端から下端に向けてα値が線形補間され、第１のエフェクト色の濃度が次第に濃くなるようにすることができる。
【００３１】
（７）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
（５）、（６）の発明のいずれかにおいて、
前記ポストエフェクト処理部が、
前記第１の色調整情報を、前記ポストエフェクト領域の前記グラデーション調整領域以外の領域では前記グラデーション調整領域の他端に設定される色調整情報に設定するようにしてもよい。
【００３２】
本発明によれば、ポストエフェクト領域において、グラデーション調整領域とそれ以外の領域とで第1の色調整情報（第1のα値）の変化特性を連続させることができる。従って、グラデーション調整領域とそれ以外の領域とで、設定される色調整情報（例えばα値）が急激に変化して不自然な画像が生成されることを防止することができる。
【００３３】
また、視界画像の奥行き値が手前側である領域では、視界画像の奥行き値に応じた第２の色調整情報（例えば第２のα値）によって、ポストエフェクト領域に対して最終的に設定される色調整情報（例えばα値）が０もしくは０に近い値にされることになる。従って、グラデーション調整領域以外の領域に対して第１の色調整情報（例えば第１のα値）を固定して設定しても、奥行き値が手前側である領域においては第１のエフェクト色の濃度を０もしくは非常に薄くなるようにすることができる。
【００３４】
（８）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
（７）の発明において、
前記ポストエフェクト処理部が、
前記ポストエフェクト領域を設定する処理として、全ての頂点に対して前記グラデーション調整領域の他端での色調整情報が設定され、前記ポストエフェクト領域の前記グラデーション調整領域以外の領域に対応する第２のポリゴンを描画する処理を行うようにしてもよい。
【００３５】
本発明において、第２のポリゴンとは、スクリーンの横幅と横幅が等しいポリゴンとしてもよいし、スクリーンの横幅よりも横幅が多少広い或いは狭いポリゴンとしてもよい。また、第２のポリゴンは、グラデーション調整領域の設定位置や設定範囲に応じて、サイズが変化するようにしてもよい。
【００３６】
本発明によれば、ポリゴンの頂点に対して設定したα値により、ポストエフェクト領域のグラデーション調整領域以外の領域でのα値を、グラデーション調整領域の他端でのα値に固定して設定することができる。
【００３７】
（９）また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、
（１）〜（８）の発明のいずれかにおいて、
前記ポストエフェクト処理部が、
前記視界画像の奥行き値に応じて第２のエフェクト色を変化させるための第３の色調整情報を設定し、
前記第３の色調整情報に基づいて、前記視界画像の全領域に前記第２のエフェクト色を反映させて前記視界画像の色を調整するポストエフェクト処理を更に行うようにしてもよい。
【００３８】
本発明によれば、第１のエフェクト色に加え、第１のエフェクト色とは異なる第２のエフェクト色を、奥行き値に応じて視界画像の全領域に反映することができる。従って、ポストエフェクト調整領域における第１のエフェクト色を、第２のエフェクト色に溶け込ませるようにした微妙な画像表現を行うことができる。
【００３９】
（１０）また本発明に係る画像生成システムは、
オブジェクト空間に設定されたオブジェクトをスクリーンに投影した視界画像に対して色を調整するポストエフェクト処理を行うポストエフェクト処理部を含み、
前記ポストエフェクト処理部が、
前記視界画像中の地平線及び水平線の少なくとも一方を含む領域をポストエフェクト領域として設定し、
前記ポストエフェクト領域において、前記地平線及び水平線の少なくとも一方からその上方に離れるにつれて第１のエフェクト色が薄くなるように第１のエフェクト色をグラデーション変化させるとともに、前記視界画像の奥行き値に応じて第１のエフェクト色を変化させて、前記視界画像に前記第１のエフェクト色を反映させるポストエフェクト処理を行うようにしてもよい。
【００４０】
また本発明は、上記ポストエフェクト処理部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記ポストエフェクト処理部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【００４１】
本発明によれば、奥行き値に応じたエフェクト色の変化特性に、所定の領域でグラデーション変化するエフェクト色の変化特性を加味した変化特性により、視界画像に第１のエフェクト色を反映させることができる。そして、視界画像の地平線や水平線付近の領域をポストエフェクト領域として設定することにより、地平線や水平線からその上方に離れるにつれ空の色がグラデーション変化するようにすることができる。
【発明を実施するための最良の形態】
【００４２】
以下、本実施形態について図面を用いて説明する。
【００４３】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００４４】
１．構成
図１に、本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の一例を示す。なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１７０を含めばよく）、それ以外の各部（機能ブロック）については任意の構成要素とすることができる。
【００４５】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、シフトレバー、アクセルペダル、ブレーキペダル、マイク、センサー、或いは筺体などのハードウェアにより実現できる。
【００４６】
記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００４７】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部（各手段）としてコンピュータを機能させるためのプログラム（各部をコンピュータに実現させるためのプログラム）が記憶（記録、格納）される。
【００４８】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００４９】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどのハードウェアにより実現できる。
【００５０】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００５１】
通信部１９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００５２】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信するようにしてもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００５３】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの各種の処理を行う。この場合、処理部１００は、記憶部１７０内の主記憶部１７２をワーク領域として使用して、各種の処理を行う。この処理部１００の機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）又はＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラム（ゲームプログラム）により実現できる。
【００５４】
処理部１００は、移動・動作処理部１１０、オブジェクト空間設定部１１２、仮想カメラ制御部１１４、描画部１２０、音生成部１３０を含む。なお、処理部１００は、これらの各部（機能ブロック）を全て含む必要はなく、その一部を省略してもよい。
【００５５】
移動・動作処理部１１０は、オブジェクト（移動体）の移動情報（位置、回転角度）や動作情報（オブジェクトの各パーツの位置、回転角度）を求める処理を行う。即ち、操作部１６０によりプレーヤが入力した操作データやゲームプログラムなどに基づいて、オブジェクトを移動させたり動作（モーション、アニメーション）させたりする処理を行う。
【００５６】
オブジェクト空間設定部１１２は、移動体（キャラクタ、車、戦車、ロボット）、柱、壁、建物、マップ（地形）などの各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間内に配置設定するための処理を行う。より具体的には、ワールド座標系でのオブジェクトの位置や回転角度（方向）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転）でオブジェクトを配置する。
【００５７】
仮想カメラ制御部１１４は、オブジェクト空間内に設定される仮想カメラを制御する処理を行う。即ち、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転（Ｘ、Ｙ、Ｚ軸回りでの回転）などの仮想カメラ情報を求め、仮想カメラを制御する（視点位置や視線方向を制御する）。
【００５８】
例えば、仮想カメラにより移動オブジェクトを後方から撮影する場合には、移動オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転（仮想カメラの方向）を制御することが望ましい。この場合には、移動・動作処理部１１０で得られた移動オブジェクトの位置、方向又は速度などの情報に基づいて、仮想カメラを制御することになる。或いは、仮想カメラを、予め決められた移動経路で移動させながら予め決められた角度で回転させるようにしてもよい。この場合には、仮想カメラの位置（移動経路）や回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【００５９】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクトの各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含む頂点リストが入力され、入力された頂点リストに含まれる頂点データに基づいて、頂点処理（頂点シェーディング）が行われる。なお頂点シェーディングを行う際に、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うこともできる。頂点シェーディングでは、頂点シェーダプログラム（広義には、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点シェーディング後の頂点データに基づいてラスタライズ（走査変換）が行われ、表示画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセルシェーディング（広義には、ピクセル処理、フラグメント処理）が行われる。ピクセルシェーディングでは、ピクセルシェーダプログラム（第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、最終的な表示画像のピクセルの描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７２に出力（描画）する。すなわち、ピクセルシェーディングでは、表示画像のピクセル単位で画像情報（色、法線、輝度、α値等）を設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像（フレーム画像）が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるようにフレーム画像を生成することができる。
【００６０】
なお描画バッファ１７２、表示バッファ１７３は、フレームバッファ、ワークバッファなどのピクセル単位で画像情報を記憶できるバッファ（画像バッファ）であり、例えば画像生成システムのＶＲＡＭ上に確保される。また本実施形態では、描画バッファ１７２（バックバッファ）、表示バッファ１７３（フロントバッファ）のダブルバッファ構成にしてもよいし、シングルバッファ構成やトリプルバッファ構成にしてもよい。或いは４個以上のバッファを用いるようにしてもよい。
【００６１】
また、描画部１２０は、テクスチャマッピング処理や隠面消去処理やαブレンディング処理を行うことができる。
【００６２】
ここでテクスチャマッピング処理は、テクスチャ記憶部１７４に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングする処理である。具体的には、オブジェクト（プリミティブ面）の頂点に設定（付与）されるテクスチャ座標等を用いてテクスチャ記憶部１７４からテクスチャ（色、α値などの表面プロパティ）を読み出す。そして、２次元の画像又はパターンであるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間（テクセル補間）などを行う。
【００６３】
また隠面消去処理は、例えば、各ピクセルのＺ値（奥行き情報）が格納されているＺバッファ１７６（奥行きバッファ）を用いるＺバッファ法（奥行き比較法、Ｚテスト）により実現される。即ちオブジェクトのプリミティブ面の各ピクセルを描画する際に、Ｚバッファ１７６に格納されているＺ値を参照する。そして参照されたＺバッファ１７６のＺ値と、プリミティブ面の描画対象ピクセルでのＺ値とを比較し、プリミティブ面のＺ値が、仮想カメラから見て手前側となるＺ値（例えば大きなＺ値）である場合には、そのピクセルの描画処理を行うと共にＺバッファ１７６のＺ値を新たなＺ値に更新する。
【００６４】
またαブレンディング処理は、α値（Ａ値）に基づいて行う処理であり、通常αブレンディング、加算αブレンディング或いは減算αブレンディングなどがある。例えば通常αブレンディングの場合には下式の処理を行う。
【００６５】
ＲＱ＝（１−α）×Ｒ１＋α×Ｒ２
ＧＱ＝（１−α）×Ｇ１＋α×Ｇ２
ＢＱ＝（１−α）×Ｂ１＋α×Ｂ２
一方、加算αブレンディングの場合には下式の処理を行う。
【００６６】
ＲＱ＝Ｒ１＋α×Ｒ２
ＧＱ＝Ｇ１＋α×Ｇ２
ＢＱ＝Ｂ１＋α×Ｂ２
また、減算αブレンディングの場合には下式の処理を行う。
【００６７】
ＲＱ＝Ｒ１−α×Ｒ２
ＧＱ＝Ｇ１−α×Ｇ２
ＢＱ＝Ｂ１−α×Ｂ２
ここで、Ｒ１、Ｇ１、Ｂ１は、描画バッファ１７２（フレームバッファ）に既に描画されている画像（視界画像）のＲＧＢ成分であり、Ｒ２、Ｇ２、Ｂ２は、描画バッファ１７２に描画すべき画像のＲＧＢ成分である。また、ＲＱ、ＧＱ、ＢＱは、αブレンディングにより得られる画像のＲＧＢ成分である。なおα値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、半透明度（透明度、不透明度と等価）情報、マスク情報、或いはバンプ情報などとして使用できる。本実施の形態では、Ｒ２、Ｇ２、Ｂ２にエフェクト色のＲ、Ｇ、Ｂ成分を設定して上記のようなαブレンディング処理を行うことで、視界画像にエフェクト（霧、雲、湯気、もや、ほこり、ちり、煙、竜巻又は露等）が掛かった画像を生成できる。
【００６８】
特に、本実施の形態では、描画部１２０は、視界画像生成部１２２、ポストエフェクト処理部１２４を含む。視界画像生成部１２２は、オブジェクトをスクリーンに投影して視界画像を生成する。即ち、透視変換後（ジオメトリ処理後）のオブジェクト（１又は複数プリミティブ面）を描画バッファ１７２に出力する。また、ポストエフェクト処理部１２４は、色調整情報としてのα値に基づいて、視界画像に対して色を調整するポストエフェクト処理を行う。
【００６９】
より詳細には、ポストエフェクト処理部１２４は、仮想カメラの制御情報等に基づいて、スクリーンに対してポストエフェクト領域を設定する処理と、設定したポストエフェクト領域の一部又は全体において第１のエフェクト色をグラデーション変化させるための第１のα値と、視界画像の奥行き値に応じて第１のエフェクト色を変化させるための第２のα値とを設定する処理と、第１のα値と第２のα値とに基づいて、視界画像に第１のエフェクト色を反映させて視界画像のポストエフェクト領域に対応する領域の色を調整する処理とを行う。
【００７０】
具体的には、ポストエフェクト処理部１２４は、オブジェクト空間の所定の基準面からの高さ情報に基づいて該高さ情報に対応するスクリーン座標系における座標情報を取得し、取得した座標情報に基づいてポストエフェクト領域の一部をグラデーション調整領域として設定する処理を行う。
【００７１】
また、ポストエフェクト処理部１２４は、グラデーション調整領域に第１のα値を設定する処理として、一端側の頂点と他端側の頂点とで異なるα値が設定され、スクリーンの横幅に対応する一定サイズの第１のポリゴンを描画する処理を行う。また、ポストエフェクト領域のグラデーション調整領域以外の領域に第１のα値を設定する処理として、全ての頂点に対して第１のポリゴンの他端でのα値が設定され、グラデーション調整領域以外の領域に対応する可変サイズの第２のポリゴンを描画する処理を行う。
【００７２】
また、ポストエフェクト処理部１２４は、ポストエフェクト領域に第２のα値を設定する処理として、テクスチャマッピング処理を利用して、Ｚバッファ１７６に格納された視界画像の各画素のＺ値や該Ｚ値を変換した距離情報などの奥行き値に基づいて、該奥行き値に応じたα値とエフェクト色のＲ、Ｇ、Ｂ成分とを設定する処理を行う。例えば、ＬＵＴ記憶部１７９に記憶されるインデックスカラー・テクスチャマッピング用のＬＵＴ（ルックアップテーブル）を用いてテクスチャマッピングを行うことにより、視界画像の各画素の奥行き値に応じた第２のα値とエフェクト色のＲ、Ｇ、Ｂ成分とを設定することができる。
【００７３】
この場合、ＬＵＴ記憶部１７９が、インデックス番号とα値及びエフェクト色とを対応付けるインデックスカラー・テクスチャマッピング用のルックアップテーブルを記憶し、ポストエフェクト処理部１２４が、視界画像の奥行き値をルックアップテーブルのインデックス番号として扱い、該ルックアップテーブルを用いて第1のポリゴン及び第２のポリゴンに対してインデックスカラー・テクスチャマッピングを行って、視界画像の各画素の奥行き値に応じた第２のα値と第１のエフェクト色とを設定する。
【００７４】
ここで、インデックスカラー・テクスチャマッピング用のルックアップテーブルが２５６色として設定されている場合には、ポストエフェクト処理部１２４が、Ｚバッファの視界画像のＺ値を０〜２５５までの２５６段階の距離情報に変換して、これをインデックス番号として扱うようにしてもよい。
【００７５】
また、ポストエフェクト処理部１２４は、第３のα値を設定する処理として、第２のα値を設定する処理と同様に、視界画像の奥行き値をルックアップテーブルのインデックス番号として扱い、該ルックアップテーブルを用いてスクリーンサイズ又は分割スクリーンサイズの第３のポリゴンに対してインデックスカラー・テクスチャマッピングを行って、視界画像の各画素の奥行き値に応じた第３のα値と第２のエフェクト色とを設定する。
【００７６】
そして、ポストエフェクト処理部１２４は、第１のα値と第２のα値との乗算結果に基づいて、視界画像の色と第1のポリゴン及び第２のポリゴンの色とをαブレンディングすることにより、視界画像に第１のエフェクト色を反映させる処理を行う。すなわち、第１のα値をα１、第２のα値をα２とすると、α＝α１×α２のようにして求めたα値を用いて、上述した通常αブレンディング、加算αブレンディング或いは減算αブレンディングの式の処理を行う。更に、第３のα値に基づいて、視界画像の色と第３のポリゴンの色とをαブレンディングすることにより、視界画像に第２のエフェクト色を反映させる処理を行う。
【００７７】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００７８】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００７９】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて生成してもよい。
【００８０】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。なお、以下では、本実施の形態のポストエフェクト処理の手法をフォグの表現に適用した場合を主に例にとり説明するが、本実施形態の手法は、フォグ以外の画像表現に適用することも可能である。
【００８１】
２．１  距離に応じたフォグ濃度の変化
オブジェクト空間を仮想カメラから見た画像を生成する場合に、よりリアルなフォグエフェクトを表現するためには、仮想カメラ（視点）からの距離に応じてフォグ濃度を変化させることが望ましい。即ち、仮想カメラからの距離が遠くなるほどフォグ濃度を濃くすることにより、現実世界のフォグエフェクトを表現することができる。
【００８２】
そこで本実施形態では、仮想カメラからの距離パラメータであるＺ値（ＺバッファのＺ値）に基づいて、α値とエフェクト色のＲ、Ｇ、Ｂ成分を設定する手法を採用している。具体的には図２のＡ１に示すように、まず視界画像（描画バッファ上に描画された画像）のＺ値ＺＰを奥行き距離情報Ｄ（仮想カメラからの距離情報、視界画像のＺ値を変換することで得られる第２のＺ値）に変換する。本実施の形態では、視界画像のＺ値ＺＰを、仮想カメラから見て奥側に対応する０から、手前側に対応する２５５までの２５６段階の奥行き距離情報Ｄに変換する。そして、Ａ２に示すように、奥行き距離情報Ｄをエフェクト色EＣＰとα値αＰとに変換する。
【００８３】
そして図２のＡ３に示すように、視界画像の色ＩＣＰ（ＲＧＢ、ＹＵＶ等）と、エフェクト色EＣＰとを、αＰに基づいてαブレンディングする。これにより、仮想カメラからの距離に応じてフォグ濃度が変化するフォグエフェクトが施されたフォグ処理後画像を生成することができる。
【００８４】
なお、ＺバッファのＺ値を奥行き距離情報Ｄに変換する際には、奥側に対応するＺ値と手前側に対応するＺ値との間で、奥行き距離情報Ｄの最小値及び最大値を任意に設定することができる。
【００８５】
２．２  インデックスカラー・テクスチャマッピングによる距離に応じたフォグ濃度の変化
そして本実施形態では、図２のＡ２に示す、奥行き距離情報Ｄをエフェクト色EＣＰとα値αＰとに変換する処理を、インデックスカラー・テクスチャマッピングを有効利用して実現している。
【００８６】
通常のインデックスカラー・テクスチャーマッピングでは、テクスチャ記憶部の使用記憶容量を節約するために、図３のＢ１に示すように、実際の色情報（ＲＧＢ）ではなくインデックス番号が、テクスチャの各テクセルに関連づけて記憶される。また、図３のＢ２に示すように、インデックスカラー・テクスチャマッピング用のＬＵＴ（カラーパレット）には、インデックス番号により指定される色情報が記憶される。そして、オブジェクトに対してテクスチャマッピングを行う際には、テクスチャの各テクセルのインデックス番号に基づいてＬＵＴを参照し、対応する色情報をＬＵＴから読み出し、読み出された色情報を描画バッファ（フレームバッファ等）に描画する。
【００８７】
このようなインデックスカラーモードのテクスチャマッピングでは、ＬＵＴを用いない通常モードのテクスチャマッピングに比べて、使用できる色数は少なくなる（例えば２５６色）。しかしながら、テクスチャ記憶部に実際の色情報（例えば２４ビットの色情報）を記憶する必要が無くなるため、テクスチャ記憶部の使用記憶容量を大幅に節約できる。
【００８８】
そこで、本実施形態では、このようなインデックスカラー・テクスチャマッピングを通常とは異なる形態で利用し、奥行き距離情報Ｄを、α値とエフェクト色のR、G、B成分とに変換している。このため、図４に示すように、ルックアップテーブルＬＵＴ２に、インデックス番号により指定されるα値（０．０〜１．０）とエフェクト色のＲ、Ｇ、Ｂ成分（図４のＬＵＴ２では黄色単色）とを格納しておく。
【００８９】
図５は、本実施の形態のルックアップテーブルＬＵＴ２に格納されているＬＵＴ２のインデックス番号（奥行き距離情報Ｄ）とα値との関係をグラフ化したものである。図５のグラフでは、横軸がインデックス番号（奥行き距離情報Ｄ）を表し、２５５が手前側、０が最遠景（奥側）と対応する。また、縦軸がα値を表し、２５６段階の値が０．０〜１．０で表されている。図５に示すように、ルックアップテーブルＬＵＴ２では、最遠景の奥行き距離情報Ｄに対応するインデックス番号０には、奥側の奥行き値用のα値としてエフェクト色を濃く反映させるα＝１．０（２５５）が対応付けられ、手前側の奥行き距離情報Ｄに対応するインデックス番号２５５には、手前側の奥行き値用のα値としてエフェクト色を反映させないα＝０．０（０）が対応付けられている。そして、奥行き距離情報Ｄが手前側から奥側となるにつれ、フォグ濃度の変化特性に従ってエフェクト色の濃度が濃くなるようにα値が格納されている。
【００９０】
そして、図４のＢ３に示すように、２５６段階の奥行き距離情報ＤをルックアップテーブルＬＵＴ２のインデックス番号として扱い（奥行き距離情報Ｄをインデックス番号とみなし）、ＬＵＴ２を用いて、図４のＢ４に示すように仮想オブジェクト（例えば表示画面サイズ、スクリーンサイズのスプライト、ポリゴン）に対してインデックスカラー・テクスチャマッピングを行う。これにより、視界画像の各画素の奥行き値に応じたα値と、エフェクト色のＲ、Ｇ、Ｂ成分とを得ることができる。そして、Ｂ５に示すように、視界画像の色とエフェクト色とを、奥行き値に応じたα値に基づいてαブレンディングし、視界画像の全領域にエフェクト色を反映させた画像を生成する。
【００９１】
例えば、図６のような視界画像の奥行き距離情報ＤをＬＵＴ２のインデックス番号として扱い、図５のＬＵＴ２を用いて、スクリーンサイズのポリゴン（第３のポリゴン）に対してインデックスカラー・テクスチャマッピングを行う。すると、図７のように、視界画像の各画素の奥行き距離情報Ｄに応じたα値（第３のα値）と黄色のエフェクト色（第２のエフェクト色）とを設定することができる。そして、上記インデックスカラー・テクスチャマッピングを行ったスクリーンサイズのポリゴン（第３のポリゴン）を、頂点データのα値を全てα＝１．０として、視界画像が描画されている描画バッファ１７２にαブレンディング描画する。すると、図８のように、視界画像の全領域に視界画像の奥行き距離情報Ｄに応じて黄色のエフェクト色（第２のエフェクト色）が反映され、現実世界のフォグ濃度の変化特性に従ったフォグ効果が反映された画像を生成することができる。
【００９２】
なお、上記例では、スクリーンサイズのポリゴンに対してテクスチャマッピングを行っているが、スクリーンを分割したサイズのポリゴンに対してテクスチャマッピングを行うようにしてもよい。
【００９３】
２．３  グラデーション領域におけるポストエフェクト処理
以上のように、本実施の形態の画像生成システムでは、フォグ濃度の変化を仮想カメラからの距離に応じたα値（フォグの乗り具合）で制御しているが、かかる手法によるフォグ効果による画像表現には限界がある。例えば、図８の画像では、空に対応する領域Fでは、奥行き距離情報Dが最遠景として一定に設定されているため、エフェクト色の濃度（第３のα値）が一様に設定され、エフェクト色（第２のエフェクト色）の反映に変化を持たせることができない。
【００９４】
そこで、本実施の形態では、上述した視界画像の全領域にエフェクト色（第２のエフェクト色）を反映させるポストエフェクト処理に加え、視界画像の一部の領域であって横幅がスクリーンの横幅に対応する領域をグラデーション調整領域として設定し、グラデーション調整領域に、該領域において第１のエフェクト色をグラデーション変化させるための第１のα値と、視界画像の奥行き値に応じて第１のエフェクト色を変化させるための第２のα値とを設定する。そして、第１のα値と第２のα値との乗算結果に基づいて、視界画像のグラデーション調整領域に対応する領域に第１のエフェクト色を反映させて視界画像の色を調整するポストエフェクト処理を行う。
【００９５】
例えば、図９に示すように、グラデーション調整領域Gを、図６の視界画像の地平線L付近に対応するスクリーン上の領域に設定する。本実施の形態では、図６の視界画像の地平線L付近に対応する領域に、スクリーンの横幅に対応した一定サイズの矩形の第１のポリゴンを描画する。この第１のポリゴンは、右上、左上の頂点に対してα値が０．０（透明）として設定され、右下、左下の頂点に対してα値が１．０（不透明）として設定されている。従って、第１のポリゴンの各ピクセルには、その上端のα値０．０と下端のα値１．０とが線形補間された第１のα値が設定される。即ち、第１のポリゴンの上端から下端に向けてグラデーション変化する第１のα値が設定される。
【００９６】
更に、グラデーション調整領域Gの下端からスクリーンの下端までの領域Rには、全ての頂点に対してグラデーション調整領域Gの下端でのα値１．０が設定された矩形の第２のポリゴンを描画する。従って、第２のポリゴンの各ピクセルには、１．０に固定された第１のα値が設定される。このように、本実施の形態では、グラデーション調整領域Gの上端からスクリーンの下端まで、第１のα値の変化特性を連続させている。なお、本実施の形態では、スクリーンの上端から第１のポリゴンの上端までの領域にはポリゴンを設定しない（描画しない）が、全ての頂点に対してα値０．０が設定されたポリゴンを設定してもよい。
【００９７】
そして、上述した視界画像の全領域にエフェクト色（第２のエフェクト色）を反映させるポストエフェクト処理と同様に、図６の視界画像の奥行き距離情報ＤをルックアップテーブルＬＵＴのインデックス番号として扱い、第２のエフェクト色用のLUT２とは別に用意された第１のエフェクト色用のルックアップテーブルＬＵＴ１を用いて、第１のポリゴン及び第２のポリゴンに対してインデックスカラー・テクスチャマッピングを行う。ここで用いられるＬＵＴ１は、インデックス番号により指定されるＲ、Ｇ、Ｂ成分がオレンジ色単色とされている。また、インデックス番号により指定される第２のα値の変化特性は、図１０に示すように、図５で示したα値の変化特性よりも傾きが緩やかで、最大値は０．７となっている。即ち、最遠景での第１のエフェクト色の濃度は、最遠景での第２のエフェクト色の濃度ほど濃くならないように第２のα値が設定される。
【００９８】
すると、第１のポリゴン及び第２のポリゴンの各ピクセルには、第１のポリゴン及び第２のポリゴンの頂点に対して設定されたα値に基づき設定される第１のα値と、インデックスカラー・テクスチャマッピングにより設定される視界画像の各画素の奥行き距離情報Ｄに応じた第２のα値との乗算結果のα値が設定される。従って、図１１のように、第２のα値が最大（０．７）に設定される最遠景に対応する領域Fにおいては、第１のポリゴンの上端では第１のα値×第２のα値＝０．０×０．７＝０．０となり第１のエフェクト色は反映されない。しかし、第１のポリゴンの下端では第１のα値×第２のα値＝１．０×０．７＝０．７となり第１のエフェクト色が濃く反映される。即ち、最遠景に対応する領域Fにおいては、スクリーンの下方に向かうにつれ第１のエフェクト色であるオレンジ色が濃くなるように、第１のα値と第２のα値との乗算結果であるα値が設定される。
【００９９】
一方、最遠景よりも手前側に対応する領域Nにおいては、視界画像の各画素の奥行き距離情報Ｄに応じた第２のα値によって、乗算の結果、第1のα値がキャンセルされる。図１１の例では、第1のポリゴンが設定されるグラデーション調整領域Gにおいて、最遠景よりも手前側に山オブジェクトMが配置されているが、山オブジェクトMに対応する領域では、手前側用の第２のα値として小さな値のα値（例えば０．０１）が設定されるので、第１のポリゴンに設定された第１のα値が小さな値（例えば０．０７）とされる。また、第２のポリゴンが設定される領域Rにおいては、より手前側の地形オブジェクトLが配置されているので、同様に第２のポリゴンに設定された第１のα値が０もしくは０に近い値とされる。このように、本実施の形態では、奥側のオブジェクトにはグラデーション変化する第1のエフェクト色を反映させつつも、手前側のオブジェクトには第１のエフェクト色を反映させないようにα値を設定することができる。
【０１００】
そして、第２のエフェクト色を反映させた視界画像が描画されている描画バッファ１７２に、第１のポリゴン及び第２のポリゴンをαブレンディング描画する。すると、図１２のように、視界画像の全領域に奥行き距離情報Ｄに応じた第２のエフェクト色（黄色）が反映され、かつ、グラデーション調整領域Gにおいてグラデーション変化する第１のエフェクト色（オレンジ色）が反映された画像を生成することができる。
【０１０１】
２．４  グラデーション調整領域の制御
また、本実施の形態の画像生成システムでは、仮想カメラの位置、向き、画角が変化するが、仮想カメラの位置、向き、画角が変化すると、スクリーンに投影されるオブジェクトの位置も変化し、グラデーション調整領域とすべき領域のスクリーン上の位置が変化する。例えば、仮想カメラの位置が、図６の視界画像が生成される位置から上方に変化した場合には、生成される視界画像における地平線Ｌの位置は相対的にスクリーンの下方に移動する。また、仮想カメラの向きが上方に変化した場合や、画角を狭めた場合や広げた場合も同様である。
【０１０２】
そこで、本実施の形態では、仮想カメラの制御情報に基づいて、グラデーション調整領域Ｇを設定する。従って、仮想カメラの位置、向き、画角の変化により、グラデーション調整領域Ｇとすべき領域のスクリーン上の位置が変化した場合でも、仮想カメラの位置、向き、画角の変化に合わせてグラデーション調整領域Ｇを設定することができる。
【０１０３】
図１３は、オブジェクト空間ＯＢに対する仮想カメラＣＭとスクリーンＳＣの対応関係を示す概念図である。本実施の形態では、オブジェクト空間の所定の基準面からの高さ情報ＯＨに基づいて、該高さ情報ＯＨに対応するスクリーン座標系における座標情報ＳＨを取得し、取得した座標情報ＳＨに基づいてグラデーション調整領域Ｇを設定する。より具体的には、ワールド座標系の高さ情報ＯＨをスクリーン座標系にマトリクス変換することにより座標情報ＳＨを求め、座標情報ＳＨに基づき、第１のポリゴンを描画する。
【０１０４】
ここで、高さ情報ＯＨは、オブジェクト空間ＯＢのオブジェクト配置や仮想カメラＣＭの移動範囲等に応じて、任意に定めることができる。本実施の形態では、図６の地平線Ｌの位置に座標情報ＳＨが対応するように高さ情報ＯＨを定めている。従って、仮想カメラの位置、向き、画角の変化に応じて地平線Ｌのスクリーン上の位置を擬似的に求めることができ、仮想カメラの位置、向き、画角が変化しても、地平線Ｌ付近の領域にグラデーション調整領域Ｇを設定することができる。
【０１０５】
なお、本実施の形態では、座標情報ＳＨに対応するスクリーンのピクセル位置を上端として、そこから縦幅を３０ピクセルとし、横幅がスクリーンの横幅と等しい一定サイズの第１のポリゴンを描画する。そして、縦幅を第１のポリゴンの下端からスクリーンの下端までとし、横幅がスクリーンの横幅と等しい可変サイズの第２のポリゴンを描画する。
【０１０６】
また、仮想カメラの位置、向き、画角が大きく変化して、例えば第１のポリゴンの下端が地平線Ｌよりも上方に位置してしまったとしても、第１のポリゴンの下方には、グラデーション調整領域Ｇでの第１のエフェクト色の変化特性を連続させる第２のポリゴンが描画される。従って、仮に座標情報ＳＨと地平線Ｌのスクリーン上の位置がずれてしまう場合があっても、第１のエフェクト色がある線を境に全く反映されなくなるという不自然な画像が生成されることを防止することができる。
【０１０７】
３．本実施の形態の処理
次に、本実施の形態の処理を、図１４のフローチャートを用いて説明する。
【０１０８】
まず、ステップＳ１において、視界画像（透視変換後のオブジェクト）をフレームバッファに出力する。
【０１０９】
ステップＳ２において、視界画像のＺバッファ値を２５６段階の奥行き距離情報Ｄに変換してワークバッファに格納する。
【０１１０】
ステップＳ３において、ワークバッファの奥行き距離情報Ｄを２５６色のインデックステクスチャとして設定し、第２のエフェクト色用のＬＵＴ２をインデックスカラー・テクスチャチャマッピング用のＬＵＴとして設定する。
【０１１１】
ステップＳ４において、ＬＵＴ２を用いてインデックスカラー・テクスチャマッピングを行った第３のポリゴンを、頂点データのα値を全てα＝１．０としてフレームバッファにαブレンディング描画する。
【０１１２】
ステップＳ５において、第１のポリゴンの描画位置を求める。
【０１１３】
ステップＳ６において、ワークバッファの奥行き距離情報Ｄを２５６色のインデックステクスチャとして設定し、第１のエフェクト色用のＬＵＴ１をインデックスカラー・テクスチャチャマッピング用のＬＵＴとして設定する。
【０１１４】
ステップＳ７において、ＬＵＴ１を用いてインデックスカラー・テクスチャマッピングを行った第１のポリゴンを、頂点データのα値を上端がα＝０．０、下端がα＝１．０として、求められた描画位置でフレームバッファにαブレンディング描画するとともに、インデックスカラー・テクスチャマッピングを行った第２のポリゴンを、頂点データのα値を全てα＝１．０として、第１のポリゴンの描画位置から定まる位置でフレームバッファにαブレンディング描画する。
【０１１５】
４．ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図１５を用いて説明する。
【０１１６】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【０１１７】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動・動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１１８】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０１１９】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、ＭＰＥＧ方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【０１２０】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ（プリミティブ面）で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した陰面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。また、頂点シェーダやピクセルシェーダなどのプログラマブルシェーダも描画プロセッサ９１０に実装されており、本実施形態の手法を実現するシェーダプログラムに従って、頂点データの作成・変更（更新）やピクセル（あるいはフラグメント）の描画色の決定を行う。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０１２１】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０１２２】
ゲームコントローラ９４２（レバー、ボタン、筺体、パッド型コントローラ又はガン型コントローラ等）からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０１２３】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０１２４】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０１２５】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０１２６】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０１２７】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【０１２８】
なお、本実施形態の各部（各手段）は、その全てを、ハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１２９】
そして、本実施形態の各部をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各部を実現することになる。
【０１３０】
５．変形例
また本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書中の記載において広義な用語（仮想オブジェクト）として引用された用語（スプライト、ポリゴン等）は、明細書中の他の記載においても広義な用語に置き換えることができる。
【０１３１】
また、上記実施の形態では、ポリゴンの頂点に設定されたα値に基づき設定される第１のα値により第１のエフェクト色をグラデーション変化させる例を挙げて説明したが、これに限らず、第１のエフェクト色がグラデーション変化するグラデーションテクスチャを用意しておき、これを第１のポリゴンにテクスチャマッピングするようにしてもよい。この場合には、グラデーションテクスチャのα値、又はポリゴンの頂点に設定されたα値、又はグラデーションテクスチャのα値とポリゴンの頂点に設定されたα値の乗算結果としてのα値に基づいて、エフェクト色としてのテクスチャの色と視界画像の色とをαブレンディングすることができる。
【０１３２】
なお、グラデーションテクスチャを用いる場合には、奥行き値に応じた第２のα値を反映させるために、マルチテクスチャマッピングの手法を用いて、グラデーションテクスチャとインデックステクスチャをマルチテクスチャマッピングするようにすればよい。
【０１３３】
また、ゲーム状況（ゲーム上の仮想時間情報、実時間情報、入力情報やプログラムに基づき発生したゲームイベントの種類、ゲーム上に設定される気候等）に応じて、エフェクト色の種類や変化特性、グラデーション領域Gの範囲、グラデーション領域Gを設定するための高さ情報OHを変化させてもよい。ここで、エフェクト色の種類や変化特性を変化させる場合には、例えば、第1のエフェクト色用のＬＵＴ１と第２のエフェクト色用のＬＵＴ２に設定されるR、G、B成分やα値の変化特性を変化させたり、ルックアップテーブルＬＵＴを複数用意しておき、用いるＬＵＴを変更すればよい。また、グラデーション領域Gの範囲を変化させる場合には、例えば、第１のポリゴンの縦幅を変更設定して描画すればよい。かかる構成を採用すれば、ゲーム状況に応じて、朝から夕方までの時間的変化や、天候の変化等を表現することができる。また、仮想カメラの制御情報に応じて、エフェクト色の種類や変化特性、グラデーション領域Gの範囲を変化させるようにしてもよい。
【０１３４】
また、α値のブレンディング手法も、本実施形態で説明した手法に限定されず、種々の変形実施が可能である。
【０１３５】
また、本発明は種々のゲーム（格闘ゲーム、競争ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、ロールプレイングゲーム等）にも適用することができる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム（ゲームシステム）に適用することができる。
【０１３６】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【図面の簡単な説明】
【０１３７】
【図１】本実施形態の画像生成システムの機能ブロック図の例。
【図２】Ｚ値に応じたα値に基づいてエフェクト色を反映させる手法の説明図。
【図３】インデックスカラー・テクスチャマッピングについての説明図。
【図４】インデックスカラー・テクスチャマッピングについての説明図。
【図５】本実施形態のＬＵＴの説明図。
【図６】本実施形態の手法で生成された視界画像の例。
【図７】本実施形態の手法で生成された中間画像の例。
【図８】本実施形態の手法で生成されたポストエフェクト処理後の視界画像の例。
【図９】本実施形態の手法で生成された中間画像の例。
【図１０】本実施形態のＬＵＴの説明図。
【図１１】本実施形態の手法で生成された中間画像の例。
【図１２】本実施形態の手法で生成されたポストエフェクト処理後の視界画像の例。
【図１３】本実施形態の画像生成の手法の説明図。
【図１４】本実施形態の処理の詳細例。
【図１５】ハードウェア構成例。
【符号の説明】
【０１３８】
ＩＣＰ  視界画像の色
ＺＰ  視界画像のＺ値
ＦＣＰ  フォグの色
αＰ  フォグのα値
ＬＵＴ  ルックアップテーブル
Ｄ  奥行き距離情報
１００  処理部
１２０  描画部
１２２  視界画像生成部
１２４  ポストエフェクト処理部
１７０  記憶部
１７２  描画バッファ
１７４  テクスチャ記憶部
１７６  Ｚバッファ
１７９  ＬＵＴ記憶部
１９０  表示部
【図１】
0004804120.tif 000002
【図２】
0004804120.tif 000003
【図３】
0004804120.tif 000004
【図４】
0004804120.tif 000005
【図５】
0004804120.tif 000006
【図９】
0004804120.tif 000007
【図１０】
0004804120.tif 000008
【図１３】
0004804120.tif 000009
【図１４】
0004804120.tif 000010
【図１５】
0004804120.tif 000011
【図６】
0004804120.tif 000012
【図７】
0004804120.tif 000013
【図８】
0004804120.tif 000014
【図１１】
0004804120.tif 000015
【図１２】
0004804120.tif 000016