(57)【要約】【課題】水面等の流体表面のリアルな画像を少ない処理負荷で生成できるプログラム、情報記憶媒体及び画像生成システムを提供すること。【解決手段】  流体モデルオブジェクトの頂点の位置を変化させることで、流体モデルオブジェクトの形状を変形し、流体モデルオブジェクトに設定される法線ベクトルの情報に基づいてテクスチャ座標を求め、求められたテクスチャ座標で指定される流体テクスチャのテクスチャマッピングを行いながら流体モデルオブジェクトを描画する。格子の格子点位置を変化させ、格子点を頂点とするプリミティブ面を生成することで、該プリミティブ面により構成される流体モデルオブジェクトの形状を変形する。格子点の位置座標成分に基づき基準テクスチャ座標を求め、基準テクスチャ座標を、法線ベクトルの座標成分に基づいて変位させることで、テクスチャ座標を求める。【選択図】      図１５
2005141647.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト空間において所与の視点から見える画像を生成するためのプログラムであって、
流体モデルオブジェクトを構成するプリミティブ面の頂点の位置を変化させることで、流体モデルオブジェクトの形状を変形する形状変形部と、
流体モデルオブジェクトを構成する頂点又はプリミティブ面に設定される法線ベクトルの情報に基づいてテクスチャ座標を求めるテクスチャ座標演算部と、
求められたテクスチャ座標で指定される流体テクスチャのテクスチャマッピングを行いながら、流体モデルオブジェクトを描画する描画部として、
コンピュータを機能させることを特徴とするプログラム。
【請求項２】
請求項１において、
前記形状変形部が、
流体モデルオブジェクトに対応して設定された格子の格子点位置を変化させ、格子点を頂点とするプリミティブ面を生成することで、該プリミティブ面により構成される流体モデルオブジェクトの形状を変形することを特徴とするプログラム。
【請求項３】
請求項１又は２において、
テクスチャ座標演算部が、
格子点の位置座標成分に基づいて基準テクスチャ座標を求め、求められた基準テクスチャ座標を、法線ベクトルの座標成分に基づいて変位させることで、流体テクスチャを指定するためのテクスチャ座標を求めることを特徴とするプログラム。
【請求項４】
請求項１乃至３のいずれかにおいて、
表示用領域とペイント用領域とを有する記憶部と、
光透過領域又は光遮蔽物の配置情報と、光源情報とに基づいて、流体モデルオブジェクトに対応する位置に設定される投影面に対して光透過領域又は光遮蔽物を投影する演算を行い、光透過領域により形成されるべき光照射領域又は光遮蔽物により形成されるべき影領域を前記ペイント用領域において特定する領域特定部として、
コンピュータを機能させ、
前記描画部が、
特定された前記ペイント用領域の光照射領域又は影領域に、光照射画像又は影画像であるペイント画像を描画することで、ペイントテクスチャを生成し、生成されたペイントテクスチャのテクスチャマッピングを行いながら、流体モデルオブジェクトを前記表示用領域に描画することを特徴とするプログラム。
【請求項５】
請求項４において、
前記領域特定部が、
光透過領域又は光遮蔽物の配置情報と、光源情報とに基づく投影演算により、光透過領域又は影領域を形成するペイント用プリミティブ面の頂点を特定し、
前記描画部が、
頂点が特定されたペイント用プリミティブ面に光テクスチャ又は影テクスチャをマッピングし、光テクスチャ又は影テクスチャがマッピングされたペイント用プリミティブ面を前記ペイント用領域に描画することで、ペイントテクスチャを生成することを特徴とするプログラム。
【請求項６】
請求項４又は５において、
前記領域特定部が、
光透過領域又は光遮蔽物を簡略化した形状を投影面に投影する演算を行うことで、前記光照射領域又は前記影領域を特定することを特徴とするプログラム。
【請求項７】
請求項４乃至６のいずれかにおいて、
前記描画部が、
光遮蔽物の少なくとも一部が光透過領域に存在することを条件に、投影面に光遮蔽物を投影する演算を行うことを特徴とするプログラム。
【請求項８】
請求項４乃至７のいずれかにおいて、
前記描画部が、
光透過領域に存在する光遮蔽物の数が多くなるにつれて、光照射領域に描画される光照射画像の輝度を低くすることを特徴とするプログラム。
【請求項９】
請求項４乃至８のいずれかにおいて、
前記描画部が、
フレーム更新の際に、リフレッシュ用の半透明の画像を前記ペイント用領域に描画することを特徴とするプログラム。
【請求項１０】
コンピュータ読み取り可能な情報記憶媒体であって、請求項１乃至９のいずれかのプログラムを記憶したことを特徴とする情報記憶媒体。
【請求項１１】
オブジェクト空間において所与の視点から見える画像を生成する画像生成システムであって、
流体モデルオブジェクトを構成するプリミティブ面の頂点の位置を変化させることで、流体モデルオブジェクトの形状を変形する形状変形部と、
流体モデルオブジェクトを構成する頂点又はプリミティブ面に設定される法線ベクトルの情報に基づいてテクスチャ座標を求めるテクスチャ座標演算部と、
求められたテクスチャ座標で指定される流体テクスチャのテクスチャマッピングを行いながら、流体モデルオブジェクトを描画する描画部と、
を含むことを特徴とする画像生成システム。
【請求項１２】
請求項１１において、
表示用領域とペイント用領域とを有する記憶部と、
光透過領域又は光遮蔽物の配置情報と、光源情報とに基づいて、流体モデルオブジェクトに対応する位置に設定される投影面に対して光透過領域又は光遮蔽物を投影する演算を行い、光透過領域により形成されるべき光照射領域又は光遮蔽物により形成されるべき影領域を前記ペイント用領域において特定する領域特定部とを含み、
前記描画部が、
特定された前記ペイント用領域の光照射領域又は影領域に、光照射画像又は影画像であるペイント画像を描画することで、ペイントテクスチャを生成し、生成されたペイントテクスチャのテクスチャマッピングを行いながら、流体モデルオブジェクトを前記表示用領域に描画することを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体、及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、キャラクタなどのモデルオブジェクトが配置設定されるオブジェクト空間内（仮想的な３次元空間）において所与の視点（仮想カメラ）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
このような画像生成システムでは、例えば水面に波が生じる様子や水面の画像が歪む様子もリアルに表現できることが望ましい。しかしながら、これまでの画像生成システムでは、このような水面のリアルな画像を少ない処理負荷で生成することが難しかった。
【特許文献１】特開平１１−４２３７１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、水面等の流体表面のリアルな画像を少ない処理負荷で生成できるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明は、オブジェクト空間において所与の視点から見える画像を生成する画像生成システムであって、流体モデルオブジェクトを構成するプリミティブ面の頂点の位置を変化させることで、流体モデルオブジェクトの形状を変形する形状変形部と、流体モデルオブジェクトを構成する頂点又はプリミティブ面に設定される法線ベクトルの情報に基づいてテクスチャ座標を求めるテクスチャ座標演算部と、求められたテクスチャ座標で指定される流体テクスチャのテクスチャマッピングを行いながら、流体モデルオブジェクトを描画する描画部とを含む画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータ読み取り可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【０００６】
本発明によれば、流体モデルオブジェクトの頂点の位置を変化させることで流体モデルオブジェクトの形状が変形される。そして流体モデルオブジェクトに設定される法線ベクトルの情報（座標成分、方向）に基づいてテクスチャ座標が求められ、このテクスチャ座標を用いて流体テクスチャ（流体面の画像を表現するためのテクスチャ）が流体モデルオブジェクトにマッピングされる。このようにすれば、流体モデルオブジェクトの形状変形により法線ベクトルの方向が変化し、この方向が変化する法線ベクトルに基づいてテクスチャ座標が求められる。従って、流体モデルオブジェクトの形状変形によりテクスチャ座標が変位し、この変位するテクスチャ座標に基づいて流体テクスチャがマッピングされるようになる。従って流体モデルオブジェクトの形状変形に伴い水面等の流体表面の画像が揺らぐようになり、リアルな流体表面画像を生成できる。
【０００７】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記形状変形部が、流体モデルオブジェクトに対応して設定された格子の格子点位置を変化させ、格子点を頂点とするプリミティブ面を生成することで、該プリミティブ面により構成される流体モデルオブジェクトの形状を変形するようにしてもよい。
【０００８】
このようにすれば、格子の格子点位置を変化させるという簡素な処理で、流体モデルオブジェクトの形状変形を実現できるようになる。なお格子点位置は例えば第２の座標軸（例えばＹ軸）方向に変化させることができる。
【０００９】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、テクスチャ座標演算部が、格子点の位置座標成分に基づいて基準テクスチャ座標を求め、求められた基準テクスチャ座標を、法線ベクトルの座標成分に基づいて変位させることで、流体テクスチャを指定するためのテクスチャ座標を求めるようにしてもよい。
【００１０】
このようにすれば、基準テクスチャ座標を中心として揺らぐテクスチャ座標に基づいて、流体テクスチャを流体モデルオブジェクトにマッピングできるようになり、リアルな流体表面画像を生成できる。
【００１１】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、表示用領域とペイント用領域とを有する記憶部と、光透過領域又は光遮蔽物の配置情報と、光源情報とに基づいて、流体モデルオブジェクトに対応する位置に設定される投影面に対して光透過領域又は光遮蔽物を投影する演算を行い、光透過領域により形成されるべき光照射領域又は光遮蔽物により形成されるべき影領域を前記ペイント用領域において特定する領域特定部とを含み（記憶部と領域特定部としてコンピュータを機能させ）、前記描画部が、特定された前記ペイント用領域の光照射領域又は影領域に、光照射画像又は影画像であるペイント画像を描画することで、ペイントテクスチャを生成し、生成されたペイントテクスチャのテクスチャマッピングを行いながら、流体モデルオブジェクトを前記表示用領域に描画するようにしてもよい。
【００１２】
本発明によれば、光透過領域又は光遮蔽物の配置情報と光源情報とに基づく投影演算により、光照射領域又は影領域がペイント用領域において特定される。そして特定された光照射領域又は影領域に、光照射画像又は影画像を描画することで、ペイントテクスチャが生成される。そして生成されたペイントテクスチャのテクスチャマッピングを行いながら、流体モデルオブジェクトを表示用領域に描画することで、表示画像（ゲーム画像、フレーム画像）が生成される。このようにすれば、ペイントテクスチャを生成し、生成されたペイントテクスチャをマッピングするだけという少ない処理負荷で、光透過領域や光遮蔽物の配置情報や光源情報が考慮されたリアルな光照射画像や影画像を、流体モデルオブジェクトの表面に形成できる。
【００１３】
なお生成されたペイントテクスチャは、他のテクスチャと共に流体モデルオブジェクトに直接にマルチテクスチャマッピング手法によりマッピングしてもよいし、別に用意されたペイント用モデルオブジェクトにペイントテクスチャをマッピングするようにしてもよい。
【００１４】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記領域特定部が、光透過領域又は光遮蔽物の配置情報と、光源情報とに基づく投影演算により、光透過領域又は影領域を形成するペイント用プリミティブ面の頂点を特定し、前記描画部が、頂点が特定されたペイント用プリミティブ面に光テクスチャ又は影テクスチャをマッピングし、光テクスチャ又は影テクスチャがマッピングされたペイント用プリミティブ面を前記ペイント用領域に描画することで、ペイントテクスチャを生成するようにしてもよい。
【００１５】
このようにすれば、投影演算により頂点が特定されたペイント用プリミティブ面を描画するだけで、光透過領域や影領域への光照射画像や影画像の描画処理を実現できる。
【００１６】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記領域特定部が、光透過領域又は光遮蔽物を簡略化した形状を投影面に投影する演算を行うことで、前記光照射領域又は前記影領域を特定するようにしてもよい。
【００１７】
このようにすれば、光透過領域や光遮蔽物が複雑な形状であっても、投影演算は、これらを簡略化した形状に対して行えば済むため、処理負荷を軽減できる。
【００１８】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部が、光遮蔽物の少なくとも一部が光透過領域に存在することを条件に、投影面に光遮蔽物を投影する演算を行うようにしてもよい。
【００１９】
このようにすれば、光透過領域に光遮蔽物が存在しない場合には、投影演算や描画処理を省略できるため、処理負荷を軽減できる。また光遮蔽物の一部だけが光透過領域に存在する場合にも投影演算や描画処理が行われるようになるため、光遮蔽物の一部の影が流体モデルオブジェクトの表面に形成される画像も生成できる。
【００２０】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部が、光透過領域に存在する光遮蔽物の数が多くなるにつれて、光照射領域に描画される光照射画像の輝度を低くするようにしてもよい。
【００２１】
このようにすれば、あたかも多数の光遮蔽物により光透過領域が覆われることで暗くなったかのように見えるリアルな画像を生成できる。
【００２２】
また本発明に係る画像生成システム、プログラム及び情報記憶媒体では、前記描画部が、フレーム更新の際に、リフレッシュ用の半透明の画像を前記ペイント用領域に描画するようにしてもよい。
【００２３】
このようにすれば、光遮蔽物の残像表現等を少ない処理負荷で実現できる。
【発明を実施するための最良の形態】
【００２４】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２５】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００２６】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどにより実現できる。
【００２７】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００２８】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００２９】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００３０】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００３１】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００３２】
処理部１００は、オブジェクト空間設定部１１０、移動・動作処理部１１２、視点制御部１１４、形状変形部１１６、テクスチャ座標演算部１１７、領域特定部１１８、描画部１２０、音生成部１３０を含む。なおこれらの一部を省略してもよい。
【００３３】
オブジェクト空間設定部１１０は、キャラクタ、車、樹木、柱、壁、建物、マップ（地形）などの表示物を表す各種モデルオブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのモデルオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でモデルオブジェクトを配置する。
【００３４】
移動・動作処理部１１２は、モデルオブジェクト（キャラクタ、車、又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。即ち操作部１６０によりプレーヤが入力した操作データ、プログラム（移動・動作アルゴリズム）、或いは各種データ（モーションデータ）などに基づいて、モデルオブジェクト（移動オブジェクト）をオブジェクト空間内で移動させたり、モデルオブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、モデルオブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（各パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、モデルオブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００３５】
視点制御部１１４は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置や視線方向を制御する処理）を行う。
【００３６】
例えば仮想カメラによりモデルオブジェクトを後方から撮影する場合には、モデルオブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたモデルオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた移動経路で移動させながら予め決められた回転角度で回転させるようにしてもよい。この場合には、仮想カメラの位置（移動経路）や回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。
【００３７】
形状変形部１１６は、流体モデルオブジェクト（広義には表示用モデルオブジェクト、狭義には水面モデルオブジェクト）の形状を変形するための処理を行う。具体的には流体モデルオブジェクトを構成するプリミティブ面（狭義にはポリゴン、自由曲面）の頂点（構成点、制御点）の位置を例えば時間経過（フレーム経過）やゲームイベントの発生などに伴い変化させることで、流体モデルオブジェクトの形状を変形する。更に具体的には、流体モデルオブジェクトに対応して設定された格子の格子点（grid point)の位置を時間経過に伴い変化させ、その格子点を頂点（構成点、制御点）とするプリミティブ面（ポリゴン、自由曲面）を生成することで、そのプリミティブ面により構成される流体モデルオブジェクトの形状をリアルタイムに変形する。
【００３８】
なお格子点の情報（Ｘ、Ｙ、Ｚ座標、法線ベクトル、テクスチャ座標）は、記憶部１７０の格子点情報領域１７１に記憶される。この格子点情報領域１７１は例えば格子点の個数分だけ確保される。そして形状変形部１１６は格子点情報領域１７１に記憶される格子点情報を利用して、流体モデルオブジェクトの形状変形処理を行う。
【００３９】
テクスチャ座標演算部１１７は、流体モデルオブジェクト（モデルオブジェクト）にマッピングされるテクスチャを指定するテクスチャ座標を求める処理を行う。具体的には、流体モデルオブジェクトに設定される法線ベクトルの情報に基づいて、流体テクスチャ（狭義には水面テクスチャ、液面テクスチャ）を指定するためのテクスチャ座標を求める。更に具体的には、格子点の第１、第３の位置座標成分（Ｘ、Ｚ座標）に基づいて基準テクスチャ座標（ＢＵ、ＢＶ）を求める。そして求められた基準テクスチャ座標（ＢＵ、ＢＶ）を、法線ベクトルの第１、第３の座標成分（ＮＸ、ＮＺ）に基づいて変位させることで、流体テクスチャを指定するためのテクスチャ座標（Ｕ、Ｖ）を求める。なお法線ベクトルは、流体モデルオブジェクトを構成する頂点に設定されるものであってもよいし、流体モデルオブジェクトを構成するプリミティブ面に設定されるものであってもよい。
【００４０】
領域特定部１１８は、光照射領域や影領域を、記憶部１７０のペイント用領域１７４において特定（確保）するための処理を行う。具体的には、光透過領域（穴、窓等）や光遮蔽物（虫、動物、ゴミ、ホコリ等）の配置情報（光透過領域や光遮蔽物の位置、配置方向等）と、光源情報（光源の位置、方向等）とに基づいて、投影面に対して光透過領域や光遮蔽物を投影する処理を行う。そして光透過領域により形成されるべき光照射領域（光透過領域を透過する光により照らされる領域）や光遮蔽物により形成されるべき影領域（光遮蔽物の影が形成される領域）を、ペイント用領域１７４において特定する。この特定された光照射領域や影領域には、光照射画像や影画像が描画される。
【００４１】
更に具体的には領域特定部１１８は、光透過領域や光遮蔽物の配置情報と、光源情報とに基づく投影演算により、光透過領域や影領域を形成するペイント用プリミティブ面（ポリゴン、自由曲面等）の頂点（構成点、制御点）を特定する。この頂点が特定されたペイント用プリミティブ面に光テクスチャや影テクスチャがマッピングされて、ペイント用領域１７４に描画される。
【００４２】
なお、表示用モデルオブジェクトは、画面に実際に表示されるモデルオブジェクト（複数のパーツオブジェクトで構成されるオブジェクト）であり、例えば水面などの流体、背景、キャラクタ、車、バイク、船、宇宙船、或いはロボットなどのゲームに登場する表示物を表すモデルオブジェクトである。また流体モデルオブジェクトは、水などの液体や煙などの気体の表面画像を表現するために用いられる表示用モデルオブジェクトである。
【００４３】
また投影面は、表示用モデルオブジェクトに対応する位置に設定される。例えば表示用モデルオブジェクトが、水面（広義には液面）モデルオブジェクトである場合には、水面モデルオブジェクトの近くの位置に水面に平行に投影面が配置される。
【００４４】
またＶＲＡＭ等により構成される記憶部１７０の表示用領域１７２、ペイント用領域１７４は共に、ピクセル単位で画像情報を記憶できる領域である。そして、いわゆるフレームバッファに相当する表示用領域１７２は、各フレームで表示すべきフレーム画像（ゲーム画像、表示画像）が生成される領域である。この表示用領域１７２は、フレーム更新（例えば１フレームである１／６０秒毎の更新）により描画画像がクリア（リフレッシュ）される。一方、ペイント用領域１７４は、ペイントテクスチャの生成のために使用される領域である。このペイント用領域１７４については、フレーム更新により描画画像をクリアしてもよいし、クリアしなくてもよい。
【００４５】
描画部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まず、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、或いは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、描画データ（プリミティブ面の頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）が作成される。そして、この描画データ（プリミティブ面データ）に基づいて、透視変換後（ジオメトリ処理後）のモデルオブジェクト（１又は複数プリミティブ面）を表示用領域１７２に描画する。これにより、オブジェクト空間内において所与の視点（仮想カメラ）から見える画像が生成される。
【００４６】
そして描画部１２０は、ペイント用領域１７４にペイント画像（光照射画像、影画像）を描画することで、ペイントテクスチャを生成する。より具体的には、領域特定部１１８により特定された光照射領域や影領域に、光照射画像や影画像であるペイント画像を描画して、ペイントテクスチャを生成する。そして描画部１２０は、生成されたペイントテクスチャのテクスチャマッピングを行いながら、表示用モデルオブジェクト（流体モデルオブジェクト）を表示用領域１７２に描画する。このようにすることで、今回のフレームでのフレーム画像（ゲーム画像、表示画像）が生成される。
【００４７】
描画部１２０は、テクスチャマッピング部１２２、α合成部１２４を含む。テクスチャマッピング部１２２は、ペイント用領域１７４に生成されるペイントテクスチャやテクスチャ領域１７６に記憶されるテクスチャ（テクセル値）をモデルオブジェクトにマッピングする処理を行う。具体的には、モデルオブジェクト（プリミティブ面）の頂点に設定（付与）されるテクスチャ座標等を用いて、ペイント用領域１７４やテクスチャ領域１７６からテクスチャ（色、α値などの表面プロパティ）を読み出す。そして、２次元の画像又はパターンであるテクスチャをモデルオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間（テクセル補間）などを行う。このようにペイント用領域１７４にペイント画像を描画することでリアルタイム生成されたペイントテクスチャのマッピングは、このテクスチャマッピング部１２２により行われる。
【００４８】
なおテクスチャマッピング部１２２のテクスチャマッピング手法としては種々の手法がある。例えば第１の手法では、テクスチャ領域１７６に記憶されるテクスチャ（流体面テクスチャ、液面テクスチャ、水面テクスチャ）と、生成されたペイントテクスチャ（光テクスチャ、影テクスチャ）とを、いわゆるマルチテクスチャマッピングにより表示用モデルオブジェクトにマッピングする。そしてマルチテクスチャマッピングが施された表示用モデルオブジェクトを表示用領域１７２に描画する。一方、第２の手法では、テクスチャ領域１７６のテクスチャを表示用モデルオブジェクトにマッピングし、生成されたペイントテクスチャをペイント用モデルオブジェクトにマッピングする。そしてテクスチャ領域のテクスチャがマッピングされる表示用モデルオブジェクトと、ペイントテクスチャがマッピングされるペイント用モデルオブジェクトとを、表示用領域１７２に描画する。
【００４９】
α合成部１２４はα値（Ａ値）に基づくα合成処理（αブレンディング、α加算又はα減算等）を行う。例えばα合成がαブレンディングである場合には下式の合成処理を行う。
【００５０】
ＲＱ＝（１−α）×Ｒ１＋α×Ｒ２    （１）
ＧＱ＝（１−α）×Ｇ１＋α×Ｇ２    （２）
ＢＱ＝（１−α）×Ｂ１＋α×Ｂ２    （３）
一方、α合成が加算αブレンディングである場合には下式の合成処理を行う。
【００５１】
ＲＱ＝Ｒ１＋α×Ｒ２                （４）
ＧＱ＝Ｇ１＋α×Ｇ２                （５）
ＢＱ＝Ｂ１＋α×Ｂ２                （６）
ここで、Ｒ１、Ｇ１、Ｂ１は、表示用領域１７２やペイント用領域１７４に既に描画されている画像のＲＧＢ成分であり、Ｒ２、Ｇ２、Ｂ２は、表示用領域１７２やペイント用領域１７４に描画すべき画像のＲＧＢ成分である。また、ＲＱ、ＧＱ、ＢＱは、αブレンディングにより得られる画像のＲＧＢ成分である。なお、α値は、各ピクセル（テクセル、ドット）に関連づけて記憶できる情報であり、例えば色情報以外のプラスアルファの情報である。α値は、マスク情報、半透明度（透明度、不透明度と等価）、バンプ情報などとして使用できる。
【００５２】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００５３】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００５４】
２．本実施形態の手法
次に本実施形態の手法について図面を用いて説明する。
【００５５】
２．１  光照射画像、影画像の描画
本実施形態では図２（Ａ）に示すように、光源ＬＳの情報（光源の位置、光の照射方向等）と、穴や窓などの光透過領域ＴＲの配置情報（ＴＲの位置、配置方向等）とに基づいて、ＴＲを投影面ＰＳに投影する演算を行う。そしてこの投影演算により、光照射領域ＩＲを、ペイント用領域（ＶＲＡＭ）において特定する。即ち光透過領域ＴＲを透過する光源ＬＳからの光により照らされる領域である光照射領域ＩＲを特定する。そして特定された光照射領域ＩＲに、光照射画像（光により照らされることを表現する画像）を描画することで、光照射画像が描かれたペイントテクスチャをペイント用領域（ＶＲＡＭ）に生成する。
【００５６】
より具体的には、光透過領域ＴＲを構成する頂点を投影面ＰＳに投影して、頂点の投影点を求める。そしてこれらの投影点を頂点とするペイント用プリミティブ面（ポリゴン）を生成し、このペイント用プリミティブ面に光テクスチャをマッピングしてペイント用領域（ＶＲＡＭ）の光照射領域ＩＲに描画することで、ペイントテクスチャを生成する。
【００５７】
なお図２（Ａ）に示すように、投影面ＰＳは表示用モデルオブジェクトＤＯＢに対応する位置に配置されている。即ちＤＯＢの近くの位置にＤＯＢと平行になるように投影面ＰＳを配置する。
【００５８】
次に本実施形態では図２（Ｂ）に示すように、光源ＬＳの情報と、虫やホコリなどの光遮蔽物ＳＯＢの配置情報（ＳＯＢの位置、配置方向等）とに基づいて、ＳＯＢを投影面ＰＳに投影する演算を行う。そしてこの投影演算により、影領域ＳＲを、ペイント用領域において特定する。即ち光源ＬＳからの光が光遮蔽物ＳＯＢにより遮られることで影が生成される領域である影領域を特定する。そして特定された影領域ＳＲに、影画像（ＳＯＢの影を表現する画像）を描画することで、影画像が描かれたペイントテクスチャをペイント用領域に生成する。
【００５９】
より具体的には、光遮蔽物ＳＯＢの画像がマッピングされるプリミティブ面の頂点を投影面ＰＳに投影して、頂点の投影点を求める。そしてこれらの投影点を頂点とするペイント用プリミティブ面（ポリゴン）を生成し、このペイント用プリミティブ面に影テクスチャをマッピングしてペイント用領域（ＶＲＡＭ）の影領域ＳＲに描画することで、ペイントテクスチャを生成する。
【００６０】
なお本実施形態では、光遮蔽物ＳＯＢの少なくとも一部が光透過領域ＴＲに存在することを条件に、光遮蔽物ＳＯＢを投影面ＰＳに投影する演算を行い、影画像であるペイント画像を影領域に描画するようにすることができる。具体的には、光遮蔽物ＳＯＢと光透過領域ＴＲに重なり部分がある場合に、図２（Ｂ）に示すようなＳＯＢの投影処理を行い、その重なり部分に対応する影領域に影画像を描画する。
【００６１】
図３に、このようにしてＶＲＡＭのペイント用領域に生成されたペイントテクスチャの例を示す。図３において、明るい部分が光照射領域ＩＲであり、虫の影が見える部分が影領域ＳＲである。これらの光照射領域ＩＲや影領域ＳＲの位置、配置方向、大きさは、光透過領域ＴＲや光遮蔽物ＳＯＢと光源ＬＳとの位置関係に応じてリアルタイムに変化する。また光遮蔽物ＳＯＢと光透過領域ＴＲに重なり部分がある場合に、その重なり部分に対応する影領域に影画像が描画される。
【００６２】
このようにして生成された図３のペイントテクスチャを、表示用モデルオブジェクトＤＯＢ（流体モデルオブジェクト、水面モデルオブジェクト）にマッピングすることで、図４に示すようなゲーム画像を生成できる。
【００６３】
図４では、部屋の壁には穴（光透過領域）が空いており、部屋の床には水面が張ってある。そして光源からの光が穴から漏れて水面に映り込んでおり、光源からの光により水面が照らされる様子（光照射画像）が表現されている。更に、穴付近には虫（遮蔽物）が存在し、その影も水面に映り込んでおり、虫の影が水面上で動く様子（影画像）がリアルに表現されている。なお図４において光源から伸びている投影ラインは、虫の影を生成する投影演算の際の投影ライン（投影ボリューム）である。
【００６４】
図５に、図４とは異なる視点から見た場合のゲーム画像を示す。図５は上方の視点から見たゲーム画像である。図５において、光に照らされて明るくなっている領域が、図３の光照射領域ＩＲに相当する。また虫の影の周りの四角の線の領域が、図３の影領域ＳＲに相当する。図５に示すように本実施形態では、光源と穴や虫との位置関係に応じて、光照射領域や影領域の位置、配置方向、大きさが変化する。また虫の一部だけが穴に存在する場合にはその一部の影だけが水面に映り込む。このように本実施形態では、これまでに無いリアルな光照射画像や影画像を生成できる。そしてこのような光照射画像や影画像の生成は図２（Ａ）（Ｂ）の手法で図３に示すようなペイントテクスチャを生成し、このペイントテクスチャを表示用モデルオブジェクトにマッピングするだけで実現でき、少ない処理負荷でリアルな画像を生成することに成功している。
【００６５】
なお図６では、表示用モデルオブジェクトＤＯＢ（流体モデルオブジェクト）を構成するプリミティブ面の頂点の位置を変化させることで、ＤＯＢを変形させる。そして表示用モデルオブジェクトＤＯＢを構成する頂点又はプリミティブ面に設定される法線ベクトルＮに基づきテクスチャ座標を求め、このテクスチャ座標に基づいて図３のペイントテクスチャをＤＯＢにマッピングする。このようにすることで、表示モデルオブジェクトＤＯＢの形状変形に伴い、ＤＯＢにマッピングされる画像も揺らめくようになり、リアルな画像を生成できる。この図６のマッピング手法については後に詳述する。
【００６６】
２．２  光透過領域、光遮蔽物の形状の簡略化
光照射領域や影領域の特定は、光透過領域や光遮蔽物を簡略化した形状を投影面に投影する演算により行うことが望ましい。例えば図７（Ａ）において光透過領域ＴＲは６頂点になっている。この場合に、これらの全ての６頂点について投影演算を行うと、処理負荷が重くなる。
【００６７】
そこで図７（Ａ）に示すように、この６頂点の光透過領域ＴＲを例えば４つの頂点ＶＸ１〜ＶＸ４で構成される形状に簡略化する（ＴＲを内包する形状を用意する）。そして、これらの４つの頂点ＶＸ１〜ＶＸ４（簡略化形状）を投影面に投影することで、光照射領域（ペイント用プリミティブ面の頂点）を特定する。このようにすることで、処理負荷を軽減できる。
【００６８】
また、光遮蔽物である虫の形状は複雑であり、この複雑な形状の光遮蔽物の全ての頂点について投影演算を行うと、処理負荷が重くなる。
【００６９】
そこで、光遮蔽物ＳＯＢである虫を簡略化した形状に相当する例えば四角形のプリミティブ面（ポリゴン）を用意する（ＳＯＢを内包する形状を用意する）。そしてこのプリミティブ面に図７（Ｂ）のような虫のテクスチャ（光遮蔽物テクスチャ）をマッピングすることで、穴の近くで動く虫の画像を表現する。またこの四角形のプリミティブ面（簡略化形状）を投影面に投影することで、影領域（ペイント用プリミティブ面の頂点）を特定する。このようにすることで、処理負荷を軽減できる。なお光透過領域や光遮蔽物の簡略化形状は上述したような四角形状には限定されず、種々の変形実施が可能である。
【００７０】
２．３  光照射画像の輝度の制御
さて、正確な物理シミュレーションによるシェーディング演算を行って、穴の光や虫の影の画像を生成すると、光遮蔽物である虫の状態により光の照射状態も変化するはずである。
【００７１】
しかしながら本実施形態では図２（Ａ）（Ｂ）に示すように、光照射画像や影画像の描画によりペイントテクスチャを生成し、生成されたペイントテクスチャを表示用モデルオブジェクトにマッピングすることで、穴の光や虫の影を表現している。このため光の照射状態は、光遮蔽物である虫の状態の影響を受けず、今ひとつリアルな画像を生成できない。
【００７２】
そこで図８では、穴（光透過領域）に存在する虫（光遮蔽物）の数が多くなるにつれて、光照射領域に描画される光照射画像の輝度を低くしている。このようにすれば、虫の数が多くなるにつれて、光の照射状態が暗くなり、あたかも多くの虫により穴がふさがれて暗くなったかのように見える画像を生成できる。これによりプレーヤの仮想現実感を向上できる。なお、元の光照射画像（光テクスチャ）の光部領域（光の領域）と、作成された光照射領域画像（影画像が形成された光照射画像）の光部領域との面積比（ドット数比）に応じて、光照射領域に描画される光照射画像の輝度を低くしてもよい。
【００７３】
また光遮蔽物の数が増えるにつれて光照射画像の輝度を低くする処理は、ペイント用ポリゴンにマッピングされる光テクスチャを、光遮蔽物の数に応じて高い輝度の光テクスチャから低い輝度の光テクスチャに切り替えることで実現できる。例えば光遮蔽物の個数が０〜Ｌ個の場合には高い輝度の第１の光テクスチャをペイント用ポリゴンにマッピングし、Ｌ〜Ｍ個の場合には中ぐらいの輝度の第２の光テクスチャをマッピングし、Ｍ〜Ｎ個の場合には低い輝度の第３の光テクスチャをマッピングする。或いは、光テクスチャがマッピングされるペイント用ポリゴン自体に設定する輝度を光遮蔽物の数に応じて切り替えるようにしてもよい。
【００７４】
２．４  リフレッシュ用半透明画像の描画
さて、虫の影画像のよりリアルな表現のためには、影の残像についても表現できることが望ましい。そこで本実施形態では、フレーム更新の際に、リフレッシュ用の半透明の画像をペイント用領域に描画するようにしている。
【００７５】
例えば図９では、図２（Ａ）（Ｂ）の手法によりペイントテクスチャが生成されたペイント用領域の全領域に対して、フレーム更新の際にリフレッシュ用の半透明画像（例えば灰色の画像）を描画している。このようにすれば、前のフレームＦ−１で生成されたペイントテクスチャの画像が、フレームＦにおいてペイント用領域に残るようになる。従って例えば虫が動いている場合には、動く虫の影の残像がペイントテクスチャ上に形成されるようになり、リアルな残像表現を実現できる。即ちフレーム更新の際に例えば真っ黒のリフレッシュ（クリア）画像を描画すると、前のフレームＦ−１のペイントテクスチャは消えてしまい、残像は残らなくなるが、半透明のリフレッシュ画像を描画すれば、残像を残すことができる。
【００７６】
なおリフレッシュ用の半透明画像を描画するタイミングは、各フレームの一番最初のタイミングであってもよいし、一番最後のタイミングであってもよい。またリフレッシュ用半透明画像は、例えばαブレンディングなどのα合成を行いながら描画することが望ましい。
【００７７】
２．５  水面の表現
本実施形態では水面のリアルな表現のために以下の手法を採用している。なお以下では水面の表現への適用例を主に説明するが、本実施形態の手法は、水面以外の液面の表現にも適用できる。或いは液体以外の流体（例えば煙などの気体）にも本実施形態の手法は適用できる。
【００７８】
図１０に本実施形態により生成されるゲーム画像を示す。図１０ではキャラクタが水の中を動くことで、水面が揺れたり流れるゲーム画像が生成されている。このような水面の挙動を表現するために、本実施形態では、水面モデルオブジェクト（広義には流体モデルオブジェクト。以下の説明でも同様）を構成するプリミティブ面の頂点の位置を、時間経過やゲームイベントの発生などに伴い変化させることで、水面モデルオブジェクトの形状を変形させている。
【００７９】
より具体的には水面モデルオブジェクトに対応した図１１（Ａ）に示すような格子を設定する。図１１（Ａ）は、格子（水面）を上から見た図であり、この格子の面は図１０の水面（図６のＤＯＢ）に平行に設定されている。この格子の格子点（grid point）位置を、時間経過（フレーム更新）やゲームイベント（キャラクタの進入イベント）の発生などに応じて変化させ、その格子点を頂点（構成点、制御点）とするプリミティブ面（ポリゴン）を生成することで、そのプリミティブ面により構成される水面モデルオブジェクトの形状を変形させる。
【００８０】
そして図１１（Ｂ）では格子点（格子交点）を高さ方向（Ｙ方向）で変化させ、水平方向（Ｘ、Ｚ方向）では変化させないようにしている。このように格子点を高さ方向で変化させることで、水面の波が上下する様子をリアルに表現できる。
【００８１】
また図１２（Ａ）に示すように、格子点Ｇ０の高さは、その周囲の格子点Ｇ１〜Ｇ４の影響を受けて決定される。即ち図１２（Ｂ）に示すように、前のフレームＦ−１における周囲の格子点Ｇ２、Ｇ４の高さが高いと、格子点Ｇ２、Ｇ４の影響を受けて、当該フレームＦでの格子点Ｇ０の高さも高くなる。このようにすれば例えば図１０に示すようにキャラクタが水の中を動くと、それによって水面に波が生じ、その波がキャラクタの周辺から外側に向かって徐々に移動する様子を表現できる。従って水面に生じるさざ波などのリアルな画像表現を実現できる。
【００８２】
なおこのような周囲の格子点の影響を考慮する処理は、例えば各格子点に周囲の格子点からの影響度パラメータを持たせ、この影響度パラメータに基づいて各格子点の高さを演算すればよい。
【００８３】
本実施形態では、以上のような処理により変形する水面モデルオブジェクトに対して水面の元絵テクスチャや図３のペイントテクスチャをマッピングするためのテクスチャ座標を、水面モデルオブジェクト（格子点）の法線ベクトルに基づいて求めている。
【００８４】
例えば図１３では、プリミティブ面（ポリゴン）ＳＦ１の向きを表す法線ベクトルとＳＦ２の向きを表す法線ベクトルをベクトル加算して正規化したものが、頂点（格子点）ＶＸ１の法線ベクトルＮ１になっている。同様にプリミティブ面ＳＦ２、ＳＦ３の法線ベクトルをベクトル加算して正規化したものが、頂点ＶＸ２の法線ベクトルＮ２となり、ＳＦ３、ＳＦ４の法線ベクトルをベクトル加算して正規化したものが、頂点ＶＸ３の法線ベクトルＮ３となっている。なおプリミティブ面に設定される法線ベクトルをそのまま用いるようにしてもよい。
【００８５】
まず図１４に示すように、格子点の位置座標成分（Ｘ、Ｚ成分。第１、第３の座標成分）に基づいて基準テクスチャ座標（ＢＵ、ＢＶ）を求める。即ち左隅の格子点であれば基準テクスチャ座標の指定位置も左隅になり、右隅の格子点であれば基準テクスチャ座標の指定位置も右隅になる。
【００８６】
この場合、水面の元絵テクスチャ（水面の絵柄が描かれたテクスチャ）については、同じ絵柄のテクスチャをリピートして使用する手法を採用する。即ち、テクスチャのリピート間隔で隣り合う格子のブロック（ブロック）を第Ｊのブロック、第Ｊ＋１のブロックとした場合に、第Ｊのブロックの第Ｉの格子点から求められる基準テクスチャ座標と、第Ｊ＋１のブロックの第Ｉの格子点から求められる基準テクスチャ座標は同じになる。
【００８７】
一方、図３のペイントテクスチャでは、テクスチャをリピートする手法を採用せず、１枚のペイントテクスチャが格子（水面モデルオブジェクト）の全面に対応する。従って、各格子点のＸ、Ｚ成分に１対１に対応するようにして基準テクスチャ座標が求められる。
【００８８】
次に、このようにして求められた基準テクスチャ座標（ＢＵ、ＢＶ）を、法線ベクトル（ＮＸ、ＮＹ、ＮＺ）の情報に基づいて変位させることで、元絵テクスチャやペイントテクスチャをマッピングするためのテクスチャ座標（Ｕ、Ｖ）を求める。
【００８９】
例えば図１５では、格子点Ｇ（Ｘ、Ｙ、Ｚ）のＸ、Ｚ成分（第１、第３の座標成分）に基づいて、基準テクスチャ座標（ＢＵ、ＢＶ）が求められている。そして法線ベクトルの第１、第３の座標成分（ＮＸ、ＮＺ）に基づいて、基準テクスチャ座標（ＢＵ、ＢＶ）が（ＤＵ、ＤＶ）だけ変位されて、テクスチャ座標（Ｕ、Ｖ）が求められる。
【００９０】
具体的には例えば、
Ｕ＝ＢＵ＋ＤＵ＝ＢＵ＋Ｋ×ＮＸ      （７）
Ｖ＝ＢＶ＋ＤＶ＝ＢＶ＋Ｋ×ＮＺ      （８）
となる。
【００９１】
ここでＫは最終的なテクスチャ座標（Ｕ、Ｖ）を計算するための係数であり、Ｋの値を大きくすると、法線ベクトルの揺らぎ（変位）が小さくても、最終的なテクスチャ座標（Ｕ、Ｖ）の揺らぎは大きくなる。一方、Ｋの値を小さくすると、法線ベクトルの揺らぎが大きくても、最終的なテクスチャ座標（Ｕ、Ｖ）の揺らぎは小さくなる。
【００９２】
次に、格子点Ｇ（Ｘ、Ｙ、Ｚ）に対応する頂点に、この求められたテクスチャ座標（Ｕ、Ｖ）を設定する。そしてこのテクスチャ座標に基づいて、元絵テクスチャやペイントテクスチャを水面モデルオブジェクトにマッピングする。このようにすれば、水面モデルオブジェクトの形状が変化することで水面モデルオブジェクトの法線ベクトルの方向が揺らぐと（変位すると）、それに応じて、各頂点（各格子）に設定されるテクスチャ座標も揺らぐようになる。これにより、均一ではなく歪んだテクスチャが水面モデルオブジェクトにマッピングされるようになり、水面の変化に伴い水面の模様も揺らいでいるように見えるリアルな水面表現を実現できる。
【００９３】
３．本実施形態の処理
次に、本実施形態の詳細な処理例について図１６、図１７のフローチャートを用いて説明する
図１６は、光照射画像や影画像のペイントテクスチャを生成してマッピングする処理のフローチャートである。まずペイントテクスチャを生成するためのペイント用領域をＶＲＡＭに確保し、リフレッシュ用の黒画像を描画してペイント用領域をクリアしておく（ステップＳ１）。そして光透過領域（穴）の配置情報と光源情報に基づき、光透過領域を投影面に投影し、ペイント用ポリゴンの頂点を特定する（ステップＳ２。図２（Ａ）参照）。次に、頂点が特定されたペイント用ポリゴンに光テクスチャ（光照射画像）をマッピングして、そのペイント用ポリゴンをペイント用領域に描画する（ステップＳ３）。そして全ての光透過領域について処理したか否かを判断し（ステップＳ４）、処理していない光透過領域がある場合にはステップＳ２に戻る。
【００９４】
次に、光遮蔽物（虫）の少なくとも一部が光透過領域（穴）の中に入っているか否かを判断する（ステップＳ５）。そして光遮蔽物の少なくとも一部が入っている場合には、光遮蔽物の配置情報と光源情報に基づき、光遮蔽物を投影面に投影し、ペイント用ポリゴンの頂点を特定する（ステップＳ６。図２（Ｂ）参照）。次に、頂点が特定されたペイント用ポリゴンに影テクスチャ（影画像）をマッピングして、そのペイント用ポリゴンをペイント用領域に描画する（ステップＳ７）。そして、全ての光遮蔽物（虫）について処理したか否かを判断し（ステップＳ８）、処理していない光遮蔽物がある場合にはステップＳ５に戻る。
【００９５】
最後に、ペイント用領域に生成されたペイントテクスチャを、表示用モデルオブジェクト（水面モデルオブジェクト）にマッピングして、その表示用モデルオブジェクトをＶＲＡＭの表示用領域に描画する（ステップＳ９）。
【００９６】
以上のようにすることで、図３に示すようなペイントテクスチャが生成してマッピングされ、図４に示すようなゲーム画像を生成できる。
【００９７】
図１７は水面モデルオブジェクト（表示用モデルオブジェクト）の形状変形とテクスチャマッピングの詳細を示すフローチャートである。
【００９８】
まず、格子点情報（座標、法線ベクトル、テクスチャ座標）を記憶するための格子点情報領域を、格子点の個数分だけ記憶部に確保する（ステップＳ１１）。次に各格子点情報領域に各格子点の高さ（Ｙ座標）を記憶する（ステップＳ１２）。そして全ての格子点について処理したか否かを判断し（ステップＳ１３）、処理していない格子点がある場合にはステップＳ１２に戻る。
【００９９】
次に、処理対象となる格子点の周囲の４つの格子点の前回フレームでの高さを考慮して、処理対象となる格子点の当該フレームでの高さを決定する（ステップＳ１４。図１２（Ａ）（Ｂ）参照）。そして全ての格子点について処理したか否かを判断し（ステップＳ１５）、処理していない格子点がある場合にはステップＳ１４に戻る。
【０１００】
次に、各格子点の法線ベクトルを算出し、各格子点情報領域に記憶する（ステップＳ１６。図１３参照）。そして全ての格子点について処理したか否かを判断し（ステップＳ１７）、処理していない格子点がある場合にはステップＳ１６に戻る。
【０１０１】
次に、算出された法線ベクトルに基づき各格子点のテクスチャ座標（Ｕ、Ｖ）を算出し、各格子点情報領域に記憶する（ステップＳ１８。図１４、図１５参照）。この際、格子点の位置座標に基づいて基準テクスチャ座標を求め、求められた基準テクスチャ座標を法線ベクトルに基づいて変位させることで、テクスチャ座標を求める。そして全ての格子点について処理したか否かを判断し（ステップＳ１９）、処理していない格子点がある場合にはステップＳ１８に戻る。
【０１０２】
次に、算出されたテクスチャ座標（Ｕ，Ｖ）に基づいて、表示用モデルオブジェクト（水面モデルオブジェクト）に元絵テクスチャやペイントテクスチャをマッピングして、その表示用モデルオブジェクトを表示用領域に描画する（ステップＳ２９）。
【０１０３】
以上のようにすることで、図１０に示すように水面の形状や模様が変化するリアルなゲーム画像を生成できる。
【０１０４】
４．ハードウェア構成
図１８に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１０５】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【０１０６】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データを描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【０１０７】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【０１０８】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【０１０９】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１１０】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１１１】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語（表示用モデルオブジェクト、流体モデルオブジェクト、流体、液面、プリミティブ面等）として引用された用語（流体モデルオブジェクト、水面モデルパーティクル、水、水面、ポリゴン等）は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。
【０１１２】
またペイントテクスチャの生成手法やマッピング手法も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。また本実施形態では流体モデルオブジェクトが水面モデルオブジェクトである場合について説明したが、流体モデルオブジェクトは水面以外のモデルオブジェクトであってもよい。
【０１１３】
また本発明は種々のゲームに適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯端末等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１１４】
【図１】本実施形態の画像生成システムの機能ブロック図の例である。
【図２】図２（Ａ）（Ｂ）は光照射領域、影領域の特定手法の説明図である。
【図３】本実施形態により生成されるペイントテクスチャの例である。
【図４】本実施形態により生成されるゲーム画像の例である。
【図５】本実施形態により生成されるゲーム画像の例である。
【図６】ペイントテクスチャのマッピング手法の説明図である。
【図７】図７（Ａ）（Ｂ）は光透過領域や光遮蔽物の形状簡略化手法の説明図である。
【図８】光遮蔽物の数に応じて光照射画像の輝度を低くする手法の説明図である。
【図９】リフレッシュ用半透明画像を描画する手法の説明図である。
【図１０】本実施形態により生成されるゲーム画像の例である。
【図１１】図１１（Ａ）（Ｂ）は格子点を用いた形状変形手法の説明図である。
【図１２】図１２（Ａ）（Ｂ）は格子点を用いた形状変形手法の説明図である。
【図１３】法線ベクトルを算出する手法の説明図である。
【図１４】格子点位置と法線ベクトルに基づいてテクスチャ座標を求める手法の説明図である。
【図１５】格子点位置と法線ベクトルに基づいてテクスチャ座標を求める手法の説明図である。
【図１６】本実施形態の具体的な処理のフローチャートである。
【図１７】本実施形態の具体的な処理のフローチャートである。
【図１８】ハードウェア構成例である。
【符号の説明】
【０１１５】
ＬＳ  光源、ＰＳ  投影面、ＤＯＢ  表示用（水面）モデルオブジェクト、
ＴＲ  光透過領域、ＩＲ  光照射領域、ＳＯＢ  光遮蔽物、ＳＲ  影領域、
１００  処理部、１１０  オブジェクト空間設定部、１１２  移動・動作処理部、
１１４  視点制御部、１１６  形状変形部、１１７  テクスチャ座標演算部、
１１８  領域特定部、１２０  画像生成部、１２２  テクスチャマッピング部、
１２４  α合成部、１３０  音生成部、１６０  操作部、１７０  記憶部、
１７１  格子点情報領域、１７２  表示用領域、１７４  ペイント用領域、
１７６  テクスチャ領域、１８０  情報記憶媒体、１９０  表示部、
１９２  音出力部、１９４  携帯型情報記憶装置、１９６  通信部
【図１】
2005141647.tif 000003
【図２】
2005141647.tif 000004
【図６】
2005141647.tif 000005
【図１１】
2005141647.tif 000006
【図１２】
2005141647.tif 000007
【図１３】
2005141647.tif 000008
【図１４】
2005141647.tif 000009
【図１５】
2005141647.tif 000010
【図１６】
2005141647.tif 000011
【図１７】
2005141647.tif 000012
【図１８】
2005141647.tif 000013
【図３】
2005141647.tif 000014
【図４】
2005141647.tif 000015
【図５】
2005141647.tif 000016
【図７】
2005141647.tif 000017
【図８】
2005141647.tif 000018
【図９】
2005141647.tif 000019
【図１０】
2005141647.tif 000020