(57)【特許請求の範囲】
【請求項１】
オブジェクト空間における仮想カメラから見た画像を生成するためのプログラムであって、
仮想カメラのオブジェクト空間内における位置、向きを制御する仮想カメラ制御部と、
仮想カメラの制御情報に基づいて、ブラー情報を設定するブラー情報設定部と、
設定されたブラー情報に基づいて、所与のオブジェクトにマッピングされるテクスチャに対してブラー処理を施したブラーテクスチャを生成するテクスチャ生成部と、
オブジェクト空間に設定された前記所与のオブジェクトに対して前記ブラーテクスチャをマッピングしながら描画する描画部としてコンピュータを機能させ、
前記ブラー情報設定部が、
前記オブジェクトを構成する面に対して前記仮想カメラの移動速度ベクトルを投影し、投影された投影ベクトルの大きさに応じて求めたテクスチャのずらし量を前記ブラー情報として設定し、
前記テクスチャ生成部が、
設定されたずらし量に基づいて前記テクスチャに対して前記ブラー処理を行うことを特徴とするプログラム。
【請求項２】
請求項１において、
前記ブラー情報設定部が、
前記オブジェクトを構成する面に対して前記仮想カメラの移動速度ベクトルを投影し、投影された投影ベクトルの方向に応じて求めたテクスチャのずらし方向を前記ブラー情報として設定し、
前記テクスチャ生成部が、
設定されたずらし方向と、設定されたずらし量とに基づいて前記テクスチャに対して前記ブラー処理を行うことを特徴とするプログラム。
【請求項３】
オブジェクト空間における仮想カメラから見た画像を生成するためのプログラムであって、
仮想カメラのオブジェクト空間内における位置、向きを制御する仮想カメラ制御部と、
仮想カメラの制御情報に基づいてブラー情報を設定するブラー情報設定部と、
設定されたブラー情報に基づいて所与のオブジェクトにマッピングされるテクスチャに対してブラー処理を施したブラーテクスチャを生成するテクスチャ生成部と、
オブジェクト空間に設定された前記所与のオブジェクトに対して前記ブラーテクスチャをマッピングしながら描画する描画部としてコンピュータを機能させ、
前記ブラー情報設定部が、
前記オブジェクトを構成する面に対して前記仮想カメラの移動速度ベクトルを投影し、投影された投影ベクトルの方向に応じて求めたテクスチャのずらし方向を前記ブラー情報として設定し、
前記テクスチャ生成部が、
設定されたずらし方向に基づいて前記テクスチャに対して前記ブラー処理を行うことを特徴とするプログラム。
【請求項４】
請求項１〜３のいずれかにおいて、
前記ブラー情報設定部が、
前記仮想カメラの制御情報から得られる移動速度ベクトルと、オブジェクト空間の座標系に関連付けて設定され且つ前記オブジェクトを構成する面に関連付けて設定されたテクスチャの基準方向とに基づいて、前記テクスチャのずらし量を設定することを特徴とするプログラム。
【請求項５】
請求項４において、
前記ブラー情報設定部が、
時間経過に応じて変化する基準方向に基づいて、前記テクスチャのずらし量を設定し、
前記描画部が、
前記オブジェクトにマッピングされるテクスチャ座標値を、前記基準方向の変化に同期させて変更し、変更されたテクスチャ座標値に基づき前記オブジェクトに対して前記ブラーテクスチャをマッピングすることを特徴とするプログラム。
【請求項６】
請求項１〜５のいずれかにおいて、
前記ブラー情報設定部が、
前記仮想カメラの制御情報から得られる移動速度ベクトルと、オブジェクト空間の座標系に関連付けて設定され且つ前記オブジェクトを構成する面に関連付けて設定されたテクスチャの基準方向とに基づいて、前記テクスチャのずらし方向を設定することを特徴とするプログラム。
【請求項７】
請求項６において、
前記ブラー情報設定部が、
時間経過に応じて変化する基準方向に基づいて、前記テクスチャのずらし方向を設定し、
前記描画部が、
前記オブジェクトにマッピングされるテクスチャ座標値を、前記基準方向の変化に同期させて変更し、変更されたテクスチャ座標値に基づき前記オブジェクトに対して前記ブラーテクスチャをマッピングすることを特徴とするプログラム。
【請求項８】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１〜７のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項９】
オブジェクト空間における仮想カメラから見た画像を生成するための画像生成システムであって、
仮想カメラのオブジェクト空間内における位置、向きを制御する仮想カメラ制御部と、
仮想カメラの制御情報に基づいて、ブラー情報を設定するブラー情報設定部と、
設定されたブラー情報に基づいて、所与のオブジェクトにマッピングされるテクスチャに対してブラー処理を施したブラーテクスチャを生成するテクスチャ生成部と、
オブジェクト空間に設定された前記所与のオブジェクトに対して前記ブラーテクスチャをマッピングしながら描画する描画部とを含み、
前記ブラー情報設定部が、
前記オブジェクトを構成する面に対して前記仮想カメラの移動速度ベクトルを投影し、投影された投影ベクトルの大きさに応じて求めたテクスチャのずらし量を前記ブラー情報として設定し、
前記テクスチャ生成部が、
設定されたずらし量に基づいて前記テクスチャに対して前記ブラー処理を行うことを特徴とする画像生成システム。
【請求項１０】
オブジェクト空間における仮想カメラから見た画像を生成するための画像生成システムであって、
仮想カメラのオブジェクト空間内における位置、向きを制御する仮想カメラ制御部と、
仮想カメラの制御情報に基づいてブラー情報を設定するブラー情報設定部と、
設定されたブラー情報に基づいて所与のオブジェクトにマッピングされるテクスチャに対してブラー処理を施したブラーテクスチャを生成するテクスチャ生成部と、
オブジェクト空間に設定された前記所与のオブジェクトに対して前記ブラーテクスチャをマッピングしながら描画する描画部とを含み、
前記ブラー情報設定部が、
前記オブジェクトを構成する面に対して前記仮想カメラの移動速度ベクトルを投影し、投影された投影ベクトルの方向に応じて求めたテクスチャのずらし方向を前記ブラー情報として設定し、
前記テクスチャ生成部が、
設定されたずらし方向に基づいて前記テクスチャに対して前記ブラー処理を行うことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像生成システム、プログラム、及び情報記憶媒体に関する。
【背景技術】
【０００２】
従来より、レースゲームなどの車両オブジェクト（移動体オブジェクトの一例）が配置設定されるオブジェクト空間（仮想的な３次元空間）内において仮想カメラ（所与の視点）から見える画像を生成する画像生成システムが知られており、いわゆる仮想現実を体験できるものとして人気が高い。このようなレースゲームでは、スピード感を増すような画像表現のために、ブラー処理を施す場合がある。
【０００３】
ブラーとは、１つのフレーム内における、仮想カメラやオブジェクトの動きに対する視覚的効果を表現したものである。ブラーを行う方法として、マルチレンダリング方法、移動軌跡ボリューム法等がある。
【０００４】
マルチレンダリング方法は、１フレーム内における微小時間毎のオブジェクト空間内の状態を示す画像を平均化しながら合成する手法である。
【０００５】
移動軌跡ボリューム法は、過去のオブジェクトの位置座標と、現在のオブジェクトの位置座標とに基づいて、オブジェクトの移動軌跡のボリュームデータ（移動軌跡ボリューム）を作成し、移動軌跡ボリュームを半透明で描画する手法である。
【０００６】
しかしながら、マルチレンダリング方法では、微小時間毎の３Ｄ演算が必要になるとともにメモリに微小時間毎のオブジェクト空間内の状態を示す画像を記憶する領域を確保する必要があるため、多くのメモリ領域を浪費することになる。また、移動軌跡ボリューム法では、モデルを引き伸ばして描画しただけなので、不自然な表示になる場合がある。
【特許文献１】特許平４−１７２４９７号公報
【特許文献２】特開平７−９３５８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、メモリの消費量を節約しつつ、適切にスピード感に応じた画像表現を行うことができる画像生成システム、プログラム、及び情報記憶媒体を提供することにある。
【課題を解決するための手段】
【０００８】
本発明は、オブジェクト空間における仮想カメラから見た画像を生成するための画像生成システムであって、仮想カメラのオブジェクト空間内における位置、向きを制御する仮想カメラ制御部と、仮想カメラの制御情報に基づいて、ブラー情報を設定するブラー情報設定部と、設定されたブラー情報に基づいて、所与のオブジェクトにマッピングされるテクスチャに対してブラー処理を施したブラーテクスチャを生成するテクスチャ生成部と、オブジェクト空間に設定された前記所与のオブジェクトに対して前記ブラーテクスチャをマッピングしながら描画する描画部とを含み、前記ブラー情報設定部が、前記仮想カメラの移動速度の大きさに応じて求めたテクスチャのずらし量を前記ブラー情報として設定し、前記テクスチャ生成部が、設定されたずらし量に基づいて前記テクスチャに対して前記ブラー処理を行うことを特徴とする画像生成システムに関する。
【０００９】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関係する。
【００１０】
本発明によれば、オブジェクトにマッピングされるテクスチャに対してブラー処理を施したブラーテクスチャを動的に生成している。そのため、従来の手法のようにブラー処理を行うために過去にレンダリングされた複数の画像をメモリに記憶しておく必要がなくなる。したがって、メモリの消費量を軽減することが可能である。
【００１１】
さらに、仮想カメラの移動速度の大きさに応じて、テクスチャのずらし量を設定し、設定されたずらし量に基づいてブラー処理を行っている。そのため、仮想カメラが移動する場合は、仮想カメラの移動の状況に応じたスピード感を表現することが可能となる。
【００１２】
また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記ブラー情報設定部が、前記仮想カメラの移動方向に応じて求めたテクスチャのずらし方向を前記ブラー情報として設定し、前記テクスチャ生成部が、設定されたずらし方向と、前記仮想カメラの移動速度の大きさに応じて設定されたずらし量とに基づいて前記テクスチャに対して前記ブラー処理を行ってもよい。
【００１３】
このようにすれば、仮想カメラの移動方向に合わせて、適切な方向にテクスチャをずらしてブラー処理が施されるため、オブジェクト空間内における仮想カメラの移動方向の自由度が高い場合でも適切にスピード感を表現することが可能である。
【００１４】
また本発明の画像生成システム、プログラム及び情報記憶媒体では、オブジェクト空間内を移動する移動体オブジェクトの移動経路に沿ってコースオブジェクトが配置されている場合に、前記ブラー情報設定部が、前記コースオブジェクトを構成する面に対する前記仮想カメラの相対的な移動方向に応じてブラー情報としてテクスチャのずらし方向を設定
してもよい。
【００１５】
このようにすれば、コースオブジェクトを構成する面に対する仮想カメラの相対的な移動方向に応じてテクスチャのずらし方向を設定するため、オブジェクト空間内において仮想カメラが自由に移動しても、コースオブジェクトを構成する面に属する方向成分に対して適切なブラー処理を施すことができる。したがって、仮想カメラが進行方向に進んでいるか否か、コースの変化、コースオブジェクトの状態等に応じてスピード感の違いを表現できる。
【００１６】
また本発明の画像生成システム、プログラム及び情報記憶媒体では、オブジェクト空間内を移動する移動体オブジェクトの移動経路に沿ってコースオブジェクトが配置されている場合に、前記ブラー情報設定部が、前記コースオブジェクトを構成する面に対する前記仮想カメラの相対的な移動速度の大きさに前記テクスチャのずらし量を設定してもよい。
【００１７】
このようにすれば、コースオブジェクトを構成する面に対する前記仮想カメラの相対的な移動速度の大きさに応じてテクスチャのずらし量を設定するため、仮想カメラ自体の移動速度のみに着目してブラーを処理を施すよりも、コースオブジェクトの面に対して自然なブラー処理が施され、より正確にスピード感を表現できる。
【００１８】
また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記ブラー情報設定部が、前記仮想カメラの制御情報から得られる移動速度ベクトルと、オブジェクト空間の座標系に関連付けて設定されたテクスチャの基準方向とに基づいて、前記仮想カメラの移動速度ベクトルの基準方向成分を求め、求められた基準方向成分に基づいて、前記基準方向に対する前記テクスチャのずらし量を設定してもよい。
【００１９】
このようにすれば、オブジェクト空間内において存在するオブジェクトにマッピングされるテクスチャ各々に基準方向に対するずらし量を設定できる。そのため、マッピングされるテクスチャ各々にテクスチャの向きに応じたブラー処理を施すこともできるため、より現実に近い正確なスピード感を表現することが可能となる。
【００２０】
また本発明は、オブジェクト空間における仮想カメラから見た画像を生成するための画像生成システムであって、仮想カメラのオブジェクト空間内における位置、向きを制御する仮想カメラ制御部と、オブジェクト空間内で移動体オブジェクトを移動させる演算を行う移動体演算部と、仮想カメラの制御情報と前記移動体オブジェクトの移動情報とに基づいてブラー情報を設定するブラー情報設定部と、設定されたブラー情報に基づいて前記移動体オブジェクトにマッピングされるテクスチャに対してブラー処理を施したブラーテクスチャを生成するテクスチャ生成部と、オブジェクト空間に設定された前記移動体オブジェクトに対して前記ブラーテクスチャをマッピングしながら描画する描画部とを含み、前記ブラー情報設定部が、前記仮想カメラに対する前記移動体オブジェクトの相対移動速度の大きさに応じて求めたテクスチャのずらし量を前記ブラー情報として設定し、前記テクスチャ生成部が、設定されたずらし量に基づいて前記テクスチャに対して前記ブラー処理を行うことを特徴とする画像生成システムに関する。
【００２１】
また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶した情報記憶媒体に関係する。
【００２２】
本発明によれば、仮想カメラが移動していない場合であってもブラー処理を施すことができるため、移動体オブジェクトのスピード感を、適切に表現することが可能である。
【発明を実施するための最良の形態】
【００２３】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２４】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００２５】
操作部１６０は、プレーヤがプレーヤオブジェクト（移動体オブジェクトの一例、プレーヤが操作するプレーヤ車両）の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００２６】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００２７】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００２８】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００２９】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００３０】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０内の主記憶部１７２をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００３１】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、仮想カメラ制御部１１４、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００３２】
オブジェクト空間設定部１１０は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブで構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。特に、本実施形態では、記憶部１７０のオブジェクトデータ記憶部１７６にブラー処理を施すための対象となるオブジェクト（コースオブジェクト、背景オブジェクト）や、オブジェクト空間内で移動体オブジェクト（プレーヤ車両オブジェクト、敵車両オブジェクト）のオブジェクトデータが記憶されており、これらのオブジェクトをオブジェクト空間に配置する処理を行う。
【００３３】
移動・動作処理部１１２は、オブジェクト（キャラクタ、車、電車又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。すなわち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、オブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させたりする処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（オブジェクトを構成する各パーツの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。特に本実施形態では、移動体演算部１１２ａでオブジェクト空間内で移動体オブジェクト（プレーヤ車両オブジェクト、敵車両オブジェクト）を移動させるシミュレーション演算を行う。
【００３４】
仮想カメラ制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置、視線方向あるいは画角を制御する処理）を行う。
【００３５】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、ボール、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００３６】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクト（モデル）の各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含むオブジェクトデータ（モデルデータ）が入力され、入力されたオブジェクトデータに含まれる頂点データに基づいて、頂点処理（頂点シェーダによるシェーディング）が行われる。なお頂点処理を行うに際して、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うようにしてもよい。頂点処理では、頂点処理プログラム（頂点シェーダプログラム、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点処理後の頂点データに基づいてラスタライズ（走査変換）が行われ、ポリゴン（プリミティブ）の面とピクセルとが対応づけられる。そしてラスタライズに続いて、画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセル処理（ピクセルシェーダによるシェーディング、フラグメント処理）が行われる。ピクセル処理では、ピクセル処理プログラム（ピクセルシェーダプログラム、第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、画像を構成するピクセルの最終的な描画色を決定し、透視変換されたオブジェクトの描画色を描画バッファ１７４（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ、レンダリングターゲット）に出力（描画）する。すなわち、ピクセル処理では、画像情報（色、法線、輝度、α値等）をピクセル単位で設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるように画像を生成することができる。
【００３７】
なお頂点処理やピクセル処理は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダ（頂点シェーダやピクセルシェーダ）により実現される。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることで描画処理内容の自由度が高く、従来のハードウェアによる固定的な描画処理に比べて表現力を大幅に向上させることができる。
【００３８】
そして描画部１２０は、オブジェクトを描画する際に、ジオメトリ処理、テクスチャマッピング、隠面消去処理、αブレンディング等を行う。
【００３９】
ジオメトリ処理では、オブジェクトに対して、座標変換、クリッピング処理、透視投影変換、或いは光源計算等の処理が行われる。そして、ジオメトリ処理後（透視投影変換後）のオブジェクトデータ（オブジェクトの頂点の位置座標、テクスチャ座標、色データ（輝度データ）、法線ベクトル、或いはα値等）は、オブジェクトデータ記憶部１７６に保存される。
【００４０】
テクスチャマッピングは、記憶部１７０のテクスチャ記憶部１７８に記憶されるテクスチャ（テクセル値）をオブジェクトにマッピングするための処理である。具体的には、オブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いて記憶部１７０のテクスチャ記憶部１７８からテクスチャ（色（ＲＧＢ）、α値などの表面プロパティ）を読み出す。そして、２次元の画像であるテクスチャをオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理や、テクセルの補間としてバイリニア補間などを行う。
【００４１】
隠面消去処理としては、描画ピクセルのＺ値（奥行き情報）が格納されるＺバッファ１７９（奥行きバッファ）を用いたＺバッファ法（奥行き比較法、Ｚテスト）による隠面消去処理を行うことができる。すなわちオブジェクトのプリミティブに対応する描画ピクセルを描画する際に、Ｚバッファ１７９に格納されるＺ値を参照する。そして参照されたＺバッファ１７９のＺ値と、プリミティブの描画ピクセルでのＺ値とを比較し、描画ピクセルでのＺ値が、仮想カメラから見て手前側となるＺ値（例えば小さなＺ値）である場合には、その描画ピクセルの描画処理を行うとともにＺバッファ１７９のＺ値を新たなＺ値に更新する。
【００４２】
αブレンディング（α合成）は、α値（Ａ値）に基づく半透明合成処理（通常αブレンディング、加算αブレンディング又は減算αブレンディング等）のことである。
【００４３】
なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００４４】
さらに本実施形態では描画部１２０が、ブラー情報設定部１２２と、テクスチャ生成部１２４とを含む。
【００４５】
テクスチャ記憶部１７８は、情報記憶媒体１８０から、オブジェクトにマッピングされるテクスチャを記憶する。
【００４６】
ブラー情報設定部１２２は、仮想カメラの移動速度の大きさに応じてテクスチャのずらし量を設定し、仮想カメラの移動方向に応じてテクスチャのずらし方向を設定する。具体的には、ブラー処理を施すためのブラー情報（ずらしベクトル（ΔＵ，ΔＶ））を設定する。
【００４７】
テクスチャ生成部１２４は、ブラー情報設定部１２２で設定されたブラー情報に基づいて、オブジェクトにマッピングされるテクスチャに対してブラー処理を施したブラーテクスチャを生成する処理を行う。具体的には、ブラー情報に基づいて、テクスチャをずらしながら半透明合成を行うことによりブラーテクスチャを生成する。テクスチャ生成部１２４において生成されたブラーテクスチャは、テクスチャ記憶部１７８に記憶される。なお、既に生成されたブラーテクスチャの記憶領域に、新たに生成されるブラーテクスチャを更新記憶してもよい。また、既に生成されたブラーテクスチャの記憶領域を開放してもよい。
【００４８】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００４９】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００５０】
２．本実施形態の手法
２．１  テクスチャ生成手法についての説明
本実施形態では、ブラー情報に基づいて、オブジェクトにマッピングされるテクスチャに対してブラー処理を施したブラーテクスチャを生成する手法を採用している。
【００５１】
オブジェクトにマッピングされるテクスチャにブラー処理を施すためには、テクスチャをどの方向に、どのくらいの量で移動させるのかを求める必要がある。なぜなら、仮想カメラの動きに対するスピード感をリアルに表現するためには、仮想カメラの移動の様子（移動方向や移動量）を適切に表現する必要があるからである。
【００５２】
したがって、本実施の形態では、ブラーテクスチャを生成する処理の流れとして、まず、オブジェクトにマッピングされるテクスチャのずらし量、ずらし方向をブラー情報として設定し、設定されたブラー情報に基づいてブラー処理を施したブラーテクスチャを生成する。
【００５３】
なお、ブラー情報は、オブジェクトにマッピングされるテクスチャのずらし量、ずらし方向を示す情報であるため、ベクトルで表現できる。そこで、本実施形態では、ブラー情報をずらしベクトル（ΔＵ，ΔＶ）として設定する。つまり、ずらしベクトル（ΔＵ，ΔＶ）とは、その大きさ（長さ）によってテクスチャのずらし量を示し、その向きによってテクスチャのずらし方向を示すベクトルである。
【００５４】
図２（Ａ）に、オブジェクトにマッピングされるテクスチャの一例と、そのテクスチャに対してブラー処理を施したブラーテクスチャの一例とを示す。また、図２（Ｂ）に、生成されたブラーテクスチャが頂点ＶＸ１〜ＶＸ４によって構成されるポリゴンにマッピングされる例を示す。
【００５５】
本実施の形態において、ブラーテクスチャは、ブラー情報に基づいて動的に生成される。そのため、従来の手法のようにブラー処理を行うために過去にレンダリングされた複数の画像をメモリに記憶する必要はない。また、ブラーテクスチャを生成すれば、そのブラーテクスチャがマッピングされるオブジェクトが複数ある場合には、ブラーテクスチャを何度も利用することができる。そのため、オブジェクトごとにブラーテクスチャをメモリに記憶する必要はなくなるため、メモリの消費量を軽減することができる。
【００５６】
次に、具体的に、ブラー処理を施しながらブラーテクスチャを生成する手法について説明する。本実施例においてブラー処理とは、上述したずらしベクトル（ΔＵ，ΔＶ）を用いて、テクスチャをずらしながら半透明合成処理を行う処理のことである。
【００５７】
次に、半透明合成の合成枚数を決定する手法を説明する。合成枚数は、多ければ多いほど、表示される画像が滑らかに綺麗に見える。しかし、合成枚数が多くなると、描画するための描画処理負荷が高くなる恐れがある。したがって、表示される画像が滑らかに綺麗に見え、かつ、描画処理負荷の少ないバランスのとれた合成枚数を決定する。
【００５８】
この場合において、ブラー処理が施された画像を滑らかに綺麗に見せるための最低限の枚数を所定の合成枚数として決定する手法や、システムの描画処理負荷のしきい値を設定し、しきい値を判断基準として合成枚数を決定する手法がある。
【００５９】
例えば、ずらしベクトル（ΔＵ，ΔＶ）のＵ成分及びＶ成分の少なくとも一方が、０．５ピクセル以内の場合には３枚とし、０．１ピクセル超えるごとに１枚増加するという方法で合成枚数を決定する。
【００６０】
次に、合成枚数分の各々のテクスチャのずらし量を決める。
【００６１】
本実施例では、合成枚数の各枚数毎のテクスチャを均等にずらしている。例えば、合成枚数がＮ枚（１＜Ｎ）の場合において、まず、テクスチャの左上のテクセルは、ＵＶ座標の原点（０，０）となるように、ワークバッファにおける描画位置が決定される。そして、ずらしベクトル（ΔＵ，ΔＶ）の大きさを（合成枚数−１）で均等に割った値ごとにテクスチャをずらし、合成率に応じて補間しながらレンダリングする。また、合成枚数それぞれのテクスチャのずらしベクトルの向きは、ずらしベクトル（ΔＵ，ΔＶ）の向きと同じである。それぞれのずらし方向が同じ方向であれば、綺麗な画像を表示できる。
【００６２】
本実施例について、図３を用いて、合成枚数を決定し、合成枚数ごとのテクスチャのずらし手法について説明する。
【００６３】
本実施例での合成枚数は、ずらしベクトル（ΔＵ，ΔＶ）のＵ成分及びＶ成分の少なくとも一方が、０．５ピクセル以内の場合は、合成枚数を３枚とし、０．１ピクセル増加するごとに、合成枚数を１枚ずつ増加するように設定する。
【００６４】
図３では、テクスチャ座標系（ＵＶ座標系）において、テクスチャのずらしベクトル（ΔＵ，ΔＶ）＝（０．４，０．２）である場合の例である。ここで合成枚数を検討すると、ΔＵ、ΔＶいずれも０．５ピクセル以下の値であるため、合成枚数は３枚と決定される。
【００６５】
まず、左上のテクセルは、ＵＶ座標の原点（０，０）となるように、ワークバッファにおける描画位置が決定される。
【００６６】
次に、テクスチャを、ずらしベクトル（ΔＵ１，ΔＶ１）＝（０．２，０．１）に応じたピクセル量だけずらして、テクスチャを合成率（α値）に応じて補間しながらレンダリングする。そして、テクスチャを、ずらしベクトル（ΔＵ２，ΔＶ２）＝（０．４，０．２）に応じたピクセル量だけずらして、テクスチャを合成率（α値）に応じて補間しながらレンダリングする。このように、本実施例では、均等にずらしながら、ブラーテクスチャを生成する。
【００６７】
ところで、半透明合成の手法としては、ピクセルシェーダーにより合成枚数に応じて均等割された合成率でテクセル色を一度に求める手法（第１の手法）と、元テクスチャ（オブジェクトに対応付けられたテクスチャ）を何度も合成率（α値）に応じて補間しながらレンダリングして、画像を生成するαブレンディングを利用した手法（第２の手法）がある。
【００６８】
第１の手法について、具体的な手順を、図４（Ａ）を用いて説明する。本実施例では、元になる元テクスチャ１と、元テクスチャ１に対してずらしベクトル（ΔＵ１，ΔＶ１）だけずらした元テクスチャ２と、元テクスチャ１に対してずらしベクトル（ΔＵ２，ΔＶ２）だけずらした元テクスチャ３について、合成枚数３の逆数である１／３の重み（合成率）でテクスチャ画像を合成する手法を採用している。
【００６９】
つまり、合成枚数がＮの場合は、ずらしベクトル（ΔＵ（Ｎ−１），ΔＶ（Ｎ−１））にしたがってテクスチャの描画位置をずらしつつ、１／Ｎの重み（合成率）で補間しながらレンダリングする。Ｎ枚目に合成するテクセル色をＣＮとする。合成枚数がＮの場合において、テクセル色Ｆ（Ｎ）は、下式（Ａ）によって求めることができる。
Ｆ（Ｎ）＝１／Ｎ×（Ｃ１＋Ｃ２＋Ｃ３＋・・・＋ＣＮ）・・・（Ａ）
次に、第２の手法について、具体的な手順を、図４（Ｂ）を用いて説明する。まず、最初に、元になるテクスチャ１を合成率（α値）に応じて補間しながらレンダリングする。そして、元テクスチャ１に対してずらしベクトル（ΔＵ１、ΔＶ１）だけずらした元テクスチャ２を合成率（α値）に応じて補間しながらレンダリングする。このとき、レンダリングした２枚のテクスチャの画像を平均する。つまり、それぞれのテクスチャ画像は１／２の重み（合成率）で合成する。その後にさらに、元テクスチャ１に対してずらしベクトル（ΔＵ２、ΔＶ２）だけずらした元テクスチャ３をレンダリングする。ブラーテクスチャ１の画像と元テクスチャ３の画像を２／３対１／３の重み（合成率）で合成する。
【００７０】
つまり、合成枚数がＮの場合は、ずらしベクトル（ΔＵ（Ｎ−１）、ΔＶ（Ｎ−１））に応じたピクセル量だけずらしながら、前の合成画像に新しい画像を合成率（α値）に応じて補間しながらレンダリングする。Ｎ枚目に合成するテクセル色をＣＮとする。合成枚数がＮの場合において、テクセル色Ｆ（Ｎ）は、下式（Ｂ）によって求めることができる。
Ｆ（Ｎ）＝（（Ｎ−１）／Ｎ）×Ｆ（Ｎ−１）＋１／Ｎ×ＣＮ・・・（Ｂ）
【００７１】
２．２  ブラー情報の設定手法についての説明
上述したように、ブラー情報は、オブジェクトにマッピングされるテクスチャのずらしベクトル（ΔＵ，ΔＶ）である。以下、ブラー情報であるずらしベクトル（ΔＵ，ΔＶ）の設定手法について説明する。
【００７２】
本実施形態では、ずらしベクトル（ΔＵ，ΔＶ）を仮想カメラの移動速度の大きさに応じて求める。仮想カメラの移動速度の大きさに応じたスピード感のある画像を表現することができるからである。
【００７３】
例えば、仮想カメラが停止している場合は、仮想カメラの移動速度が零なので、ずらしベクトル（ΔＵ，ΔＶ）の大きさも零と設定される。したがって、仮想カメラが停止している場合にはブラー処理が施されないようにすることができる。また、ブラーテクスチャを動的に生成しているため、予め仮想カメラの移動速度に応じたブラーテクスチャを記憶するための記憶領域を確保する必要もなくなりメモリの消費量を軽減できる。
【００７４】
図５（Ａ）は、仮想カメラＣの移動速度の大きさ（微小時間毎の移動量）を示している。図５（Ｂ）は、仮想カメラＣの移動速度の大きさが、テクスチャのずらし量Ｌ（ずらしベクトル（ΔＵ，ΔＶ）の大きさ）に対応していることを示している。そして、ずらしベクトル（ΔＵ，ΔＶ）に基づいて、図５（Ｂ）右図のようなブラーテクスチャが生成される。
【００７５】
つまり、仮想カメラＣの移動速度の大きさと、テクスチャのずらし量Ｌは相互に関係している。仮想カメラＣの移動速度の変化と、テクスチャのずらし量Ｌの変化とを対応させて、仮想カメラのスピード感の相違を表現している。
【００７６】
次に、仮想カメラＣの移動方向に基づいて、ずらしベクトル（ΔＵ，ΔＶ）の向きを求める手法を説明する。ずらしベクトル（ΔＵ，ΔＶ）の向きが正確でなければ、仮想カメラの移動方向が無視された不自然な画像表示になるおそれがあるからである。
【００７７】
図６は、仮想カメラＣの移動方向に応じて、テクスチャのずらしベクトル（ΔＵ，ΔＶ）の向きを決定する例である。そして、ずらしベクトル（ΔＵ，ΔＶ）に基づいて図６右図のようなブラーテクスチャが生成される。
【００７８】
つまり、仮想カメラの移動方向と、テクスチャのずらしベクトル（ΔＵ，ΔＶ）の向きは相互に関係している。仮想カメラＣの移動方向の変化と、テクスチャのずらしベクトル（ΔＵ，ΔＶ）の変化とを対応させ、仮想カメラの移動方向の正確さを表現している。
【００７９】
次に、コースオブジェクトが配置されている場合のずらしベクトル（ΔＵ，ΔＶ）の求め方について説明する。
【００８０】
例えば、オブジェクト空間内において仮想カメラがコース上を移動している場合には、仮想カメラが移動するスピード感を適切に表現することが望まれる。このような場合には、ずらしベクトル（ΔＵ，ΔＶ）に基づいてブラーテクスチャを生成し、生成されたブラーテクスチャをコースオブジェクトにマッピングすることでスピード感を表現することができる。
【００８１】
本実施例では、コースオブジェクトを構成する面に対する仮想カメラの相対的な移動方向に応じてずらしベクトル（ΔＵ，ΔＶ）を求める。つまり、基準方向ベクトル（コースオブジェクトにマッピングされるテクスチャの向き）を考慮してブラーテクスチャを生成する。なぜなら、基準方向ベクトルを考慮せずにブラー処理を施すと、仮想カメラの移動方向とブラー処理が施される方向とが合わなくなるからである。
【００８２】
なお、コースオブジェクトを構成する面にマッピングされる複数のテクスチャが、すべて同一のテクスチャであり、かつ、基準方向ベクトルが同じ場合には、１つのブラーテクスチャを生成するだけでよい。ブラーテクスチャを何度も利用しメモリの消費量を抑えることができるからである。
【００８３】
また、ブラーテクスチャをコースオブジェクトの進行方向手前から進行方向に向かってマッピングする。ブラーテクスチャが、プレーヤに注目されやすいオブジェクトからマッピングされるため、仮に描画処理負担が重くなったとしてもプレーヤに違和感を感じさせないようにすることができるからである。
【００８４】
図７、８は、コースオブジェクトを構成する面にマッピングされるテクスチャに対して、ずらしベクトル（ΔＵ，ΔＶ）を求め、ブラーテクスチャを生成する例である。
【００８５】
図７（Ａ）に示すように、Ｐ１，Ｐ２，Ｐ３・・・，ＰＮは、コースオブジェクトを構成する面（ポリゴンまたはプリミティブ）である。そして、図７（Ｂ）に示すように、それぞれの面は、基準方向ベクトルＶｅｃ１，Ｖｅｃ２，・・・・，ＶｅｃＮに関連付けられている。基準方向ベクトルは、オブジェクト座標系に関連付けて設定されたコースオブジェクトにマッピングされるテクスチャの向きである。また、基準方向ベクトルＶｅｃ１は、テクスチャ座標系に変換したときに、適切にブラー処理が施されるように設定する。例えば、基準方向ベクトルＶｅｃ１は、単位ベクトル（Ｘ１，Ｙ１，Ｚ１）＝（０，０，１）として設定することができる。
【００８６】
図８（Ａ）は、面Ｐ１は基準方向ベクトルＶｅｃ１と関連付けられている例を示している。
【００８７】
図８（Ｂ）は、オブジェクト空間内において仮想カメラがｚ軸方向に移動する場合を示している。仮想カメラＣの移動速度ベクトルＣＶｅｃと基準方向ベクトルＶｅｃ１とに基づいて、ずらしベクトル（ΔＵ，ΔＶ）を求め、図８（Ｂ）の右図のようなブラーテクスチャを生成する。
【００８８】
また、図８（Ｃ）は、オブジェクト空間内において仮想カメラがｘ軸方向に移動する場合を示している。仮想カメラＣの移動速度ベクトルＣＶｅｃと基準方向ベクトルＶｅｃ１とに基づいて、ずらしベクトル（ΔＵ，ΔＶ）を求め、図８（Ｃ）の右図のようなブラーテクスチャを生成する。
【００８９】
このように、基準方向ベクトルを考慮して、ブラー処理を施すことで、ブラーテクスチャがオブジェクトにマッピングされたときに、自然で、かつ、仮想カメラのスピード感が表現された画像を生成することができる。
【００９０】
次に、コースオブジェクトを構成する面に対する仮想カメラの相対的な移動速度の大きさに応じてテクスチャのずらしベクトル（ΔＵ，ΔＶ）を求める手法を、図９を用いて説明する。
【００９１】
図９（Ａ）に示すように、仮想カメラが、コースオブジェクトを構成する面から低い位置で移動する。そして、図９（Ａ）の仮想カメラＣ１は、コースオブジェクトを構成する面Ｐ１に対して平行に移動している。一方、仮想カメラＣ２も仮想カメラＣ１と同じ移動速度と移動方向で移動しているが、コースオブジェクトを構成する面Ｐ２に対しては平行ではない。
【００９２】
このような場合に、仮想カメラＣ１と仮想カメラＣ２のスピード感の違いを適切に表現するため、面Ｐ１と面Ｐ２を構成するオブジェクトにマッピングされるテクスチャのずらしベクトル（ΔＵ，ΔＶ）を適切に求める。具体的には、コースオブジェクトを構成する面に対して、相対的に、テクスチャのずらしベクトル（ΔＵ，ΔＶ）を求める。
【００９３】
図９（Ａ）の面Ｐ１の基準方向ベクトルは、（ＰＶｅｃ１，ＱＶｅｃ１）であり、面Ｐ２の基準方向ベクトル（コースオブジェクトにマッピングされるテクスチャの向き）は、（ＰＶｅｃ２，ＱＶｅｃ２）である。基準方向ベクトルは、オブジェクト空間内の座標系に関連付けられている。また、仮想カメラＣ１の移動速度ベクトルをＣＶｅｃ１とし、仮想カメラＣ２の移動速度ベクトルをＣＶｅｃ２である。
【００９４】
面Ｐ１にマッピングされるテクスチャのずらしベクトル（ΔＵ，ΔＶ）は、仮想カメラＣ１の移動速度ベクトルＣＶｅｃ１を、面Ｐ１に投影された大きさＬ１のベクトルＳＶｅｃ１である。
【００９５】
面Ｐ２にマッピングされるテクスチャのずらしベクトル（ΔＵ，ΔＶ）は、仮想カメラＣ２の移動速度ベクトルＣＶｅｃ２を、面Ｐ２に投影された大きさＬ２のベクトルＳＶｅｃ２である。
【００９６】
このようにすればオブジェクト空間内において、コースオブジェクトに近い距離で仮想カメラがさまざまな角度で移動している場合であっても、仮想カメラのスピード感を適切に表現できる。
【００９７】
なお、図９（Ｃ）に示すように、各コースオブジェクトを構成する面は、オブジェクト空間内の座標系に関連づけられた基準方向ベクトルを対応づけることができる。このようにすれば、コースオブジェクトを構成する面の基準方向ベクトルの情報取得が容易となる。
【００９８】
次に、オブジェクト空間に存在するオブジェクト（例えば、壁や木）にマッピングされるテクスチャのずらしベクトル（ΔＵ，ΔＶ）を求める手法を説明する。仮想カメラがオブジェクト空間内を自由に移動するスピード感を表現することができるからである。
【００９９】
本実施例では、仮想カメラの移動速度ベクトルと、オブジェクト（例えば、壁や木）にマッピングされるテクスチャの基準方向ベクトルとに基づいて、ずらしベクトル（ΔＵ，ΔＶ）を求める。
【０１００】
図１０（Ａ）に示すようにＰ１，Ｐ２，．．．，ＰＮは、オブジェクト空間内のそれぞれのオブジェクトを構成する面（ポリゴン、プリミティブ）である。また、図１０（Ｂ）に示すように、面Ｐ１，Ｐ２，．．．，ＰＮは、オブジェクト空間の座標系に関連付けて設定されたテクスチャの基準方向ベクトル（ＰＶｅｃ１，ＱＶｅｃ１），（ＰＶｅｃ２，ＱＶｅｃ２），・・・，（ＰＶｅｃＮ，ＱＶｅｃＮ）と関連付けられている。このようにすれば、オブジェクトを構成する面に対する基準方向ベクトルを容易に求めることができる。
【０１０１】
そして、図１１（Ａ）に示すように、仮想カメラＣが、オブジェクト空間内を移動速度ベクトルＣＶｅｃで移動する場合には、面Ｐ１にマッピングされるテクスチャのずらしベクトル（ΔＵ，ΔＶ）は以下のように求めることができる。
【０１０２】
まず、基準方向ベクトル（ＰＶｅｃ１，ＱＶｅｃ１）と、移動速度ベクトルＣＶｅｃとをＵＶ座標系（テクスチャ座標系）で算出する。そして、移動速度ベクトルＣＶｅｃをテクスチャＴＥＸ１に投影する。投影ベクトルＳＶｅｃの基準方向ベクトル（ＰＶｅｃ１，ＱＶｅｃ１）のＰＶｅｃ１成分、ＱＶｅｃ１成分を求める。そして、求められた基準方向成分（ΔＵ，ΔＶ）が、テクスチャずらしベクトル（ΔＵ，ΔＶ）に相当する。
【０１０３】
このようにすれば、オブジェクト空間内において存在するオブジェクト（壁、木など）に対して、仮想カメラが自由に移動した場合にも、適切にブラー処理を施すことが可能である。
【０１０４】
ところで、仮想カメラが停止し、敵車オブジェクト（移動体オブジェクトの一例）が、移動している場合、また、敵車オブジェクトが仮想カメラの移動速度よりも高速で移動している場合は、敵車オブジェクトのスピード感を適切に表現することが望ましい。
【０１０５】
本実施形態では、敵車オブジェクトにマッピングされるテクスチャに対してブラー処理を施して、敵車オブジェクトのスピード感を表現する。
【０１０６】
図１２（Ａ）に示すように、仮想カメラＣが停止し、移動体オブジェクトＯＢが高速で移動している場合は、移動体オブジェクトＯＢの移動速度ベクトルＯＢＶｅｃに基づいて、移動体オブジェクトＯＢにマッピングされるテクスチャのずらしベクトル（ΔＵ，ΔＶ）を求める。
【０１０７】
図１２（Ｂ）に示すように、移動体オブジェクトＯＢが仮想カメラＣよりも、高速で移動している場合は、移動体オブジェクトＯＢの移動速度ベクトルＯＢＶｅｃと、仮想カメラの移動速度ベクトルＣＶｅｃとに基づいて移動体オブジェクトＯＢにマッピングされるテクスチャのずらしベクトル（ΔＵ，ΔＶ）を求める。移動体オブジェクトＯＢの移動速度ベクトルＯＢＶｅｃと、仮想カメラの移動速度ベクトルＣＶｅｃの向きが同じ場合は、その差分を求めて、ずらしベクトル（ΔＵ，ΔＶ）の大きさを求めることができる。
【０１０８】
例えば、図１２（Ｃ）は、オブジェクト空間内において、仮想カメラＣが停止し、移動体オブジェクトＯＢがｘ軸方向へ移動している場合を示している。仮想カメラは停止しているため、仮想カメラに対する移動体オブジェクトＯＢの相対移動速度の大きさは、移動体オブジェクトＯＢの移動速度である。そのため、移動体オブジェクトＯＢの移動速度の大きさに応じて、ずらしベクトル（ΔＵ，ΔＶ）の大きさを求める。また、移動体オブジェクトの移動方向に応じて、ずらしベクトル（ΔＵ，ΔＶ）の向きを求める。
【０１０９】
以上のように求められたずらしベクトル（ΔＵ，ΔＶ）に基づいて、ブラーテクスチャが生成される。生成されたブラーテクスチャを移動体オブジェクトＯＢにマッピングすれば、移動体オブジェクトが、高速に移動している様子を表現することができる。
【０１１０】
ところで、オブジェクト空間には、回転している様子を表現したいオブジェクトが存在する場合がある。例えば、オブジェクト空間内において存在する円盤オブジェクトや観覧車オブジェクト等がある。これらのオブジェクトに対しても、ブラー処理を施し、仮想カメラのスピード感を適切に表現することが望ましい。
【０１１１】
本実施形態では、オブジェクトが回転しているかのように見せるために、オブジェクトにマッピングされるテクスチャのＵＶ座標値を時間の経過に伴って変更する手法を採用する。
【０１１２】
図１３（Ａ）〜（Ｃ）の右図に示すように、三角形のポリゴンからなるオブジェクトがある。オブジェクトは、「Ａ」という模様が付されている。オブジェクトが、反時計回りに回転しているかのように見せるためには、以下のような処理を行う。
【０１１３】
まず、図１３（Ａ）に示すように、ポリゴンＰ１〜Ｐ８の各頂点のテクスチャ座標を決定する。ポリゴンＰ１の頂点ＶＸ０のテクスチャ座標は（Ｕ０，Ｖ０）、頂点ＶＸ１のテクスチャ座標は（Ｕ１，Ｖ１）、頂点ＶＸ２のテクスチャ座標は（Ｕ２，Ｖ２）である。同様に、ポリゴンＰ２〜Ｐ８の各頂点のテクスチャ座標も、「Ａ」という模様が付されるように、テクスチャ座標を設定する。そして、テクスチャマッピングを行うと、オブジェクトには、「Ａ」という模様が付されるようになる。
【０１１４】
そして、一定時間経過後（例えば、１秒後）、ポリゴンＰ１〜Ｐ８の各頂点のテクスチャ座標を変更する。図１３（Ｂ）は、ポリゴンＰ１の頂点ＶＸ０のテクスチャ座標は（Ｕ０，Ｖ０）のままであるが、頂点ＶＸ１のテクスチャ座標は（Ｕ２，Ｖ２）、頂点ＶＸ２のテクスチャ座標は（Ｕ３，Ｖ３）である。そして、ポリゴンＰ２〜Ｐ８にマッピングするテクスチャの各頂点も、「Ａ」という模様が付されるようにテクスチャ座標を設定する。そして、テクスチャマッピングを行うと、オブジェクトには、「Ａ」という模様が付されるようになる。そして、図１３（Ａ）の状態から、オブジェクトが反時計回りに回転しているかのように見える画像を生成することができる。
【０１１５】
図１３（Ｃ）に示すように、図１３（Ｂ）から、さらに一定時間経過後（例えば、１秒後）、ポリゴンが反時計回りに回転するようにポリゴンＰ１〜Ｐ８にマッピングするテクスチャの各頂点のテクスチャ座標を変更する。つまり、ポリゴンＰ１にマッピングするテクスチャの頂点ＶＸ０のテクスチャ座標は（Ｕ０，Ｖ０）、頂点ＶＸ１のテクスチャ座標は（Ｕ３，Ｖ３）、頂点ＶＸ２のテクスチャ座標は（Ｕ４，Ｖ４）である。
【０１１６】
つまり、ポリゴンＰ１〜Ｐ８にマッピングするテクスチャの各頂点のテクスチャ座標は、時間経過に伴って、頂点（Ｕ０，Ｖ０）を原点とした円周上のテクスチャ座標を時計回りに変更している。
【０１１７】
このようにすることで、時間経過に伴って、オブジェクトは、反時計回りに回転しているかのように見える画像を生成することができる。
【０１１８】
次に、これらのオブジェクトが回転しているかのように見え、かつ、仮想カメラのスピード感を表現する手法について図１４を用いて説明する。
【０１１９】
まず、オブジェクト空間の仮想カメラＣの移動速度ベクトルＣＶｅｃ、テクスチャの基準方向ベクトルＶｅｃをＵＶ座標系（テクスチャ座標系）に変換する。そして、基準方向ベクトルＶｅｃと仮想カメラの移動速度ベクトルＣＶｅｃに基づいて、ずらしベクトル（ΔＵ，ΔＶ）を求める。
【０１２０】
図１４（Ａ）、（Ｂ）、（Ｃ）の左図は、ずらしベクトル（ΔＵ，ΔＶ）に基づいて、ブラー処理を施したブラーテクスチャを示している。そして右図は、左図のブラーテクスチャがマッピングされたオブジェクトを示している。
【０１２１】
以下、ブラーテクスチャをマッピングする手法を説明する。例えば、オブジェクトを構成するポリゴンＰ１のテクスチャマッピングは、以下のようにして行う。
【０１２２】
図１４（Ａ）の基準方向ベクトルＶｅｃは、テクセル（Ｕ０，Ｖ０）を始点とし、テクセル（Ｕ１，Ｖ１）を終点としている。そして、図１３（Ａ）で説明したように、ポリゴンＰ１の各頂点ＶＸ０、ＶＸ１、ＶＸ２それぞれにテクスチャ座標（Ｕ０，Ｖ０）、（Ｕ１，Ｖ１）、（Ｕ２，Ｖ２）の領域をマッピングする。
【０１２３】
図１４（Ｂ）は、図１４（Ａ）から、一定時間経過後（例えば、１秒後）、テクスチャの基準方向ベクトルＶｅｃが変更された場合の例である。この場合、基準方向ベクトルは、テクセル（Ｕ０，Ｖ０）を始点とし、テクセル（Ｕ２，Ｖ２）を終点としている。そして、図１３（Ｂ）で説明したように、ポリゴンＰ１の各頂点ＶＸ０、ＶＸ１、ＶＸ２それぞれにテクスチャ座標（Ｕ０，Ｖ０）、（Ｕ２，Ｖ２）、（Ｕ３，Ｖ３）の領域をマッピングする。
【０１２４】
図１４（Ｃ）は、図１４（Ｂ）から、さらに一定時間経過後（例えば、一秒後）、テクスチャの基準方向ベクトルＶｅｃが変更された場合の例である。この場合、基準方向ベクトルは、テクセル（Ｕ０，Ｖ０）を始点とし、テクセル（Ｕ３，Ｖ３）を終点としている。そして、図１３（Ｃ）で説明したように、ポリゴンＰ１の各頂点ＶＸ０、ＶＸ１、ＶＸ２それぞれにテクスチャ座標（Ｕ０，Ｖ０）、（Ｕ３，Ｖ３）、（Ｕ４，Ｖ４）の領域をマッピングする。
【０１２５】
このようにすることで、オブジェクトが反時計回りに回転しているかのように見せつつ、仮想カメラの移動速度ベクトルＣＶｅｃに応じて、適切にブラー処理を施すことができ、仮想カメラのスピード感を適切に表現することができる。
【０１２６】
なお、基準方向ベクトルＶｅｃの変化と、ポリゴンの各頂点のテクスチャ座標の変更は、同期するようにしなければならない。つまり、基準方向ベクトルＶｅｃが、時計回りに一周する周期と、ポリゴンＰ１〜Ｐ８にマッピングするテクスチャの各頂点のテクスチャ座標が１周する周期は同じでなければならない。仮想カメラの移動方向とブラー処理が施される方向とが合わなくなるからである。
【０１２７】
例えば、基準方向ベクトルＶｅｃの終点が、図（Ａ）の（Ｕ１，Ｖ１）から図（Ｂ）の（Ｕ２，Ｖ２）に変更するタイミングと、ポリゴンＰ１のＶＸ１のテクスチャ座標を（Ｕ１，Ｖ１）から（Ｕ２，Ｖ２）に変更するタイミングは同じである。
【０１２８】
次に本画像生成システム（ゲームシステム）を、複数のプレーヤがプレイする場合について説明する。
【０１２９】
オブジェクト空間における仮想カメラから見た画像をプレーヤ毎に生成する場合は、プレーヤ毎にオブジェクトにマッピングされるブラーテクスチャを生成する。仮想カメラの移動速度はプレーヤ毎に異なるため、プレーヤが操作する仮想カメラのスピード感を適切に表現すべきだからである。
【０１３０】
したがって、図１５（Ａ）に示すように、オブジェクトにマッピングされるテクスチャは、１Ｐ用（プレーヤ１用）のブラーテクスチャ１、２Ｐ用（プレーヤ２用）のブラーテクスチャ２が生成され、それぞれが、画面Ｒ１（１Ｐ用の画面）、画面Ｒ２（２Ｐ用の画面）に表示するオブジェクトにマッピングされる。
【０１３１】
このようにすれば、図１５（Ｂ）に示すように、各プレーヤごとに、仮想カメラのスピード感を表現することが可能となる。
【０１３２】
３．本実施形態の処理
次に、本実施形態の詳細な処理例について図１６のフローチャートを用いて説明する。
【０１３３】
まずオブジェクト空間内における仮想カメラの移動速度ベクトルを求める（ステップＳ１０）。これにより仮想カメラの移動速度の大きさと、移動方向が決定される。
【０１３４】
次に、テクスチャの基準方向ベクトルを取得する（ステップＳ１１）。これによりオブジェクトにマッピングされるテクスチャの向きが決定される。
【０１３５】
次に、仮想カメラの移動速度ベクトルとテクスチャの基準方向ベクトルとに基づいて、テクスチャのずらしベクトル（ΔＵ，ΔＶ）を求める（ステップＳ１２）。ずらしベクトル（ΔＵ，ΔＶ）は、テクスチャのずらし量、ずらし方向である。ずらし量は、仮想カメラの移動速度の大きさに応じて求める。ずらし方向は、仮想カメラの移動方向に応じて求める。
【０１３６】
続いて、ずらしベクトルΔＵの大きさ、ΔＶの大きさに応じて半透明合成の合成枚数を決める（ステップＳ１３）。
【０１３７】
次に、合成枚数毎のテクスチャのずらしベクトルと合成率（α値）とを求める。（ステップＳ１４）
そして、半透明合成を行い、ブラーテクスチャを生成する（ステップＳ１５）。合成枚数毎のテクスチャのずらしベクトルとの合成率（α値）に基づいて、半透明合成を行う。なお、ブラーテクスチャはテクスチャ記憶部に生成される。
【０１３８】
最終的には、オブジェクトにブラーテクスチャをマッピングしながら描画する（ステップＳ１６）。
【０１３９】
４．ハードウェア構成
図１７に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＤＶＤ９８２（情報記憶媒体。ＣＤでもよい。）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１４０】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【０１４１】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。頂点シェーダやピクセルシェーダなどのプログラマブルシェーダが実装されている場合には、シェーダプログラムに従って、頂点データの作成・変更（更新）やピクセル（あるいはフラグメント）の描画色の決定を行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【０１４２】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【０１４３】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＤＶＤドライブ９８０（ＣＤドライブでもよい。）は、プログラム、画像データ、或いは音データなどが格納されるＤＶＤ９８２（ＣＤでもよい。）にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【０１４４】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１４５】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１４６】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語として引用された用語は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。また接触痕跡の表現手法も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【０１４７】
また上記実施形態では、コースオブジェクトが固定オブジェクトであるが、川やベルトコンベアーのようにコースオブジェクトにマッピングするテクスチャが動いている様子を表現する場合は、テクスチャの移動速度と仮想カメラの相対速度を求めて、ずらしベクトル（ΔＵ，ΔＶ）を設定し、ブラーテクスチャを生成してもよい。
【０１４８】
また、例えば、仮想カメラが、立体交差のコースの上を移動する場合や、レースゲームのコース全体が見える位置から移動する場合には、オブジェクトにマッピングされるテクスチャにブラー処理を施すと不自然な画像が生成されるおそれがある。このような場合は、ブラー処理を禁止してもよい。
【０１４９】
なお、半透明合成を行う場合は、上述した方法とは、別の方法で行ってもよい。
【０１５０】
また本発明は種々のゲーム（レーシングゲーム、格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１５１】
【図１】本実施形態の画像生成システムの機能ブロック図の例。
【図２】図２（Ａ）（Ｂ）はテクスチャ生成手法の説明図。
【図３】図３（Ａ）（Ｂ）は半透明合成の合成枚数の決定手法の説明図。
【図４】図４（Ａ）（Ｂ）は半透明合成の手法の説明図。
【図５】図５（Ａ）（Ｂ）はブラー情報の設定手法の説明図。
【図６】ブラー情報の設定手法の説明図。
【図７】図７（Ａ）（Ｂ）はブラー情報の設定手法の説明図。
【図８】図８（Ａ）（Ｂ）（Ｃ）はブラー情報の設定手法の説明図。
【図９】図９（Ａ）（Ｂ）（Ｃ）はブラー情報の設定手法の説明図。
【図１０】図１０（Ａ）（Ｂ）はブラー情報の設定手法の説明図。
【図１１】図１１（Ａ）（Ｂ）はブラー情報の設定手法の説明図。
【図１２】図１２（Ａ）（Ｂ）（Ｃ）はブラー情報の設定手法の説明図。
【図１３】図１３（Ａ）（Ｂ）（Ｃ）はブラー情報の設定手法の説明図。
【図１４】図１４（Ａ）（Ｂ）（Ｃ）はブラー情報の設定手法の説明図。
【図１５】図１５（Ａ）（Ｂ）はプレーヤ毎にブラーテクスチャを生成する手法の説明図。
【図１６】本実施形態の処理のフローチャート。
【図１７】ハードウェア構成例。
【符号の説明】
【０１５２】
Ｃ  仮想カメラ
ＯＢ  移動体オブジェクト
１００  処理部、１１０  オブジェクト空間設定部、１１２  移動・動作処理部、
１１２ａ  移動体演算部、１１４  仮想カメラ制御部、１２０  描画部、
１２２  ブラー情報設定部、１２４  テクスチャ生成部
１３０  音生成部、１６０  操作部、１７０  記憶部、１７２  主記憶部、
１７４  描画バッファ、１７６  オブジェクトデータ記憶部、
１７８  テクスチャ記憶部、１７９  ｚバッファ、１８０  情報記憶媒体、
１９０  表示部、１９２  音出力部、１９４  携帯型情報記憶装置、１９６  通信部、
【図１】
0004743770.tif 000002
【図３】
0004743770.tif 000003
【図４】
0004743770.tif 000004
【図７】
0004743770.tif 000005
【図９】
0004743770.tif 000006
【図１０】
0004743770.tif 000007
【図１１】
0004743770.tif 000008
【図１３】
0004743770.tif 000009
【図１６】
0004743770.tif 000010
【図１７】
0004743770.tif 000011
【図２】
0004743770.tif 000012
【図５】
0004743770.tif 000013
【図６】
0004743770.tif 000014
【図８】
0004743770.tif 000015
【図１２】
0004743770.tif 000016
【図１４】
0004743770.tif 000017
【図１５】
0004743770.tif 000018