(57)【要約】【課題】法線方向の変化と描画ピクセルの色の変化とを関連づけるようにした画像生成システム、プログラム及び情報記憶媒体を提供すること。【解決手段】オブジェクト空間を所与の視点から見た画像を生成するための画像生成システムである。この画像生成システムは、オブジェクト空間にオブジェクトを配置するオブジェクト空間設定部１１０と、オブジェクトを構成するプリミティブの描画ピクセルにおける第１テクスチャの参照先と第２テクスチャの参照先とを設定するテクスチャマッピング部１２２と、第１テクスチャの参照先として設定された第１テクスチャのテクセルの値を参照して描画ピクセルの法線方向を設定し、第２テクスチャの参照先として設定された第２テクスチャのテクセルの値を参照して描画ピクセルの色を設定するテクスチャ設定部１２４とを含み、テクスチャマッピング部１２２が、描画ピクセルの法線方向と基準方向とに応じて、当該描画ピクセルにおける第２テクスチャの参照先を設定する。【選択図】図５
2010033299.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト空間を所与の視点から見た画像を生成するためのプログラムであって、
前記オブジェクト空間にオブジェクトを配置するオブジェクト空間設定部と、
前記オブジェクトを構成するプリミティブの描画ピクセルにおける第１テクスチャの参照先と第２テクスチャの参照先とを設定するテクスチャマッピング部と、
前記第１テクスチャの参照先として設定された前記第１テクスチャのテクセルの値を参照して前記描画ピクセルの法線方向を設定し、前記第２テクスチャの参照先として設定された前記第２テクスチャのテクセルの値を参照して前記描画ピクセルの色を設定するテクスチャ設定部としてコンピュータを機能させ、
前記テクスチャマッピング部が、
前記描画ピクセルの法線方向と基準方向とに応じて、当該描画ピクセルにおける前記第２テクスチャの参照先を設定することを特徴とするプログラム。
【請求項２】
請求項１において、
前記テクスチャマッピング部が、
前記描画ピクセルの前記法線方向と前記基準方向との内積に応じて、当該描画ピクセルにおける前記第２テクスチャの参照先を設定することを特徴とするプログラム。
【請求項３】
請求項１または２において、
前記テクスチャマッピング部が、
前記描画ピクセルの前記法線方向と前記基準方向との差に応じて、当該描画ピクセルにおける前記第２テクスチャの参照先を設定することを特徴とするプログラム。
【請求項４】
請求項１〜３のいずれかにおいて、
前記テクスチャマッピング部が、
前記第１テクスチャの参照先を時間経過とともに変化させることを特徴とするプログラム。
【請求項５】
コンピュータにより読み取り可能な情報記憶媒体であって、請求項１〜４のいずれかに記載されたプログラムを記憶することを特徴とする情報記憶媒体。
【請求項６】
オブジェクト空間を所与の視点から見た画像を生成するための画像生成システムであって、
前記オブジェクト空間にオブジェクトを配置するオブジェクト空間設定部と、
前記オブジェクトを構成するプリミティブの描画ピクセルにおける第１テクスチャの参照先と第２テクスチャの参照先とを設定するテクスチャマッピング部と、
前記第１テクスチャの参照先として設定された前記第１テクスチャのテクセルの値を参照して前記描画ピクセルの法線方向を設定し、前記第２テクスチャの参照先として設定された前記第２テクスチャのテクセルの値を参照して前記描画ピクセルの色を設定するテクスチャ設定部とを含み、
前記テクスチャマッピング部が、
前記描画ピクセルの法線方向と基準方向とに応じて、当該描画ピクセルにおける前記第２テクスチャの参照先を設定することを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【背景技術】
【０００２】
従来より、仮想的な３次元空間であるオブジェクト空間において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。格闘ゲームを楽しむことができる画像生成システムを例に取れば、プレーヤは、操作部（ゲームコントローラ等）を用いて移動体（キャラクタ等）に関する操作（攻撃操作、防御操作、移動操作等）を行い、他のプレーヤ（コンピュータプレーヤも含まれる）の移動体と格闘するゲームを楽しむ。
【０００３】
ところで、上述した画像生成システムに関して、平面を構成するプリミティブに法線をマッピングして光源計算により陰影をつけることにより、人間が笑ったときにできる顔のしわなどの凹凸を表現する手法が提案されている（特許文献１参照）。
【特許文献１】特開２００８−１４０３８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来から提案されている手法では、光源計算により皮膚の色に陰影がつけられるように皮膚の色を示すデカールテクスチャの色が調整されるが、しわが発生することによる皮膚の移動に合わせてデカールテクスチャの参照先が変更されることはなかったので、描写状況によっては画像が不自然にみえることがあった。
【０００５】
本出願は上記事情に鑑みてなされたものであり、その目的は、法線方向の変化と描画ピクセルの色の変化とを関連づけるようにした画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００６】
（１）本発明は、
オブジェクト空間を所与の視点から見た画像を生成するための画像生成システムであって、
前記オブジェクト空間にオブジェクトを配置するオブジェクト空間設定部と、
前記オブジェクトを構成するプリミティブの描画ピクセルにおける第１テクスチャの参照先と第２テクスチャの参照先とを設定するテクスチャマッピング部と、
前記第１テクスチャの参照先として設定された前記第１テクスチャのテクセルの値を参照して前記描画ピクセルの法線方向を設定し、前記第２テクスチャの参照先として設定された前記第２テクスチャのテクセルの値を参照して前記描画ピクセルの色を設定するテクスチャ設定部とを含み、
前記テクスチャマッピング部が、
前記描画ピクセルの法線方向と基準方向とに応じて、当該描画ピクセルにおける前記第２テクスチャの参照先を設定することを特徴とする画像生成システムに関するものである。また本発明は、上記各部としてコンピュータを機能させるプログラム及びそのようなプログラムを記憶するコンピュータが読み取り可能な情報記憶媒体に関するものである。
【０００７】
本発明では、描画ピクセルに対応する法線方向と基準方向とに応じて、当該描画ピクセルにおける第２テクスチャの参照先を変化させる。これにより本実施形態では、法線方向の変化を利用して描画ピクセルの色を変化させることができるとともに、法線方向の変化と描画ピクセルの色の変化とを関連づけることができる。
【０００８】
（２）また本発明の画像生成システム、プログラム及び情報記憶媒体では、
前記テクスチャマッピング部が、
前記描画ピクセルの前記法線方向と前記基準方向との内積に応じて、当該描画ピクセルにおける前記第２テクスチャの参照先を設定するようにしてもよい。
【０００９】
このようにすれば、描画ピクセルの法線方向と基準方向との内積の変化に応じて、当該描画ピクセルにおける第２テクスチャの参照先を変化させることができる。
【００１０】
（３）また本発明の画像生成システム、プログラム及び情報記憶媒体では、
前記テクスチャマッピング部が、
前記描画ピクセルの前記法線方向と前記基準方向との差に応じて、当該描画ピクセルにおける前記第２テクスチャの参照先を設定するようにしてもよい。
【００１１】
このようにすれば、描画ピクセルの法線方向と基準方向との差の変化に応じて、当該描画ピクセルにおける第２テクスチャの参照先を変化させることができる。
【００１２】
（４）また本発明の画像生成システム、プログラム及び情報記憶媒体では、
前記テクスチャマッピング部が、
前記第１テクスチャの参照先を時間経過とともに変化させるようにしてもよい。
【００１３】
このようにすれば、時間経過に応じて描画ピクセルにおける第２テクスチャの参照先を変化させることができる。
【発明を実施するための最良の形態】
【００１４】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００１５】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００１６】
操作部１６０は、プレーヤがプレーヤオブジェクト（移動体オブジェクトの一例、プレーヤが操作するプレーヤキャラクタなど）の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（メインメモリ１７２）、ＶＲＡＭ（ビデオメモリ１７４）などにより実現できる。
【００１７】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００１８】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００１９】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００２０】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０のメインメモリ１７２）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００２１】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０内のメインメモリ１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ（メインプロセッサ）、ＧＰＵ（描画プロセッサ）、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００２２】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００２３】
オブジェクト空間設定部１１０は、オブジェクトデータ記憶部１７２に記憶されているオブジェクトデータに基づいて、キャラクタ、車、建物、樹木、柱、壁、コース（道路）、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）や、光が進行する方向や強さや色を示す光源をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、決定された位置（Ｘ、Ｙ、Ｚ）に決定された回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトや光源を配置する。
【００２４】
移動・動作処理部１１２は、オブジェクト（キャラクタ、車、又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。すなわち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００２５】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。
【００２６】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報（所定の制御情報の一例）に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させたりする制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータ（所定の制御情報の一例）に基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００２７】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）がオブジェクトデータ記憶部１７２Ｂから入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセル（画素）とが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色をレンダリングターゲット（ピクセル単位で画像情報を記憶できるバッファ。メインメモリ１７２のフレームバッファ１７２Ｂ、ビデオメモリ１７４のワークバッファ１７４Ｃやフレームバッファ１７４Ｄ）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色（色値、輝度値）、法線、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００２８】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００２９】
そして描画部１２０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００３０】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、メインメモリ１７２のオブジェクトデータ記憶部１７２Ａに保存される。
【００３１】
テクスチャマッピングは、ビデオメモリ１７４のデカールテクスチャ記憶部１７４Ａに記憶されるデカールテクスチャなどのテクスチャ（テクセル値、ＵＶ座標値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いてビデオメモリ１７４のデカールテクスチャ記憶部１７４Ａからテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間、トライリニア補間などを行う。
【００３２】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７４Ｂ（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファ１７４Ｂに格納されるＺ値を参照する。そして参照されたＺバッファのＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファ１７４ＢのＺ値を新たなＺ値に更新する。
【００３３】
αブレンディングとしては、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）を行う。例えば通常αブレンディングの場合には下式（１）〜（３）の処理を行う。
【００３４】
ＲＱ＝（１−α）×Ｒ１＋α×Ｒ２    （１）
ＧＱ＝（１−α）×Ｇ１＋α×Ｇ２    （２）
ＢＱ＝（１−α）×Ｂ１＋α×Ｂ２    （３）
また、加算αブレンディングの場合には下式（４）〜（６）の処理を行う。なお単純加算の場合はα＝１として下式（４）〜（６）の処理を行う。
【００３５】
ＲＱ＝Ｒ１＋α×Ｒ２                （４）
ＧＱ＝Ｇ１＋α×Ｇ２                （５）
ＢＱ＝Ｂ１＋α×Ｂ２                （６）
また、減算αブレンディングの場合には下式（７）〜（９）の処理を行う。なお単純減算の場合はα＝１として下式（７）〜（９）の処理を行う。
【００３６】
ＲＱ＝Ｒ１−α×Ｒ２                （７）
ＧＱ＝Ｇ１−α×Ｇ２                （８）
ＢＱ＝Ｂ１−α×Ｂ２                （９）
ここで、Ｒ１、Ｇ１、Ｂ１は、フレームバッファ１７２Ｂあるいはフレームバッファ１７４Ｄに既に描画されている画像（原画像）のＲＧＢ成分であり、Ｒ２、Ｇ２、Ｂ２は、フレームバッファ１７２Ｂあるいはフレームバッファ１７４Ｄに描画すべき画像のＲＧＢ成分である。また、ＲＱ、ＧＱ、ＢＱは、αブレンディングにより得られる画像のＲＧＢ成分である。なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００３７】
そして本実施形態では描画部１２０は、上述したテクスチャマッピング処理を行うテクスチャマッピング部１２２と、テクセルの値を参照して描画ピクセルの法線と色とを設定するテクスチャ設定部１２４とを更に含む。
【００３８】
テクスチャマッピング部１２２は、オブジェクトを構成するプリミティブの描画ピクセルにおける第１テクスチャの参照先と第２テクスチャの参照先を設定する。
【００３９】
ここで第１テクスチャは、各テクセルについてＲＧＢ成分の輝度値の代わりにモデル座標系における座標値（ｘ，ｙ，ｚ）が設定されることにより、テクセル毎に法線（法線として扱われる単位ベクトル、法線方向の一例）が格納されたノーマルマップ（法線ＵＶ情報）となっている。特に本実施形態の第１テクスチャは、波打つように様々な方向を向く法線が各テクセルに格納されている。そしてテクスチャマッピング部１２２は、第１テクスチャの参照先を時間経過とともに変化させる。
【００４０】
また第２テクスチャは、各テクセルについてＲＧＢ成分の輝度値が設定されることにより、水面と水面を通して見える水中（水底）の様子や、旗など変形部分が変化しながら変形するような物が静止している状態を示すデカールテクスチャ（色ＵＶ情報）となっている。
【００４１】
テクスチャ設定部１２４は、描画ピクセルにおける第１テクスチャの参照先として設定された第１テクスチャのテクセルの値を参照して当該描画ピクセルの法線方向を設定し、描画ピクセルにおける第２テクスチャの参照先として設定された第２テクスチャのテクセルの値を参照して当該描画ピクセルの色を設定する。
【００４２】
特に本実施形態では、テクスチャマッピング部１２２は、描画ピクセルにおける参照先として設定された第１テクスチャのテクセルの値によって規定される法線方向と基準方向とに応じて、当該描画ピクセルにおける第２テクスチャの参照先を設定する。詳細にはテクスチャマッピング部１２２は、描画ピクセルの法線方向と基準方向との内積に応じて、当該描画ピクセルにおける第２テクスチャの参照先を設定する。またテクスチャマッピング部１２２は、描画ピクセルの法線方向と基準方向との差に応じて、当該描画ピクセルにおける第２テクスチャの参照先を設定する。
【００４３】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００４４】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００４５】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。本実施形態では、描画ピクセルにおける参照先として設定された第１テクスチャのテクセルの値によって規定される法線方向と基準方向とに応じて、当該描画ピクセルにおける第２テクスチャの参照先を設定する手法を採用する。これにより本実施形態では、法線方向の変化を利用して描画ピクセルの色を変化させて、法線方向の変化と描画ピクセルの色の変化を関連づけるようにしている。
【００４６】
図２（Ａ）は、第１テクスチャをオブジェクトにマッピングすることにより表現される画像効果を説明するための図である。図２（Ａ）に示すように、第１テクスチャＴＸ１の各テクセルには、様々な方向を向いた法線ｎｒが格納されている。そして、平面を示すオブジェクトＯＢの頂点に設定された第１テクスチャＴＸ１用のテクスチャ座標値（第１ＵＶ座標値）に基づいて、オブジェクトＯＢを構成するプリミティブの描画ピクセルにおける第１テクスチャＴＸ１の参照先が設定（マッピング）されると、第１テクスチャＴＸ１の各テクセルに格納された法線が、オブジェクトＯＢを構成するプリミティブの描画ピクセルの法線として設定される。また、第２のテクスチャＴＸ２には、水面と水面を通して見える水中の様子を示す画像が格納されている。そして、平面を示すオブジェクトＯＢの頂点に設定された第２テクスチャＴＸ２用のテクスチャ座標値（第２ＵＶ座標値）に基づいて、オブジェクトＯＢを構成するプリミティブの描画ピクセルにおける第２テクスチャＴＸ２の参照先が設定（マッピング）されると、第２テクスチャＴＸ２の各テクセルに格納された色が、オブジェクトＯＢを構成するプリミティブの描画ピクセルの色として設定される。
【００４７】
そして本実施形態の第１テクスチャＴＸ１では、平面であるオブジェクトＯＢが、図２（Ａ）の上段に示すような波形の断面形状を有しているかのように光源計算により第２のテクスチャＴＸ２の色が調整されるように、各テクセルに法線が設定されている。すなわち、第１テクスチャＴＸ１の基準面に対して垂直な法線ｎｒ（０，０，１）が描画ピクセルについて設定されると、基準面に対して平行な面であるように（単位ベクトルが法線となるように）光源計算により第２のテクスチャＴＸ２の色が調整される。また、基準面に対して垂直でない法線ｎｒ（ｘ，ｙ，ｚ）が描画ピクセルについて設定されると、基準面に対して平行でない面であるように（単位ベクトルが法線となるように）光源計算により第２のテクスチャＴＸ２の色が調整される。
【００４８】
本実施形態では、第２のテクスチャＴＸ２の色が調整されることにより、光源からの光が強く反射されている領域と、光が弱く反射されている領域と、光が反射されずに水底が見える領域とが描画される。こうして図２（Ａ）の上段に示すように、オブジェクトＯＢが平面であっても、水面に穏やかな波がたっているかのように凹凸（陰影）が表現された画像が生成される。
【００４９】
特に第１テクスチャＴＸ１の参照先は、オブジェクトＯＢの頂点に設定された第１テクスチャＴＸ１用のテクスチャ座標値にフレーム毎に１が加算されることにより変化する（時間経過とともに変化することの一例）。これにより本実施形態では、図２（Ｂ）に示すように、次のフレームでは各描画ピクセルにおける法線が変化するため、光源からの光が強く反射されている領域と、光が弱く反射されている領域と、光が反射されずに水底が見える領域とが変化する。従って本実施形態では、水面の波が移動している様子が表現される。
【００５０】
ここで、現実世界においては水面に波がたつと、波の形状に応じて水面を通して見える水中の様子がゆがんで見え、波が移動すると、波の移動に応じて水中の様子のゆがみ方が変化する。しかし、フレーム毎にプリミティブの各描画ピクセルにおける法線が変化しただけでは、水中の様子のゆがみは表現されない。そこで本実施形態では、描画ピクセルにおける法線に応じて、その描画ピクセルにおける第２テクスチャＴＸ２の参照先が、オブジェクトＯＢの頂点に設定された第２テクスチャＴＸ２用のテクスチャ座標値に基づいて設定される元の参照先から変更されることにより、水中の様子のゆがみが表現されるようにしている。
【００５１】
図３は、描画ピクセルにおける法線に応じて第２のテクスチャＴＸ２の参照先を変更するためのずらしベクトルの演算手法を説明するための図である。図３に示すように、本実施形態では、水面を示すオブジェクトＯＢの描画ピクセルに設定された第１テクスチャＴＸ１の法線ｎｒ（ｘ，ｙ，ｚ）と、ｘｙ平面に対して垂直な基準ベクトルｎｓ（０，０，１）（基準方向の一例）との内積Ａが求められる。本実施形態では、法線ｎｒと基準ベクトルｎｓとがなす角度をθ（−９０°≦θ≦９０°）とすると、内積Ａが、Ａ＝ｎｒ・ｎｓ＝ｃｏｓθのようにして求められる。
【００５２】
そして、第２のテクスチャＴＸ２の参照先を変更するためのずらしベクトルｓが、内積Ａと、法線ｎｒと基準ベクトルｎｓとのｘｙ平面上での差（法線ｎｒのｘ座標値とｙ座標値）である差分ベクトル（ｘ，ｙ）を単位ベクトルに正規化したずれ方向（ｘｎ，ｙｎ）＝（ｘ／√（ｘ＾２＋ｙ＾２），ｙ／√（ｘ＾２＋ｙ＾２））とに基づいて求められる。本実施形態では、図３に示すように、所定の係数をＢとし、ずらしベクトルｓ＝Ａ×Ｂ×（ｘｎ，ｙｎ）＝（Ａ×Ｂ×ｘｎ，Ａ×Ｂ×ｙｎ）のようにしてずらしベクトルｓが求められる。そして、このようなずらしベクトルｓ＝（Ａ×Ｂ×ｘｎ，Ａ×Ｂ×ｙｎ）が、第２テクスチャＴＸの元の参照先（ｕ，ｖ）に加算されて、ずらし後の参照先が（ｕ，ｖ）＋（Ａ×Ｂ×ｘｎ，Ａ×Ｂ×ｙｎ）＝（ｕ＋Ａ×Ｂ×ｘｎ，ｖ＋Ａ×Ｂ×ｙｎ）のようにして求められる。
【００５３】
図４（Ａ）〜（Ｅ）は、法線ｎｒと基準ベクトルｎｓとがなす角度θに応じたずらしベクトルｓを示す図である。なお、図４（Ａ）〜（Ｅ）では、説明を簡単にするため、ｘｚ平面上で変化する法線ｎｒ、すなわち法線ｎｒのｙ成分が０となるものを例に挙げて説明する。
【００５４】
まず図４（Ａ）の例では、描画ピクセルの法線ｎｒと基準ベクトルｎｓとがなす角度θが０°となっているので、Ａ＝ｎｒ・ｎｓ＝ｃｏｓθ＝１となる。そして、法線ｎｒと基準ベクトルｎｓとのｘｙ平面上での差分ベクトルが（０，０）となっているので、ずれ方向（ｘｎ，ｙｎ）＝（０，０）となる。従って、ずらしベクトルｓ＝Ａ×Ｂ×（ｘｎ，ｙｎ）＝（０，０）となる。すなわち、描画ピクセルの法線ｎｒと基準ベクトルｎｓとがなす角度θが０°である場合には、内積Ａは最大値となるがずれ方向が（０，０）であるため、第２テクスチャＴＸ２の参照先が、元の参照先から変更されない。
【００５５】
また図４（Ｂ）の例では、描画ピクセルの法線ｎｒと基準ベクトルｎｓとがなす角度θが３０°となっているので、Ａ＝ｎｒ・ｎｓ＝ｃｏｓθ＝０．８６６となる。そして、法線ｎｒと基準ベクトルｎｓとのｘｙ平面上での差分ベクトルが（０．５，０）となっているので、ずれ方向（ｘｎ，ｙｎ）＝（１，０）となる。従って、ずらしベクトルｓ＝Ａ×Ｂ×（ｘ，ｙ）＝（０．８６６Ｂ，０）となる。すなわち、描画ピクセルの法線ｎｒと基準ベクトルｎｓとがなす角度θが３０°である場合には、第２テクスチャＴＸ２の参照先が元の参照先から、相対的に大きな内積Ａに応じた量（０．８６６Ｂ）でずれ方向（１，０）に変更される。
【００５６】
また図４（Ｃ）の例では、描画ピクセルの法線ｎｒと基準ベクトルｎｓとがなす角度θが４５°となっているので、Ａ＝ｎｒ・ｎｓ＝ｃｏｓθ＝０．７０７となる。そして、法線ｎｒと基準ベクトルｎｓとのｘｙ平面上での差分ベクトルが（０．７０７，０）となっているので、ずれ方向（ｘｎ，ｙｎ）＝（１，０）となる。従って、ずらしベクトルｓ＝Ａ×Ｂ×（ｘ，ｙ）＝（０．７０７Ｂ，０）となる。すなわち、描画ピクセルの法線ｎｒと基準ベクトルｎｓとがなす角度θが４５°である場合には、第２テクスチャＴＸ２の参照先が元の参照先から、相対的に中程度の内積Ａに応じた量（０．７０７Ｂ）でずれ方向（１，０）に変更される。
【００５７】
また図４（Ｄ）の例では、描画ピクセルの法線ｎｒと基準ベクトルｎｓとがなす角度θが６０°となっているので、Ａ＝ｎｒ・ｎｓ＝ｃｏｓθ＝０．５となる。そして、法線ｎｒと基準ベクトルｎｓとのｘｙ平面上での差分ベクトルが（０．８６６，０）となっているので、ずれ方向（ｘｎ，ｙｎ）＝（１，０）となる。従って、ずらしベクトルｓ＝Ａ×Ｂ×（ｘ，ｙ）＝（０．５Ｂ，０）となる。すなわち、描画ピクセルの法線ｎｒと基準ベクトルｎｓとがなす角度θが６０°である場合には、第２テクスチャＴＸ２の参照先が元の参照先から、相対的に小さな内積Ａに応じた量（０．５Ｂ）でずれ方向（１，０）に変更される。
【００５８】
また図４（Ｅ）の例では、描画ピクセルの法線ｎｒと基準ベクトルｎｓとがなす角度θが９０°となっているので、Ａ＝ｎｒ・ｎｓ＝ｃｏｓθ＝０となる。そして、法線ｎｒと基準ベクトルｎｓとのｘｙ平面上での差分ベクトルが（１，０）となっているので、ずれ方向（ｘｎ，ｙｎ）＝（１，０）となる。従って、ずらしベクトルｓ＝Ａ×Ｂ×（ｘｎ，ｙｎ）＝（０，０）となる。すなわち、描画ピクセルの法線ｎｒと基準ベクトルｎｓとがなす角度θが９０°である場合には、内積Ａが０であるため、第２テクスチャＴＸ２の参照先が、元の参照先から変更されない。
【００５９】
図５（Ａ）は、描画ピクセルにおける法線に応じて第２のテクスチャＴＸ２の参照先が変更される様子を示す図である。図５に示すように、本実施形態では、法線ｎｒが基準ベクトルｎｓに対してマイナス方向に傾いている場合には、すなわち図中左方向に傾いている場合には、ずらしベクトルｓによって第２のテクスチャＴＸ２の参照先が元の参照先からマイナス方向に、すなわち図中左方向に変更される。一方、法線ｎｒが基準ベクトルｎｓに対してプラス方向に傾いている場合には、すなわち図中右方向に傾いている場合には、ずらしベクトルｓによって第２のテクスチャＴＸ２の参照先が元の参照先からプラス方向に、すなわち図中右方向に変更される。
【００６０】
従って、隣り合う描画ピクセルにおける法線ｎｒが互いに離れる方向に設定されている領域αでは、隣り合う描画ピクセルにおける第２のテクスチャＴＸ２の参照先も互いに離れるように設定され、第２テクスチャＴＸ２の色が拡大されるように第２テクスチャＴＸ２の色が描画ピクセルに設定される。一方、隣り合う描画ピクセルにおける法線ｎｒが互いに近づく方向に設定されている領域βでは、隣り合う描画ピクセルにおける第２のテクスチャＴＸ２の参照先も互いに近づくように設定され、第２テクスチャＴＸ２の色が縮小されるように第２テクスチャＴＸ２の色が描画ピクセルに設定される。これにより、光源計算により表現される波の形状に応じて、水面を通して見える水底の様子がゆがんで見えるように、第２テクスチャＴＸ２の色が描画ピクセルに設定される。
【００６１】
そして、図５（Ｂ）に示すように、次のフレームにおいて各描画ピクセルにおける法線が変化すると、第２テクスチャＴＸ２の色が拡大されるように第２テクスチャＴＸ２の色が描画ピクセルに設定される領域と、第２テクスチャＴＸ２の色が縮小されるように第２テクスチャＴＸ２の色が描画ピクセルに設定される領域との位置関係が変化する。これにより、光源計算により表現される波の移動に応じて水底の様子のゆがみ方が変化するように、第２テクスチャＴＸ２の色が描画ピクセルに設定される。
【００６２】
図６は、第１テクスチャＴＸ１のテクセルに設定され得る法線ｎｒの範囲と、各法線ｎｒにより設定されるずらしベクトルｓとの関係を、ｘｚ平面において示した図である。本実施形態では、法線ｎｒの座標値（ｘ，ｚ）が、−１≦ｘ≦１、０≦ｚ≦１の範囲で変化する。従って、ｘｚ平面において法線ｎｒの座標値（ｘ，ｚ）が取り得る範囲は、図６に示すような（−１，０）、（０，１）、（１，０）を通る円弧となる。
【００６３】
そして、描画ピクセルについて、基準ベクトルｎｓとのなす角度θが相対的に小さい法線ベクトルｎｒ１が設定された場合には、その描画ピクセルについては、相対的に大きいずらしベクトルｓ１が設定される。一方、描画ピクセルについて、基準ベクトルｎｓとのなす角度θが相対的に大きい法線ベクトルｎｒ２が設定された場合には、その描画ピクセルについては、相対的に小さいずらしベクトルｓ２が設定される。すなわち図６に示すように、法線ベクトルｎｒのｘ座標値が０から離れるにつれて、ずらしベクトルｓの大きさが次第に小さくなる。従って本実施形態では、図６の矢印に示すように、あたかも視線方向に対する水面の形状（接線の傾斜）に応じて光が屈折しているかのように、第２のテクスチャＴＸ２の参照先を変更して描画ピクセルに色を設定することができる。
【００６４】
図７は、第１テクスチャＴＸ１のテクセルに設定され得る法線ｎｒの範囲と、各法線ｎｒにより設定されるずらしベクトルｓとの関係を、ｚ方向（真上）から見たｘｙｚ空間において示した図である。本実施形態では、法線ｎｒの座標値（ｙ）も、−１≦ｙ≦１の範囲で変化する。すなわち、法線ｎｒの座標値（ｘ，ｙ，ｚ）が、−１≦ｘ≦１、−１≦ｙ≦１、０≦ｚ≦１の範囲で変化する。従って、ｘｙｚ空間において法線ｎｒの座標値（ｘ，ｙ，ｚ）が取り得る範囲は、図７に示すような（−１，０，０）、（０，１，０）、（１，０，０）、（０，−１，０）、（０，０，１）を通る半球となる。
【００６５】
そして、描画ピクセルについて、基準ベクトルｎｓとのなす角度θが相対的に小さい法線ベクトルｎｒ３が設定された場合には、その描画ピクセルについては、相対的に大きいずらしベクトルｓ３が設定される。一方、描画ピクセルについて、基準ベクトルｎｓとのなす角度θが相対的に大きい法線ベクトルｎｒ４が設定された場合には、その描画ピクセルについては、相対的に小さいずらしベクトルｓ４が設定される。すなわち図７に示すように、法線ベクトルｎｒのｘ座標値とｙ座標値とが（０，０）から離れるにつれて、ずらしベクトルｓの大きさが次第に小さくなる。従って本実施形態では、図７に示すように、あたかも視線方向に対する水面の形状（接線の傾斜）に応じて光が３次元的に屈折しているかのように、第２のテクスチャＴＸ２の参照先を変更して色を描画ピクセルに設定することができる。
【００６６】
図８（Ａ）は、本実施形態の手法により生成した画像の一例を示す図である。図８（Ａ）の例では、水中から枯れ木が水面上に突出している状況が描画されているが、水面と水面下の枯れ木などの水面下の様子とは、図８（Ｂ）に示すように、ゆがんでいない状態における水面と水面下の様子とが描かれた第２テクスチャＴＸ２が用いられて描画されている。そして、第１テクスチャＴＸ１の法線ｎｒが参照されて光源計算が行われることにより、第２テクスチャＴＸ２の色が調整されて水面に穏やかな波がたっている様子が表現されている。そして、第１テクスチャＴＸ１の法線ｎｒが参照されてずらしベクトルｓが求められることにより、第２テクスチャＴＸ２の参照先が変更されて、水面を通して見える水面下の枯れ木が波に応じてゆがんで見えている様子が表現されている。
【００６７】
また、図９（Ａ）の例では、旗が風になびいてはためいている状況が描画されているが、この旗は、図９（Ｂ）に示すように、背景部分が透明になっており、はためいていない状態における三角形の旗が描かれた第２テクスチャＴＸ２が用いられて描画されている。そして、第１テクスチャＴＸ１の法線ｎｒが参照されて光源計算が行われることにより、第２テクスチャＴＸ２の色が調整されてはためいている旗の陰影が表現されている。そして、第１テクスチャＴＸ１の法線ｎｒが参照されてずらしベクトルｓが求められることにより、第２テクスチャＴＸ２の参照先が変更されて、はためいている旗の輪郭が表現されている。
【００６８】
３．本実施形態の処理
次に、本実施形態の処理の一例について図１０のフローチャートを用いて説明する。図１０に示すように、本実施形態では、まず、フレームの更新タイミングが到来すると（ステップＳ１０でＹ）、頂点処理が行われることによりスクリーンにオブジェクトが投影される（ステップＳ１２）。そして、プリミティブの頂点に設定された第１テクスチャＴＸ１用のテクスチャ座標値に１が加算されることにより、第１テクスチャＴＸ１の参照先がスクロールされる（ステップＳ１４）。そして、プリミティブの描画ピクセルについて第１テクスチャの参照先が求められる（ステップＳ１６）。すると、第１テクスチャＴＸ１の参照先のテクセルの法線ｎｒが描画ピクセルに設定される（ステップＳ１８）。そして、描画ピクセルの法線ｎｒと基準ベクトルｎｓとの内積Ａが求められ（ステップＳ２０）、描画ピクセルの法線ｎｒと基準ベクトルｎｓとのｘｙ平面上のずれ方向（ｘｎ，ｙｎ）が求められ（ステップＳ２２）、内積Ａとずれ方向（ｘｎ，ｙｎ）とに基づいてずらしベクトルｓ（Ａ×Ｂ×ｘｎ，Ａ×Ｂ×ｙｎ）が求められる（ステップＳ２４）。すると、第２テクスチャＴＸ２の参照先がずらしベクトルｓ（Ａ×Ｂ×ｘｎ，Ａ×Ｂ×ｙｎ）に基づきずらされたずらし参照先が求められ（ステップＳ２６）、第２テクスチャＴＸ２のずらし参照先のテクセルの色が描画ピクセルに設定される（ステップＳ２８）。
【００６９】
４．ハードウェア構成例
本実施形態の画像生成システムを実現するハードウェアの構成の一例について図１１を用いて説明する。なお図１１では、主要な構成のみを図示しており、図１１に示されていないハードウェア（メモリコントローラやスピーカなど）を必要に応じて設けることができる。
【００７０】
メインプロセッサ１０は、光ディスク７２（ＣＤ、ＤＶＤ、ブルーレイディスク等の情報記憶媒体）に格納されたプログラム、通信インターフェース８０を介して転送されたプログラム、或いはハードディスク６０に格納されたプログラムなどに基づき動作し、内部バスｂ４を介してアクセス可能なメインメモリ４０を作業領域（ワーク領域）としてゲーム処理、画像処理、音処理などの種々の処理を実行する。
【００７１】
メインプロセッサ１０は、１基のプロセッサ１２と複数のベクトルプロセッサ１４で構成される。プロセッサ１２は、ＯＳの実行、ハードウェアリソースの管理、ゲーム処理、ベクトルプロセッサ１４の動作管理などの種々の処理を実行する。またベクトルプロセッサ１４は、ベクトル演算に特化したプロセッサであり、主にジオメトリ処理、画像データや音データのコーデック処理などの処理を実行する。
【００７２】
描画プロセッサ２０は、内部バスｂ１（第１の内部バス）を介してビデオメモリ３０にアクセス可能に形成されている。また描画プロセッサ２０は、描画プロセッサ２０とメインプロセッサ１０を接続する内部バスｂ２（第２の内部バス）と、メインプロセッサ１０内部のバスｂ３と、メインプロセッサ１０とメインメモリ４０を接続する内部バスｂ４を介してメインメモリ４０にアクセス可能に形成されている。すなわち描画プロセッサ２０はビデオメモリ３０と、メインメモリ４０とをレンダリングターゲットとして利用することができる。
【００７３】
描画プロセッサ２０は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ１０で動作するプログラムが、その処理を描画プロセッサ２０に指示する。
【００７４】
また描画プロセッサ２０は、ジオメトリ処理後のオブジェクト（ポリゴンや曲面などのプリミティブ面で構成されるオブジェクト）の画像のレンダリング処理を高速に実行するものである。マルチパスレンダリング処理の際には、描画プロセッサ２０は、描画データ（頂点データや他のパラメータ）等に基づいて、Ｚバッファ３４などを利用した陰面消去を行いながら、画像をビデオメモリ３０又はメインメモリ４０の一方のメモリにレンダリングする。そしてビデオメモリ３０又はメインメモリ４０の一方のメモリに記憶された画像に基づき他方のメモリに新たな画像をレンダリングする処理を必要なレンダリングパスの回数だけ行う。描画プロセッサ２０は、上記マルチパスレンダリング処理として、グレアフィルタ処理、モーションブラー処理、被写界深度処理、フォグ処理等のフィルタ処理を行うことができる。
【００７５】
そして、最後のレンダリングパスで画像がビデオメモリ３０に設けられたフレームバッファ３２にレンダリングされると、その画像をディスプレイ５０に出力する。また最後のレンダリングパスで画像がメインメモリ４０にレンダリングされた場合には当該画像をフレームバッファ３２にコピー（書き込み）した上でディスプレイ５０に出力する。
【００７６】
ハードディスク６０にはシステムプログラム、セーブデータ、個人データなどが格納される。
【００７７】
光学ドライブ７０は、プログラム、画像データ、或いは音データなどが格納される光ディスク７２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【００７８】
通信インターフェース８０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース１７０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【００７９】
上述したように本実施形態の画像生成システム（コンピュータ）は、内部バスｂ１（第１の内部バス）を介してビデオメモリ３０にアクセス可能であるとともに、内部バスｂ２（第２の内部バス）を介してメインメモリ４０にアクセス可能である描画プロセッサ２０を含んで構成されており、描画プロセッサ２０は、光ディスク７２（情報記憶媒体の一例）あるいはハードディスク６０（情報記憶媒体の一例）に格納されているシェーダプログラムに従って種々のシェーダ処理を実行する。
【００８０】
なお、本実施形態の各部（各手段）は、その全てを、ハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００８１】
そして、本実施形態の各部をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ１０、２０等に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ１０、２０等は、その指示と渡されたデータとに基づいて、本発明の各部を実現することになる。
【００８２】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。またグレアフィルタの手法は、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【００８３】
また本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【００８４】
また上記実施形態では、水面を通して水中を見た場合に水中の様子がゆがんで見える状況を表現する例を主に説明したが、本実施形態の手法は、上述した旗のはためきや、はためく旗の影、オーロラ、蜃気楼、火炎周辺の空気のゆらぎ、川の流れ（リバーフロー）など、変形部分が変化しながら変形するような種々の物の見え方を表現する際に適用することができる。
【００８５】
また上記実施形態では、第１テクスチャＴＸ１の参照先が時間経過とともに変化する例を挙げて説明したが、第１テクスチャＴＸ１の参照先が所与のイベントの発生に基づいて変化するようにしてもよい。例えば、爆発が起こったことやキャラクタがパンチを受けたことなどに基づいて第１テクスチャＴＸ１の参照先が変化して、第２テクスチャＴＸ２の参照先が変化するようにしてもよい。また、通常状態では第１テクスチャＴＸ１は参照されず、所与のイベントの発生に基づいて第１テクスチャＴＸ１が参照されるようにしてもよい。例えば、キャラクタの顔が無表情である通常状態では、第１テクスチャＴＸ１は参照されず、キャラクタが笑うというイベントが発生したことに基づいて第１テクスチャＴＸ１が参照されてキャラクタの顔にしわが発生するようにし、キャラクタの顔にしわが発生するとともに顔の表面を表す第２テクスチャＴＸ２の参照先が変更されるようにしてもよい。
【００８６】
また上記実施形態では、内積Ａが大きいほどずらしベクトルｓの大きさが大きくなる例を挙げて説明したが、内積Ａが大きいほどずらしベクトルｓの大きさが小さくなるようにしてもよい。すなわち、法線ｎｒと基準ベクトルｎｓとの関係とずらしベクトルｓとの関係は、任意に設定することができる。
【図面の簡単な説明】
【００８７】
【図１】本実施形態の画像生成システムの機能ブロック図。
【図２】本実施形態の手法の説明図。
【図３】本実施形態の手法の説明図。
【図４】本実施形態の手法の説明図。
【図５】本実施形態の手法の説明図。
【図６】本実施形態の手法の説明図。
【図７】本実施形態の手法の説明図。
【図８】本実施形態で生成される画像の一例を示す図。
【図９】本実施形態で生成される画像の一例を示す図。
【図１０】本実施形態の処理の流れを示すフローチャート。
【図１１】本実施形態の画像生成システムのハードウェア構成例。
【符号の説明】
【００８８】
１００  処理部、１１０  オブジェクト空間設定部、１１２  移動・動作処理部、
１１４  仮想カメラ制御部、１２０  描画部、１２２  テクスチャマッピング部、
１２４  テクスチャ設定部
１３０  音生成部、１６０  操作部、１７０  記憶部、１７２  メインメモリ、
１７２Ａ  オブジェクトデータ記憶部、１７２Ｂ  フレームバッファ、
１７４  ビデオメモリ、１７４Ａ  デカールテクスチャ記憶部、１７４Ｂ  Ｚバッファ、
１７４Ｃ  ワークバッファ、１７４Ｄ  フレームバッファ、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、
１９４  携帯型情報記憶装置、１９６  通信部
【図１】
2010033299.tif 000003
【図２】
2010033299.tif 000004
【図３】
2010033299.tif 000005
【図４】
2010033299.tif 000006
【図５】
2010033299.tif 000007
【図６】
2010033299.tif 000008
【図７】
2010033299.tif 000009
【図８】
2010033299.tif 000010
【図９】
2010033299.tif 000011
【図１０】
2010033299.tif 000012
【図１１】
2010033299.tif 000013