(57)【要約】【課題】  少ないデータ量で堆積物の量的変化をリアルに表現することができるプログラム、情報記憶媒体及び画像生成システムを提供する。【解決手段】  オブジェクト空間において堆積物の堆積量が増加する堆積イベントが発生した場合に、時間経過に伴って変動する頂点移動情報に基づいて、堆積物モデルの元オブジェクトの頂点を堆積方向に移動させることによって頂点データを変更する頂点シェーディングを行い、頂点シェーディング後の頂点データに基づいて、オブジェクト空間を所与の視点から見た画像を生成する。【選択図】  図３
2006285510.tif 000002
【特許請求の範囲】
【請求項１】
画像を生成するためのプログラムであって、
オブジェクト空間において堆積物の堆積量が増加する堆積イベントが発生したか否かを判定するイベント判定部と、
前記堆積イベントが発生したと判定された場合に、堆積物モデルの元オブジェクトの頂点データを変更する頂点シェーディングを行い、頂点シェーディング後の頂点データに基づいて、前記オブジェクト空間を所与の視点から見た画像を生成する画像生成部として、
コンピュータを機能させ、
前記画像生成部が、
時間経過に伴って変動する頂点移動情報に基づいて、前記堆積物モデルの元オブジェクトの頂点を堆積方向に移動させる頂点シェーディングを行うことを特徴とするプログラム。
【請求項２】
請求項１において、
前記堆積物モデルの元オブジェクトに対して、格子状に高さ情報が設定されたハイトマップデータが対応づけられており、
前記画像生成部が、
前記堆積物モデルの元オブジェクトに対応づけられたハイトマップデータを参照して格子点に設定された高さ情報を取得し、取得された高さ情報を含む前記頂点移動情報に基づいて、前記堆積物モデルの元オブジェクトの頂点を堆積方向に移動させる頂点シェーディングを行うことを特徴とするプログラム。
【請求項３】
請求項１または２において、
前記堆積物モデルの元オブジェクトに対して、格子状に法線ベクトル情報が設定された法線マップデータが対応づけられており、
前記画像生成部が、
前記堆積物モデルの元オブジェクトに対応づけられた法線マップデータを参照して格子点に設定された法線ベクトル情報を取得し、取得された法線ベクトル情報を含む前記頂点移動情報に基づいて、前記堆積物モデルの元オブジェクトの頂点を法線ベクトルの向きに沿って移動させる頂点シェーディングを行うことを特徴とするプログラム。
【請求項４】
請求項１〜３のいずれかにおいて、
前記イベント判定部が、
頂点を堆積方向に移動させた前記堆積物モデルのオブジェクトに対し、他のオブジェクトが接触する接触イベントが発生したか否かを判定し、
前記他のオブジェクトに対して、格子状に高さ情報が設定されたハイトマップデータが対応づけられており、
前記画像生成部が、
前記他のオブジェクトに対応づけられたハイトマップデータを参照して格子点に設定された高さ情報を取得し、取得された高さ情報に基づいて、前記堆積物モデルのオブジェクトの頂点を堆積方向とは逆の方向に移動させる頂点シェーディングを行うことを特徴とするプログラム。
【請求項５】
請求項４において、
前記イベント判定部が、
前記堆積物モデルのオブジェクトに対して設定された第１のヒットチェック領域と前記他のオブジェクトについて設定された第２のヒットチェック領域とがオーバーラップするときに前記接触イベントが発生したと判定し、
前記堆積物モデルの元オブジェクトの頂点が堆積方向に移動された場合、あるいは頂点が堆積方向に移動された前記堆積部モデルのオブジェクトの頂点が該堆積方向とは逆の方向に移動された場合に、移動後の頂点の位置に基づいて、前記堆積物モデルのオブジェクトに対して設定される第１のヒットチェック領域を再設定するヒットチェック領域設定部としてコンピュータを機能させることを特徴とするプログラム。
【請求項６】
請求項１〜５のいずれかにおいて、
前記堆積物モデルの元オブジェクトに堆積制限エリアを設定する堆積制限エリア設定部としてコンピュータを機能させ、
前記画像生成部が、
前記堆積物モデルの元オブジェクトに対して前記堆積制限エリアが設定された場合に、その堆積制限エリアでの頂点の移動を制限する頂点シェーディングを行うことを特徴とするプログラム。
【請求項７】
請求項１〜６のいずれかにおいて、
前記画像生成部が、
前記堆積物モデルの元オブジェクトの頂点を移動させる頂点シェーディングが行われた場合に、該頂点シェーディング後の堆積物モデルのオブジェクトについてピクセル単位で画像情報を変更するピクセルシェーディングを行うことを特徴とするプログラム。
【請求項８】
請求項１〜７のいずれかにおいて、
前記画像生成部が、
前記堆積イベントが終了した場合に、堆積物モデルのオブジェクトの頂点を前記堆積方向とは逆の方向に移動させる頂点シェーディングを行うことを特徴とするプログラム。
【請求項９】
請求項８において、
前記画像生成部が、
前記堆積イベントの発生中は、第１の頂点移動情報に基づいて、前記堆積物モデルの元オブジェクトの頂点を堆積方向に移動し、
前記堆積イベントの終了後は、第１の頂点移動情報と異なる第２の頂点移動情報に基づいて、頂点を堆積方向に移動させた堆積物モデルのオブジェクトの頂点を堆積方向とは逆の方向に移動する頂点シェーディングを行うことを特徴とするプログラム。
【請求項１０】
請求項８または９において、
前記画像生成部が、
前記堆積イベントの終了後に、頂点を前記堆積方向とは逆の方向に移動させた堆積物モデルの元オブジェクトについてピクセル単位で画像情報を変更するピクセルシェーディングを行うことを特徴とするプログラム。
【請求項１１】
請求項１〜１０のいずれかにおいて、
前記イベント判定部が、
前記オブジェクト空間において堆積物が第１のエリアから第２のエリアに移動する堆積物移動イベントが発生したか否かを判定し、
前記画像生成部が、
前記堆積物移動イベントが発生したと判定された場合に、前記第１のエリアでは、堆積物モデルのオブジェクトの頂点を、前記堆積方向とは逆の方向に移動させるとともに、前記第２のエリアでは、堆積物モデルのオブジェクトの頂点を堆積方向に移動させる頂点シェーディングを行うことを特徴とするプログラム。
【請求項１２】
請求項１〜１１のいずれかにおいて、
前記堆積物モデルの元オブジェクトの所与のエリアにおいて他のエリアとは異なる頂点移動情報が設定されており、
前記画像生成部が、
前記堆積物モデルの元オブジェクトの頂点を、前記エリアごとに設定された頂点移動情報に基づいて堆積方向に移動させる頂点シェーディングを行うことを特徴とするプログラム。
【請求項１３】
コンピュータにより読取可能な情報記憶媒体であって、請求項１〜１２のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
【請求項１４】
画像を生成するための画像生成システムであって、
オブジェクト空間において堆積物の堆積量が増加する堆積イベントが発生したか否かを判定するイベント判定部と、
前記堆積イベントが発生したと判定された場合に、前記堆積物モデルの元オブジェクトの頂点データを変更する頂点シェーディングを行い、頂点シェーディング後の頂点データに基づいて、前記オブジェクト空間を所与の視点から見た画像を生成する画像生成部と、
を含み、
前記画像生成部が、
時間経過に伴って変動する頂点移動情報に基づいて、前記堆積物モデルの元オブジェクトの頂点を堆積方向に移動させる頂点シェーディングを行うことを特徴とする画像生成システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラム、情報記憶媒体及び画像生成システムに関する。
【背景技術】
【０００２】
従来より、キャラクタなどのオブジェクトが配置設定されるオブジェクト空間（仮想的な３次元空間）において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（ゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
このような画像生成システムでは、プレーヤの仮想現実感を高めるために、例えば雪や灰などが降り積もる様子についてもリアルに表現できることが望ましい。しかしながら、従来の技術では、時事刻々と堆積量が変化するようなモデルをリアルに表現するためには、変化の態様ごとに堆積物表現用のモデルデータを用意しておくことが必要であったため、堆積量の変化のリアルタイム性を追求すると、予め用意するモデルデータの量が莫大なものとなってしまい、現実的ではない。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明は、上記事情に鑑みてなされたものであり、その目的は、少ないデータ量で堆積物の量的変化をリアルに表現することができるプログラム、情報記憶媒体及び画像生成システムを提供することにある。
【課題を解決するための手段】
【０００５】
（１）本発明は、画像を生成するための画像生成システムであって、オブジェクト空間において堆積物の堆積量が増加する堆積イベントが発生したか否かを判定するイベント判定部と、前記堆積イベントが発生したと判定された場合に、前記堆積物モデルの元オブジェクトの頂点データを変更する頂点シェーディングを行い、頂点シェーディング後の頂点データに基づいて、前記オブジェクト空間を所与の視点から見た画像を生成する画像生成部と、を含み、前記画像生成部が、時間経過に伴って変動する頂点移動情報に基づいて、前記堆積物モデルの元オブジェクトの頂点を堆積方向に移動させる頂点シェーディングを行う画像生成システムに関係する。また本発明は、上記各部としてコンピュータを機能させるプログラムに関係する。また本発明は、コンピュータにより読取可能な情報記憶媒体であって、上記各部としてコンピュータを機能させるプログラムを記憶（記録）した情報記憶媒体に関係する。
【０００６】
頂点移動情報とは、オブジェクトを構成する頂点の移動量や頂点の移動方向を決めるパラメータであって、例えば時間を引数とする関数として定義することができる。
【０００７】
また堆積方向とは、堆積物の堆積量が増加する方向、言い換えればオブジェクトの体積が増加する方向であることを意味する。また堆積方向の逆方向という場合には、堆積方向の真逆の方向であることは必要ではなく、堆積物の堆積量が減少する方向、言い換えればオブジェクトの体積が減少する方向であればよいことを意味する。
【０００８】
本発明によれば、堆積物モデルの元オブジェクトを時間の経過に応じて変形させて、堆積量が増加する様子を表した画像を生成する。このため視点位置や視線方向が変わった場合であっても、堆積物の立体形状が徐々に変化していく様子が把握できるリアルな表現を行うことができる。そして共通の元オブジェクトを用いて時間経過に応じて堆積物の堆積量が変化する画像を生成することができるため、予め大量のモデルデータを用意する必要がなく、メモリの使用量を節約することができる。
【０００９】
（２）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記堆積物モデルの元オブジェクトに対して、格子状に高さ情報が設定されたハイトマップデータが対応づけられており、前記画像生成部が、前記堆積物モデルの元オブジェクトに対応づけられたハイトマップデータを参照して格子点に設定された高さ情報を取得し、取得された高さ情報を含む前記頂点移動情報に基づいて、前記堆積物モデルの元オブジェクトの頂点を堆積方向に移動させる頂点シェーディングを行うようにしてもよい。このようにすれば、時間経過による堆積物の堆積量の増加に伴って、堆積物モデルのオブジェクトを構成する頂点の位置を動的に制御して元オブジェクトを変形させることができる。
【００１０】
（３）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記堆積物モデルの元オブジェクトに対して、格子状に法線ベクトル情報が設定された法線マップデータが対応づけられており、前記画像生成部が、前記堆積物モデルの元オブジェクトに対応づけられた法線マップデータを参照して格子点に設定された法線ベクトル情報を取得し、取得された法線ベクトル情報を含む前記頂点移動情報に基づいて、前記堆積物モデルの元オブジェクトの頂点を法線ベクトルの向きに沿って移動させる頂点シェーディングを行うようにしてもよい。このようにしても、時間経過による堆積物の堆積量の増加に伴って、堆積物モデルのオブジェクトを構成する頂点の位置を動的に制御して元オブジェクトを変形させることができる。
【００１１】
（４）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記イベント判定部が、頂点を堆積方向に移動させた堆積物モデルのオブジェクトに対し、他のオブジェクトが接触する接触イベントが発生したか否かを判定し、前記他のオブジェクトに対して、格子状に高さ情報が設定されたハイトマップデータが対応づけられており、前記画像生成部が、前記他のオブジェクトに対応づけられたハイトマップデータを参照して格子点に設定された高さ情報を取得し、取得された高さ情報に基づいて、前記堆積物モデルのオブジェクトの頂点を堆積方向とは逆の方向に移動させる頂点シェーディングを行うようにしてもよい。このようにすれば、いったん変形させた堆積物モデルのオブジェクトを、これと接触する他のオブジェクトの形状に応じて陥没する様子をリアルに表現することができる。なお、堆積方向と逆の方向に頂点を移動させるという場合、堆積方向に対して真逆の方向に頂点を移動させる必要はなく、堆積物の堆積量が減少するように、言い換えれば堆積物モデルのオブジェクトの体積が減少するように頂点を移動させればよい。
【００１２】
（５）また本発明の画像生成システムでは、前記イベント判定部が、前記堆積物モデルのオブジェクトについて設定された第１のヒットチェック領域と前記他のオブジェクトについて設定された第２のヒットチェック領域とがオーバーラップするときに前記接触イベントが発生したと判定し、前記堆積物モデルの元オブジェクトの頂点が堆積方向に移動された場合、あるいは頂点が堆積方向に移動された前記堆積部モデルのオブジェクトの頂点が該堆積方向とは逆の方向に移動された場合に、移動後の頂点の位置に基づいて前記第１のヒットチェック領域を再設定するヒットチェック領域設定部を含んでいてもよい。また本発明のプログラム及び情報記憶媒体では、上記イベント判定部及びヒットチェック領域設定部としてコンピュータを機能させてもよい。このようにすれば、堆積物の堆積量の増加あるいは減少に伴う堆積面の位置変化の影響をヒットチェックに反映させることができる。
【００１３】
（６）また本発明の画像生成システムでは、前記堆積物モデルの元オブジェクトに堆積制限エリアを設定する堆積制限エリア設定部を含み、前記画像生成部が、前記堆積物モデルの元オブジェクトに対して前記堆積制限エリアが設定された場合に、その堆積制限エリアでの頂点の移動を制限する頂点シェーディングを行うようにしてもよい。また本発明のプログラム及び情報記憶媒体では、上記堆積制限エリア設定部及び画像生成部としてコンピュータを機能させてもよい。このようにすれば、例えば、堆積物として雪を表現する場合に、熱源に近いエリアを体積制限エリアとして設定することによって、温度の高い部分には雪が積もらないようにして、雪が降り積もるイベントをリアルに表現することができるようになる。
【００１４】
（７）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記画像生成部が、前記堆積物モデルの元オブジェクトの頂点を移動させる頂点シェーディングが行われた場合に、該頂点シェーディング後の堆積物モデルのオブジェクトについてピクセル単位で画像情報を変更するピクセルシェーディングを行うようにしてもよい。このようにすれば、例えば、堆積物として雪を表現する場合に、雪の積もり具合に応じて光の反射の具合を変えるようにピクセルの色、反射率、屈折率などの画像情報を変更して、雪が降り積もるイベントをリアルに表現することができる。
【００１５】
（８）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記画像生成部が、前記堆積イベントが終了した場合に、堆積物モデルのオブジェクトの頂点を前記堆積方向とは逆の方向に移動させる頂点シェーディングを行うようにしてもよい。このようにすれば、例えば、堆積物として雪を表現する場合に、雪が降り止んで、積もった雪に日光があたって雪が解けていく様子などをリアルに表現することができる。
【００１６】
（９）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記画像生成部が、前記堆積イベントの発生中は、第１の頂点移動情報に基づいて、前記堆積物モデルの元オブジェクトの頂点を堆積方向に移動し、前記堆積イベントの終了後は、第１の頂点移動情報と異なる第２の頂点移動情報に基づいて、頂点を堆積方向に移動させた堆積物モデルのオブジェクトの頂点を堆積方向とは逆の方向に移動する頂点シェーディングを行うようにしてもよい。このようにすれば、例えば、堆積物として雪を表現する場合に、雪が急激に降り積もる様子と、降り積もった雪が徐々に解けていく様子とでオブジェクトの変形度合いを変えてリアルに表現することができる。
【００１７】
（１０）また本発明の画像生成システム、プログラム及び情報記憶媒体では前記堆積イベントの終了後に、頂点を前記堆積方向とは逆の方向に移動させた堆積物モデルのオブジェクトについてピクセル単位で画像情報を変更するピクセルシェーディングを行うようにしてもよい。このようにすれば、例えば、堆積物として雪を表現する場合に、雪解け水によって雪面が光る様子をリアルに表現することができる。
【００１８】
（１１）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記イベント判定部が、前記オブジェクト空間において堆積物が第１のエリアから第２のエリアに移動する堆積物移動イベントが発生したか否かを判定し、前記画像生成部が、前記堆積物移動イベントが発生したと判定された場合に、前記第１のエリアでは、堆積物モデルのオブジェクトの頂点を、前記堆積方向とは逆の方向に移動させるとともに、前記第２のエリアでは、堆積物モデルのオブジェクトの頂点を堆積方向に移動させる頂点シェーディングを行うようにしてもよい。このようにすれば、堆積物が重力に従って落下したり、滑り落ちたりする様子をリアルに表現することができる。
【００１９】
（１２）また本発明の画像生成システム、プログラム及び情報記憶媒体では、前記堆積物モデルの元オブジェクトを分割する複数のエリアにおいて互いに異なる頂点移動情報が設定されており、前記画像生成部が、前記堆積物モデルの元オブジェクトの頂点を、前記エリアごとに設定された頂点移動情報に基づいて堆積方向に移動させる頂点シェーディングを行うようにしてもよい。このようにすれば、堆積物の吹き溜まりなどをリアルに表現することができるようになる。
【発明を実施するための最良の形態】
【００２０】
以下、本実施形態について説明する。なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を不当に限定するものではない。また本実施形態で説明される構成の全てが、本発明の必須構成要件であるとは限らない。
【００２１】
１．構成
図１に本実施形態の画像生成システム（ゲームシステム）の機能ブロック図の例を示す。なお本実施形態の画像生成システムは図１の構成要素（各部）の一部を省略した構成としてもよい。
【００２２】
操作部１６０は、プレーヤがプレーヤオブジェクト（プレーヤが操作するプレーヤキャラクタ）の操作データを入力するためのものであり、その機能は、レバー、ボタン、ステアリング、マイク、タッチパネル型ディスプレイ、或いは筺体などにより実現できる。記憶部１７０は、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭ（ＶＲＡＭ）などにより実現できる。
【００２３】
情報記憶媒体１８０（コンピュータにより読み取り可能な媒体）は、プログラムやデータなどを格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などにより実現できる。処理部１００は、情報記憶媒体１８０に格納されるプログラム（データ）に基づいて本実施形態の種々の処理を行う。即ち情報記憶媒体１８０には、本実施形態の各部としてコンピュータを機能させるためのプログラム（各部の処理をコンピュータに実行させるためのプログラム）が記憶される。
【００２４】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、タッチパネル型ディスプレイ、或いはＨＭＤ（ヘッドマウントディスプレイ）などにより実現できる。音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカ、或いはヘッドフォンなどにより実現できる。
【００２５】
携帯型情報記憶装置１９４は、プレーヤの個人データやゲームのセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などがある。通信部１９６は外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種制御を行うものであり、その機能は、各種プロセッサ又は通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００２６】
なお本実施形態の各部としてコンピュータを機能させるためのプログラム（データ）は、ホスト装置（サーバー）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０（あるいは記憶部１７０）に配信してもよい。このようなホスト装置（サーバー）の情報記憶媒体の使用も本発明の範囲内に含めることができる。
【００２７】
処理部１００（プロセッサ）は、操作部１６０からの操作データやプログラムなどに基づいて、ゲーム処理、画像生成処理、或いは音生成処理などの処理を行う。ここでゲーム処理としては、ゲーム開始条件が満たされた場合にゲームを開始する処理、ゲームを進行させる処理、キャラクタやマップなどのオブジェクトを配置する処理、オブジェクトを表示する処理、ゲーム結果を演算する処理、或いはゲーム終了条件が満たされた場合にゲームを終了する処理などがある。この処理部１００は記憶部１７０内の主記憶部１７１をワーク領域として各種処理を行う。処理部１００の機能は各種プロセッサ（ＣＰＵ、ＤＳＰ等）、ＡＳＩＣ（ゲートアレイ等）などのハードウェアや、プログラムにより実現できる。
【００２８】
処理部１００は、オブジェクト空間設定部１１１、移動・動作処理部１１２、仮想カメラ制御部１１３、イベント判定部１１４、ヒットチェック領域設定部１１５、堆積制限エリア設定部１１６、画像生成部１２０、音生成部１３０を含む。なおこれらの一部を省略する構成としてもよい。
【００２９】
オブジェクト空間設定部１１１は、キャラクタ、建物、球場、車、樹木、柱、壁、マップ（地形）などの表示物を表す各種オブジェクト（ポリゴン、自由曲面又はサブディビジョンサーフェイスなどのプリミティブ面で構成されるオブジェクト）をオブジェクト空間に配置設定する処理を行う。即ちワールド座標系でのオブジェクトの位置や回転角度（向き、方向と同義）を決定し、その位置（Ｘ、Ｙ、Ｚ）にその回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）でオブジェクトを配置する。
【００３０】
移動・動作処理部１１２は、オブジェクト（キャラクタ、車、又は飛行機等）の移動・動作演算（移動・動作シミュレーション）を行う。即ち操作部１６０によりプレーヤが入力した操作データや、プログラム（移動・動作アルゴリズム）や、各種データ（モーションデータ）などに基づいて、モデルオブジェクトをオブジェクト空間内で移動させたり、オブジェクトを動作（モーション、アニメーション）させる処理を行う。具体的には、オブジェクトの移動情報（位置、回転角度、速度、或いは加速度）や動作情報（パーツオブジェクトの位置、或いは回転角度）を、１フレーム（１／６０秒）毎に順次求めるシミュレーション処理を行う。なおフレームは、オブジェクトの移動・動作処理（シミュレーション処理）や画像生成処理を行う時間の単位である。
【００３１】
仮想カメラ制御部１１３は、オブジェクト空間内の所与（任意）の視点から見える画像を生成するための仮想カメラ（視点）の制御処理を行う。具体的には、仮想カメラの位置（Ｘ、Ｙ、Ｚ）又は回転角度（Ｘ、Ｙ、Ｚ軸回りでの回転角度）を制御する処理（視点位置や視線方向を制御する処理）を行う。
【００３２】
例えば仮想カメラによりオブジェクト（例えばキャラクタ、ボール、車）を後方から撮影する場合には、オブジェクトの位置又は回転の変化に仮想カメラが追従するように、仮想カメラの位置又は回転角度（仮想カメラの向き）を制御する。この場合には、移動・動作処理部１１２で得られたオブジェクトの位置、回転角度又は速度などの情報に基づいて、仮想カメラを制御できる。或いは、仮想カメラを、予め決められた回転角度で回転させたり、予め決められた移動経路で移動させる制御を行ってもよい。この場合には、仮想カメラの位置（移動経路）又は回転角度を特定するための仮想カメラデータに基づいて仮想カメラを制御する。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラについて上記の制御処理が行われる。
【００３３】
イベント判定部１１４は、オブジェクト空間において堆積物の堆積量が増加する堆積イベントが発生したか否かを判定する処理を行い、その判定結果に基づいて、堆積イベント発生フラグをセットし、所与の記憶バッファにフラグを記憶させる。
【００３４】
またイベント判定部１１４は、堆積物モデルのオブジェクトと他のオブジェクトとが接触（衝突）する接触イベント（衝突イベント）が発生したか否かを判定する処理を行い、その判定結果に基づいて、接触イベント発生フラグをセットし、所与の記憶バッファにフラグを記憶させる。具体的には、ヒットチェック領域（バウンディングボリューム、バウンディングボックスを用いたヒットチェック（ヒット判定処理）によりオブジェクト同士の接触が起きたか否かを判断する。堆積物モデルのオブジェクトについて設定された第１のヒットチェック領域と他のモデルオブジェクトについて設定された第２のヒットチェック領域との位置関係に基づいて、ヒットチェックを行い、第１のヒットチェック領域と第２のヒットチェック領域とがオーバーラップするときに接触イベントが発生したと判定する。
【００３５】
またイベント判定部１１４は、オブジェクト空間において堆積物が第１のエリアから第２のエリアに移動する堆積物移動イベント（雪崩イベント、落下イベント）が発生したか否かを判定する処理を行い、その判定結果に基づいて、堆積物移動イベント発生フラグをセットし、所与の記憶バッファにフラグを記憶させる。
【００３６】
なお堆積イベント、接触イベントあるいは堆積物移動イベントは、所与の条件が満たされたことによりプログラムに従って発生するものであってもよいし、プレーヤのキャラクタ操作などによりキャラクタオブジェクトを移動させるなどしてプレーヤの意思に基づき発生させることができるものであってもよい。
【００３７】
ヒットチェック領域設定部１１５は、後述する頂点シェーダ部１２２により堆積物モデルの元オブジェクトを構成する頂点群を堆積方向に移動させる頂点シェーディングが行われた場合あるいは頂点群を堆積方向に移動させた堆積物モデルのオブジェクトを構成する頂点群を堆積方向とは逆の方向に移動させる頂点シェーディングが行われた場合に、移動後の頂点群の位置に基づいて、堆積物モデル（元モデルオブジェクトあるいは頂点シェーディング後のオブジェクト）に対して設定されていた第１のヒットチェック領域を再設定（更新）する。このようにすれば、堆積物の堆積量の増加あるいは減少に伴う堆積面の位置変化の影響をヒットチェックに反映させることができる。
【００３８】
具体的に、ヒットチェック領域設定部１１５は、頂点を移動させた堆積物モデルのオブジェクトに関して、頂点の位置座標の各成分（Ｘ軸成分、Ｙ軸成分、Ｚ軸成分）について最大値と最小値とを検索し、その最大値及び最小値からオブジェクトを包含する立方体あるいは球などの簡略化された形状のオブジェクト（ボリューム）を構成する頂点の位置座標を算出し、その簡略化されたオブジェクト（ボリューム）がオブジェクト空間において占める領域を新たなヒットチェック領域として設定する。
【００３９】
堆積制限エリア設定部１１６は、堆積物モデルの元オブジェクトに堆積制限エリアを設定する処理を行う。例えば、堆積物モデルの元オブジェクトについてテクセルの色情報（階調値）によって堆積制限エリアと非堆積制限エリアとを設定した堆積制限エリア設定用テクスチャを記憶部１７０のテクスチャ記憶部１７５に用意しておく。堆積制限エリア設定用テクスチャにおいて、堆積制限エリアでは、テクセルの色情報として低い輝度値（０を含む）を設定し、非堆積制限エリアではテクセルの色情報として堆積制限エリアよりも高い輝度値を設定しておく。このようにすれば、後述する頂点シェーディングの際に、堆積制限エリア設定用テクスチャを参照して堆積物の元モデルオブジェクトの各頂点とテクセルを対応付けすることによって、堆積制限エリアに属する頂点については元モデルオブジェクトの変形を制限（あるいは禁止）することができる。なお堆積制限エリアを設定する手法としては、頂点ごとに所与の頂点移動量決定パラメータを設定しておき、特に堆積制限エリアについては低い値（０を含む）を頂点移動量決定パラメータを設定することによっても実現できる。
【００４０】
画像生成部１２０は、処理部１００で行われる種々の処理（ゲーム処理）の結果に基づいて描画処理を行い、これにより画像を生成し、表示部１９０に出力する。いわゆる３次元ゲーム画像を生成する場合には、まずオブジェクトの各頂点の頂点データ（頂点の位置座標、テクスチャ座標、色データ、法線ベクトル或いはα値等）を含む頂点リストが入力され、入力された頂点リストに含まれる頂点データに基づいて、頂点シェーディング（広義には、頂点処理）が行われる。なお頂点シェーディングを行う際に、必要に応じてポリゴンを再分割するための頂点生成処理（テッセレーション、曲面分割、ポリゴン分割）を行うこともできる。頂点シェーディングでは、頂点シェーダプログラム（広義には、第１のシェーダプログラム）に従って、頂点の移動処理や、座標変換（ワールド座標変換、カメラ座標変換）、クリッピング処理、あるいは透視変換等のジオメトリ処理が行われ、その処理結果に基づいて、オブジェクトを構成する頂点群について与えられた頂点データを変更（更新、調整）する。そして、頂点シェーディング後の頂点データに基づいてラスタライズ（走査変換）が行われ、表示画像を構成するピクセル（表示画面を構成するフラグメント）を描画するピクセルシェーディング（広義には、ピクセル処理、フラグメント処理）が行われる。ピクセルシェーディングでは、ピクセルシェーダプログラム（第２のシェーダプログラム）に従って、テクスチャの読出し（テクスチャマッピング）、色データの設定／変更、半透明合成、アンチエイリアス等の各種処理を行って、最終的な表示画像のピクセルの描画色を決定し、透視変換されたオブジェクトの描画色をフレームバッファ１７３（ピクセル単位で画像情報を記憶できるバッファ。ＶＲＡＭ）に出力（描画）する。すなわち、ピクセルシェーディングでは、表示画像のピクセル単位で画像情報（色、法線、輝度、α値等）を設定あるいは変更するパーピクセル処理を行う。これにより、オブジェクト空間内において仮想カメラ（所与の視点）から見える画像（フレーム画像）が生成される。なお、仮想カメラ（視点）が複数存在する場合には、それぞれの仮想カメラから見える画像を分割画像として１画面に表示できるようにフレーム画像を生成することができる。
【００４１】
画像生成部１２０は、頂点シェーダ部１２２、ピクセルシェーダ部１２４を含む。なお、これらの一部を省略する構成としてもよい。
【００４２】
頂点シェーダ部１２２は、頂点単位で行われる処理である頂点シェーディングを実行するプログラマブルシェーダの一種である。特に、頂点シェーダ部１２２は、イベント判定部１１４において堆積イベントが発生したと判定された場合に、すなわち堆積イベント発生フラグがオンにセットされている場合に、堆積物モデルの元オブジェクトの頂点データを変更する頂点シェーディングを行う。具体的には、時間経過に伴って変動する頂点移動情報に基づいて、堆積物モデルの元オブジェクトの頂点を堆積方向に移動させる頂点シェーディングを行う。すなわち、頂点移動情報に基づいて移動後の頂点の位置座標を演算し、求められた位置座標へ頂点を移動させる。なお、堆積イベントが終了した場合には、堆積物モデルのオブジェクトの頂点を堆積方向とは逆の方向に移動させる頂点シェーディングを行うようにしてもよい。また堆積イベントの発生中と堆積イベントの終了後とにおいて頂点シェーディングによる頂点の移動量や移動方向を変えてもよい。
【００４３】
頂点移動情報には、頂点の移動量や頂点の移動方向（移動角度）を決めるための情報が含まれる。例えば、頂点の移動量や頂点の移動方向は、テクスチャを構成するテクセルの画像情報（色成分、輝度、法線等）により設定することができる。このようなテクスチャは、全ての色成分（Ｒ成分、Ｇ成分及びＢ成分）を含むカラー画像であってもよいし、グレースケール画像であってもよいし、単一の色成分のみで構成した画像（Ｒ成分画像、Ｇ成分画像、Ｂ成分画像）であってもよい。なお、堆積物モデルの元オブジェクトの所与のエリアにおいて他のエリアとは異なる頂点移動情報を設定してもよい。この場合、頂点シェーダ部１２２は、堆積物モデルの元オブジェクトの頂点を、エリアごとに設定された頂点移動情報に基づいて堆積方向に移動させる頂点シェーディングを行う。このようにすれば、局所的に堆積の様子を変えることができ、例えば吹き溜まりなどを表現することができる。
【００４４】
そして、頂点シェーダ部１２２は、テクスチャを参照してテクセルと頂点との対応付けを行い、各頂点に対応するテクセルに設定された画像情報を取得する。この画像情報は、時間経過に応じて変更（更新）される。そして、取得したテクセルの画像情報に基づいて、頂点の移動量や移動方向を決定して移動後の頂点の位置座標をベクトル演算（マトリクス演算）により算出する処理を、所与の頂点シェーダプログラム（広義には、第１のシェーダプログラム）に従って実行する。なお、テクセルの画像情報は、必ずしも時間経過に応じて変更（更新）されなくてもよい。例えば、個別に、時間パラメータを頂点シェーダ部１２２に与えることによって、取得した画像情報と時間パラメータとに基づいて、頂点の移動量や移動方向を決定することができる。また画像情報によって得られる頂点移動情報は、頂点の移動量あるいは頂点の移動方向の少なくとも一方であればよい。
【００４５】
より具体的には、テクセルの画像情報を高さ情報（所与の基準面からの変位）に応じて変化させたハイトマップテクスチャや、テクセルの画像情報を法線ベクトル情報（法線ベクトルの向き）に応じて変化させた法線マップテクスチャなどを用いることができる。これらのテクスチャは、記憶部１７０のテクスチャ記憶部１７５（ハイトマップデータ記憶部、法線マップデータ記憶部）に記憶される。
【００４６】
また頂点シェーダ部１２２は、イベント判定部１１４において堆積物モデルのオブジェクトに対し、他のオブジェクト（キャラクタ、車など）が接触する接触イベントが発生したと判定された場合、言い換えれば接触イベント発生フラグがオンにセットされている場合には、所与の頂点シェーダプログラムを実行して堆積物モデルのオブジェクトを構成する頂点を堆積方向とは逆の方向に移動させる頂点シェーディングを行う。すなわち、堆積物モデルのオブジェクトが占める体積が減少するように、堆積物モデルのオブジェクトと接触した他のオブジェクトの形状に沿って陥没させる頂点シェーディングを行う。
【００４７】
また頂点シェーダ部１２２は、堆積制限エリア設定部１１６により堆積物モデルの元オブジェクトに対して堆積制限エリアが設定されている場合には、その堆積制限エリアでの頂点の移動を制限（禁止）する頂点シェーディングを行う。
【００４８】
また頂点シェーダ部１２２は、雪が高いところから落ちるイベントや雪崩イベントなどのような堆積物が移動する堆積物移動イベントが発生したと判定された場合に、すなわち堆積物移動イベント発生フラグがオンになっている場合に、第１のエリアに配置設定された堆積物のモデルオブジェクトの頂点を、堆積方向とは逆の方向に移動させるとともに、第２のエリアに配置設定される堆積物のモデルオブジェクトの頂点を堆積方向に移動させる頂点シェーディングを行う。このようにすれば、堆積物が移動する様子を簡便に表現することができる。なお、第１のエリアと第２のエリアとで行われる頂点シェーディングの間にアニメーション処理で堆積物が第１のエリアから第２のエリアに移動する様子を表現してもよい。
【００４９】
ピクセルシェーダ部１２４は、堆積物の元モデルオブジェクトの頂点を移動させる頂点シェーディングが行われた場合に、その頂点シェーディング後の堆積物のモデルオブジェクトについてピクセル単位で画像情報（色、輝度、α値等）を変更するピクセルシェーディングを行う。例えば、堆積イベントの終了後に、頂点を堆積方向とは逆の方向に移動させた堆積物のモデルオブジェクトについてピクセル単位で画像情報を変更するピクセルシェーディングを行うことができる。具体的には、モデルオブジェクトにおいて雪が解けている部分のピクセルにランダムに向きが変化したベクトルデータを与えて、そのベクトルと仮想カメラの視線ベクトルとの内積を求めて、ベクトルの向きの一致具合に応じて反射率を制御することにより、降り積もった雪が解けて光る様子を表現することができる。
【００５０】
またピクセルシェーダ部１２４は、テクスチャ記憶部１７５に記憶されるテクスチャ（テクセル値）を読み出してモデルオブジェクトにマッピングするための処理を行う。具体的には、モデルオブジェクトの頂点に設定（付与）されるテクスチャ座標等を用いてテクスチャ記憶部１７５からテクスチャ（色、α値などの表面プロパティ）を読み出す。そして、２次元の画像又はパターンであるテクスチャをモデルオブジェクトにマッピングする。この場合に、ピクセルとテクセルとを対応づける処理やバイリニア補間（テクセル補間）などを行う。
【００５１】
ここで先に述べた頂点シェーダ部１２２やピクセルシェーダ部１２４は、シェーディング言語によって記述されたシェーダプログラムによって、ポリゴン（プリミティブ）の描画処理をプログラム可能にするハードウェア、いわゆるプログラマブルシェーダの一種である。プログラマブルシェーダでは、頂点単位の処理やピクセル単位の処理がプログラム可能になることでポリゴン描画の処理内容の自由度が高く、従来のハードウェアにおける固定的な処理に比べて表現力を大幅に向上させることができる。
【００５２】
音生成部１３０は、処理部１００で行われる種々の処理の結果に基づいて音処理を行い、ＢＧＭ、効果音、又は音声などのゲーム音を生成し、音出力部１９２に出力する。
【００５３】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末（ゲーム機、携帯電話）を用いて分散処理により生成してもよい。
【００５４】
２．本実施形態の手法
２．１  堆積イベントの表現手法
本実施形態では、地表に雪が降り積もる様子を、地形オブジェクトの上に配置設定される雪面モデルの元オブジェクトの頂点を移動させる頂点シェーディングを行うことにより表現する。もちろん本発明は地表に雪が降り積もるイベントを表現する場合に限らず、オブジェクト空間に配置設定される各種のオブジェクトの上に雪、灰、枯れ葉あるいは砂などの堆積物が堆積していく様子を表現する際に適用することができる。
【００５５】
例えば、ハイトマップテクスチャを用いる場合には、以下のようにして、堆積イベントを表現するための頂点シェーディングを行うことができる。
【００５６】
まず、格子状に配置されたテクセル（格子点）に高さ情報を設定したハイトマップテクスチャ（広義には、ハイトマップデータ）を堆積物モデルの元オブジェクトに対応づけておく。
【００５７】
次に、堆積物モデルの元オブジェクトに対応づけられたハイトマップテクスチャを参照してテクセル（格子点）に設定された高さ情報を取得する。ハイトマップテクスチャの各テクセルに設定される高さ情報は、時間をパラメータとする関数として設定され、堆積イベントが発生してからの経過時間に応じて値が変化する。その他に頂点の移動方向を定めるための情報も取得する。移動方向を定めるための情報はワールド座標系のＸ軸方向、Ｙ軸方向及びＺ軸方向の各軸方向への移動許可を与えるパラメータである。
【００５８】
次に、取得された高さ情報と移動方向を定めるための情報とを含む頂点移動情報に基づいて、頂点の移動後の位置座標を算出する。最終的には、堆積物の元モデルオブジェクトの頂点を求められた位置座標へ移動して、時間経過に伴って頂点が堆積方向に移動する頂点シェーディングが行われる。なお頂点の移動方向を定めるための情報は、後述する法線マップテクスチャのテクセルに設定される法線ベクトル情報で与えるようにしてもよい。
【００５９】
より具体的に、図２（Ａ）〜図２（Ｅ）を用いて説明する。図２（Ａ）は、ハイトマップテクスチャである。ハイトマップテクスチャは、テクセルＴＸＬに時間ｔに応じて変化する高さ情報ｈ（ｔ）が設定されている。高さ情報ｈ（ｔ）は、堆積イベントが発生してからの経過時間ｔをパラメータとする関数値であり、堆積率パラメータに時間パラメータを乗算あるいは加算することで経過時間ｔにおける高さ情報ｈ（ｔ）を得ることができる。なおテクセルごとに異なる堆積率パラメータが設定されていてもよい。本実施形態の手法では、この高さ情報ｈ（ｔ）により雪面モデルの元オブジェクトの頂点の移動量を決定する。なお、本例では、ワールド座標系のＹ軸の正方向（上方向；広義には、堆積方向）へ頂点を変位させる頂点移動マトリクス（頂点移動ベクトル）によるマトリクス演算（ベクトル演算）により時間ｔにおける頂点の位置座標を求める。
【００６０】
図２（Ｂ）では、雪が降り積もる堆積イベントが発生し、地面を表現する地形オブジェクトＧＯＢの上に雪面モデルの元オブジェクトＭＯＢが配置設定されている。時間ｔの経過とともにハイトマップテクスチャのテクセルに設定されている高さ情報ｈ（ｔ）が変化し、雪面モデルの元オブジェクトＭＯＢの各頂点とハイトマップテクスチャのテクセルとの対応付けが行われる。ハイトマップテクスチャの解像度（テクセル分解能）が雪面モデルの元オブジェクトＭＯＢの解像度（頂点分解能）より低い場合には、線形補間により頂点に対応する高さ情報を求めることができる。頂点とテクセルとの対応付けが完了し、堆積イベントが開始してから時間ｔ１が経過したとすると、Ｙ軸の正方向に移動量ｈ（ｔ１）で頂点の位置座標を変位させる頂点移動マトリクス（頂点移動ベクトル）を用いて、元オブジェクトの頂点Ｐ（位置座標（Ｘ，Ｙ，Ｚ））の移動後の位置座標（Ｘ，Ｙ＋ｈ（ｔ１），Ｚ）を求める。すなわち、図２（Ｃ）に示すように、雪面モデルの元オブジェクトの各頂点をＹ軸の正方向（上方向）にｈ（ｔ１）だけ移動させる。このような頂点シェーディングを行うことにより、モデルデータを大量に用意する必要がなくなるため、メモリの使用量を節約できるばかりではなく、時間に応じて雪面の高さが変化する様子を少ないデータ量でリアルに表現することができる。
【００６１】
なお堆積イベントが終了した場合には、堆積方向、言い換えれば体積が増加する方向に頂点を移動した雪面モデルのオブジェクトＭＯＢ’について、頂点を堆積方向とは逆の方向、言い換えれば体積が減少する方向に頂点を移動させる頂点シェーディングを行ってもよい。すなわち、堆積イベント発生フラグがリセットされた場合、すなわちフラグがオン状態からオフ状態にセットされた場合に、堆積イベントが終了したと判断して、時間経過とともに堆積物モデルの体積が増加する方向に移動させていた堆積物モデルのオブジェクトを構成する頂点を、堆積物モデルの体積が減少する方向に移動させる頂点移動処理を行う。このようにすれば、例えば雪が降り積もる堆積イベントが終了した後は、降り積もった雪が徐々に解けていく様子を表現できる。
【００６２】
具体的には、ハイトマップテクスチャにおいてＹ軸の負方向（下方向；広義には、堆積方向と逆の方向）への頂点の移動量を決める高さ情報ｈ’（ｔ）をテクセルに設定しておく。すなわち、この高さ情報ｈ’（ｔ）が時間ｔをパラメータとして変化する関数値で与えられる。そして高さ情報ｈ’（ｔ）がテクセルに設定されたハイトマップテクスチャを参照して、テクセルと雪面モデルのオブジェクトＭＯＢ’の頂点との対応付けを行う。頂点とテクセルとの対応付けが完了したら、図２（Ｄ）に示すように、Ｙ軸の負方向に頂点を移動させる。位置座標の変位は、同様に頂点移動マトリクス（頂点移動ベクトル）を用いて行い、堆積イベントが終了してから時間ｔ２が経過したとすると、図２（Ｅ）に示すように、Ｐ（Ｘ，Ｙ＋ｈ（ｔ１），Ｚ）からＰ２（Ｘ，Ｙ＋ｈ（ｔ１）−ｈ’（ｔ２），Ｚ）へ頂点を移動させるように位置座標が変換される。このようにすれば、降り積もった雪が解ける様子をリアルに表現することができる。
【００６３】
なお、図２（Ｂ）及び図２（Ｃ）に示すような堆積イベントの発生中は、時間経過に応じて堆積方向への移動量が大きくなる頂点移動情報（広義には、第１の頂点移動情報）に基づいて、堆積物モデルの元オブジェクトＭＯＢの頂点をＹ軸の正方向（上方向；広義には、堆積方向）に移動させ、図２（Ｄ）及び図２（Ｅ）に示すような堆積イベントの終了後は、時間経過に応じてＹ軸の負方向（下方向；広義には、堆積方向とは逆の方向）への移動量が大きくなる頂点移動情報（広義には、第２の頂点移動情報）に基づいて、頂点を堆積方向に移動させた堆積物モデルのオブジェクトの頂点をＹ軸の負方向（下方向；広義には、堆積方向とは逆の方向）に移動させるようにしてもよい。このようにすれば、堆積イベント発生中は、雪が降り積もって高さが増していく様子を表現することができ、堆積イベント終了後は、雪が徐々に解けていく様子を表現することができる。
【００６４】
また本実施形態の堆積イベントの表現は、法線マップテクスチャを用いても実現することができる。法線マップテクスチャを用いる場合には、以下のようにして、堆積イベントを表現するための頂点シェーディングを行うことができる。
【００６５】
この場合においても、まず堆積物モデルの元オブジェクトに対して、テクセル（格子点）に法線ベクトル情報（法線ベクトルの向き）が設定された法線マップテクスチャ（広義には、法線マップデータ）が対応づけられる。次に、堆積物モデルの元オブジェクトに対応づけられた法線マップテクスチャを参照してテクセル（格子点）に設定された法線ベクトル情報を取得する。その他に堆積イベントが発生してからの経過時間に応じて変化する頂点の移動量を定めるための情報も取得する。そして、取得された法線ベクトルの向きと頂点の移動量とを含む頂点移動情報に基づいて、堆積物モデルの元オブジェクトの頂点を法線ベクトルの向きに沿って移動させた頂点の位置座標を算出する。すなわち、本手法では、法線ベクトルの向きにより頂点の移動方向を与えることになる。
【００６６】
なお頂点の移動量を定めるための情報は、先に述べたハイトマップテクスチャのテクセルに設定される高さ情報で与えるようにしてもよい。また頂点の移動量を決めるための情報としては、法線マップテクスチャのテクセルに設定された法線ベクトルの正弦成分や余弦成分などを用いてもよい。
【００６７】
図３（Ａ）〜図３（Ｃ）を用いて、法線マップテクスチャを用いて雪面モデルの元オブジェクトの頂点を移動させる手法を説明する。法線マップテクスチャは、図３（Ａ）に示すように、オブジェクトを構成するプリミティブ（ポリゴン）の面の向きである法線ベクトル情報をテクセルに設定したテクスチャである。本手法では、法線マップテクスチャのテクセルに設定された法線ベクトルで与えられるベクトルの向き（Ｘ軸周りの角度、Ｙ軸周りの角度、Ｚ軸周りの角度）を頂点の移動方向とする。頂点の移動量は、正規化ベクトルである法線ベクトルに時間経過に伴い値が変化する堆積率パラメータｄ（ｔ）を乗算あるいは加算して求めることができる。この堆積率パラメータｄ（ｔ）は、時間ｔをパラメータとする関数値であって、頂点に付随するパラメータとして頂点ごとに個別に設定することができる。例えば、日向の部分には雪が積もりにくいため、頂点の移動量が小さくなるように堆積率パラメータｄ（ｔ）を設定し、一方、日陰の部分には雪が積もりやすいため、頂点の移動量が大きくなるように堆積率パラメータｄ（ｔ）を設定することができる。なお堆積率パラメータｄ（ｔ）は、各頂点に共通のパラメータとして設定することもできる。
【００６８】
そしてオブジェクト空間において図３（Ｂ）に示すように積雪イベントが発生したら、まず法線マップテクスチャを参照してテクセルと頂点との対応付けを行う。次に各頂点に対応づけられたテクセルに設定される法線ベクトルの向きを頂点の移動方向として、その法線ベクトルＮＶと、頂点ごとに設定される堆積率パラメータｄ（ｔ１）とに基づく頂点移動ベクトルＶｄ（頂点移動マトリクス）を用いて頂点Ｐの移動後の位置座標を求めて、図３（Ｃ）に示すように頂点を座標（Ｘ，Ｙ，Ｚ）から座標（Ｘ＊Ｖｄｘ、Ｙ＊Ｖｄｙ、Ｚ＊Ｖｄｚ）へ移動させる。なおＶｄｘ、Ｖｄｙ、及びＶｄｚは、頂点移動ベクトルＶｄのＸ軸成分、Ｙ軸成分、及びＺ軸成分に対応する。このようにしても、ハイトマップテクスチャを用いた場合と同様に、雪が降り積もる様子をリアルに表現することができる。また雪が解ける様子を表現する場合にも法線マップテクスチャを用いて行うことができる。例えば、堆積率パラメータｄ’（ｔ）を負の値を得る関数値で設定（定義）しておくか、雪面のモデルオブジェクトの法線ベクトルを反転して、その反転されたベクトルの向きを頂点の移動方向とするように頂点移動ベクトル（頂点移動マトリクス）を求めてもよい。また堆積率パラメータｄ’（ｔ）は、例えば、日向の部分では雪が解けやすいため、頂点の移動量が大きくなるように堆積率パラメータｄ’（ｔ）を設定し、一方、日陰の部分では雪が解けにくいため、頂点の移動量が小さくなるように堆積率パラメータｄ’（ｔ）を設定することができる。
【００６９】
また、本実施の形態では、図４（Ａ）に示すように、雪面モデルの元オブジェクトＭＯＢにヒットチェック領域ＨＣ（バウンディングボリューム、バウンディングボックス）が設定されており、他のオブジェクトとの接触を検出するヒットチェック処理が行われる。堆積イベントの発生により、雪面モデルの元オブジェクトＭＯＢを構成する頂点群を移動させた場合や、堆積イベントが終了して、雪面モデルのオブジェクトＭＯＢ’の頂点群を堆積方向と逆の方向に移動させた場合には、図４（Ｂ）に示すように、移動後のオブジェクトを構成する頂点の位置座標に基づいてヒットチェック領域ＨＣ’を再設定（更新）する。これにより、雪面の上昇や下降の影響を反映したヒットチェック処理を行うことができるようになる。
【００７０】
ここでヒットチェック領域は、設定対象となるオブジェクトの頂点を内包するように形成される立方体や球などの単純形状からなる簡易オブジェクトの占有領域に基づいて設定される。具体的には、オブジェクトの頂点のすべての座標成分(Ｘ座標成分、Ｙ座標成分及びＺ座標成分)についての最大値及び最小値を検出し、最大値及び最小値を取る頂点を通る面を有する簡易オブジェクトを配置設定することにより、その簡易オブジェクトがオブジェクト空間に占める領域をヒットチェック領域を設定することができる。
【００７１】
ここで、ヒットチェック領域ＨＣは、図４（Ａ）及び図４（Ｂ）に示すように、雪面モデルの全体に対して１のヒットチェック領域を設定してもよいが、頂点の移動量が不均一であって、雪面の上昇率や下降率が異なるエリアが存在すると、適切なヒットチェック処理が行えない場合がある。
【００７２】
そこで、図５（Ａ）に示すように雪面モデルの元オブジェクトＭＯＢに対して、複数のヒットチェック領域ＨＣ１〜ＨＣ２を設定しておき、各ヒットチェック領域ごとにヒットチェック領域ＨＣ１’〜ＨＣ３’を再設定（更新）するようにしてもよい。このようにすれば、頂点の移動量が大きいエリアと頂点の移動量が少ないエリアとが存在するような場合であっても、適切なヒットチェック領域を設定することができるようになる。
【００７３】
本実施の形態では、雪面モデルの元オブジェクトの所与のエリアで局所的に頂点の移動量を大きくすることによって、積もった雪の吹き溜まりができる様子を表現することができる。具体的には、ハイトマップテクスチャを用いる場合には、高さ情報ｈ（ｔ）を所与のエリアに属するテクセルにおいて局所的に大きくなるように設定する。また、法線マップテクスチャを用いる場合には、堆積率パラメータｄ（ｔ）を所与のエリアに属する頂点について大きくなるように設定する。
【００７４】
ところで、雪面上に熱源となるオブジェクトが配置設定されている場合、例えば、車の排気口付近やバイクのエンジン付近、あるいはたき火などの周囲などでは、それらが熱源となって雪が積もりにくい、あるいは雪が積もらない現象が起きる。このような現象を表現するために、本実施形態では、堆積制限エリア設定用のテクスチャを用意することで、雪面モデルの元オブジェクトに対して堆積制限エリアを設定するようにしてもよい。
【００７５】
具体的には、堆積制限用テクスチャを参照してテクセルに設定された堆積制限パラメータを取得し、その堆積制限パラメータに基づいて頂点の移動量を調整することができる。堆積制限用テクスチャのテクセルに設定される堆積制限パラメータは、頂点の移動量を決定するパラメータに乗算処理されるパラメータであって、例えば、０〜１の間の値を採ることができる。この場合、図６に示すように、非堆積制限エリアでは、堆積制限パラメータを１に設定しておき、堆積制限エリアでは１より小さい値（例えば、０．５など）に設定しておくことにより頂点の移動量を制限することができる。なお堆積制限パラメータを０に設定した場合には、頂点の移動量を０にすることができる。すなわち頂点の移動を局所的に制限（禁止）することができる。
【００７６】
また本実施形態の表現手法では、時間経過に応じて頂点を移動させる頂点シェーディングに加えて、時間あるいは堆積量の変化に応じて、堆積物モデルの描画色を決定する画像情報を変更するピクセルシェーディングを行うようにしてもよい。すなわち、時間あるいは堆積量の変化に応じて堆積物の質感が変わったというフラグをセットする。ピクセルシェーダでは、そのフラグを判別して、テクスチャマッピングする画像を切り替えることで堆積モデルを表示するピクセルの画像情報（色、輝度、屈折率、反射率、α値等）を変更（調整）する。例えば、降り積もった雪が解けている場合に、雪面モデルの雪解け部分に相当するピクセルをきらきら光る質感の色で描画させることができる。この場合には、雪面モデルの頂点移動率（堆積率）の極性に応じて雪が積もっているのか、解けているのかを判断させることができる。例えば、図２（Ｂ）及び図２（Ｃ）に示すように、Ｙ軸の正方向（上方向；広義には堆積方向）に頂点が移動している場合には、雪が積もっていると判断し、Ｙ軸の負方向（下方向；広義には、堆積方向とは逆の方向）に頂点が移動している場合には、雪が解けていると判断することができる。そして、雪が解けていると判断された場合には、光沢が強くなるように画像情報（反射率）を変更（調整）する。より具体的には、ランダムノイズを加えて法線ベクトルの向きを散乱させた法線マップテクスチャを用意しておき、光源ベクトルあるいは視線ベクトルと向きの合う法線ベクトルが設定されたピクセルについて反射率を高くする処理（ピクセルシェーディング）を行うことができる。すなわち、反射率を高くしたピクセルについては、高い輝度の色で描画されることにより、光沢を強くすることができる。
【００７７】
２．２  接触イベントの表現手法
本実施の形態では、堆積イベントの発生により堆積方向に頂点を移動させたオブジェクトに他のオブジェクトが接触あるいは衝突した場合に、堆積方向とは逆の方向に頂点を移動させる頂点シェーディング手法を採用する。
【００７８】
具体的には、他のオブジェクトにも堆積物モデルと同じようにハイトマップテクスチャ（広義には、ハイトマップデータ）が対応づけられる。他のオブジェクトに対応づけられたハイトマップテクスチャのテクセル（格子点）に設定される高さ情報は、他のオブジェクトを構成する頂点で形成される面の形状そのものを表すものでなくてもよく、仮想的に他のオブジェクトの表面形状として設定（定義）されるものであってもよい。例えば、車のタイヤについては、タイヤ溝を有しない円盤形のオブジェクトにタイヤ溝を表す画像をテクスチャマッピングしてタイヤを表現しておき、実際の溝の凹凸を表す高さ情報は、別途タイヤのオブジェクトに対応づけられたハイトマップテクスチャで定義（設定）することができる。
【００７９】
そして図７（Ａ）に示すように、雪面モデルのオブジェクトＭＯＢに対し、ボールオブジェクト（他のオブジェクト）ＢＯＢが接触（衝突）する接触イベント（衝突イベント）が発生した場合に、ボールオブジェクトに対応づけられたハイトマップテクスチャを参照してボールオブジェクトＢＯＢの接触エリアを構成する頂点に対応するテクセル（格子点）に設定された高さ情報を取得する。接触イベントの発生は、ヒットチェックにより行い、図７（Ａ）に示すように、雪面モデルのオブジェクトＭＯＢに対して設定されたヒットチェック領域ＨＣ１（第１のヒットチェック領域）とボールオブジェクトＢＯＢに対して設定されたヒットチェック領域ＨＣ２（第２のヒットチェック領域）とがオーバーラップする場合に、接触イベントが発生したと判断され、接触イベント発生フラグがオンにセットされる。
【００８０】
また雪面モデルを変形させるに際し、図７（Ｂ）に示すように、雪面モデルの接触エリアに新たな頂点を生成してポリゴンを細分割しておく。すなわち接触イベントが発生して、堆積物モデルのオブジェクトの接触エリアに対応する頂点群を堆積方向と逆の方向に移動させる際には、頂点生成処理を行って、堆積物モデルのオブジェクトに対して新たな頂点を生成するようにしてもよい。言い換えれば、接触イベントが発生した場合には、堆積物モデルのオブジェクトを構成するポリゴンを細分割してもよい。これにより堆積物モデルの元オブジェクトの解像度を低くしておいても、接触痕跡（衝突痕跡）を詳細に表現することができる。
【００８１】
最終的には、図７（Ｃ）に示すように、取得されたテクセル値（格子点の高さ情報）に基づいて、雪面モデルのオブジェクトＭＯＢの接触エリアに対応する頂点群をＹ軸の負方向（下方向；広義には、堆積方向とは逆の方向）に移動させる処理を行う。すなわち、雪面モデルのオブジェクトＭＯＢが占める体積を減少させる方向に頂点群を移動させる処理を行う。このとき頂点群の移動処理では、上記ハイトマップテクスチャから得られる高さ情報が頂点の移動量を決定するパラメータとなる。また移動方向は本例のように所与の軸方向（Ｘ軸方向、Ｙ軸方向、及びＺ軸方向）への移動を指示するパラメータで与えてもよいし、他のオブジェクトＢＯＢのプリミティブの面の向きを表す法線ベクトルの向きを頂点の移動方向として用いてもよい。また接触イベントの発生により、雪面モデルのオブジェクトＭＯＢの頂点を移動させた場合には、移動後の頂点の位置に基づいて、ヒットチェック領域ＨＣ１を再設定しておくことが望ましい。
【００８２】
また接触イベントが発生した場合、堆積物モデルのオブジェクトと他のオブジェクトとの接触位置と仮想カメラとの距離に応じて堆積物モデルのオブジェクトの詳細度（解像度、分解能）を変更してもよい。また接触位置と仮想カメラとの距離に応じて頂点シェーディングの内容を変更してもよい。
【００８３】
例えば、図８に示すように、接触位置が仮想カメラＶＣから第１の距離範囲Ｒ１内にある場合には、堆積物モデルのオブジェクトの接触位置に対応する頂点群を移動させる頂点シェーディングを行い、接触位置が仮想カメラＶＣから第１の距離範囲Ｒ１よりも遠い第２の距離範囲Ｒ２内にある場合には、堆積物モデルのオブジェクトの接触位置に対して法線マッピングあるいはバンプマッピングを行って他のオブジェクトの痕跡を表すことができる。また第２の距離範囲Ｒ２よりもさらに仮想カメラＶＣから遠い第３の距離範囲Ｒ３内で接触イベントが発生した場合には、痕跡表現用テクスチャを堆積物モデルのオブジェクトの接触エリアにテクスチャマッピングすることにより簡易的に他のオブジェクトの接触痕跡を表現することができる。
【００８４】
また接触イベントが発生した場合には、他のオブジェクトの移動情報、堆積物の種類（マテリアル情報）、あるいは堆積物モデルのオブジェクトに対して加えられた荷重に応じて、テクセルに設定された高さ情報及び接触エリアの範囲の少なくとも一方が異なる複数のハイトマップテクスチャを切り替えて、堆積物モデルのオブジェクトの接触エリアを構成する頂点群を移動させる処理を行ってもよい。
【００８５】
２．３  堆積物移動イベントの表現手法
次に、堆積物が移動するイベントの表現手法を説明する。本手法は、例えば、堆積物の落下イベントや雪崩イベントを表現する場合に適用することができる。
【００８６】
本実施形態では、オブジェクト空間内で雪や灰などの堆積物が移動するイベントが発生した場合に、移動元（第１のエリア）では、堆積物モデルのオブジェクトの頂点をＹ軸の負方向（下方向；広義には、堆積方向とは逆の方向）に移動させ、移動先（第２のエリア）では、堆積物モデルのオブジェクトの頂点をＹ軸の正方向（上方向；広義には、堆積方向）に移動させる手法を採用する。これによって、あたかも移動元から移動先へ堆積物が移動したかのように見せる画像を生成することができる。
【００８７】
移動元における頂点群と移動先における頂点群とは、１つのモデルオブジェクトを構成するものであってもよいし、別個のモデルオブジェクトを構成するものであってもよい。また、移動元のエリアから移動先のエリアへ移動する様子をテクスチャを用いたアニメーション処理で補間してもよい。このようにすれば、頂点の移動処理を移動元のエリアと移動先のエリアとに限って行えばよいため、映像の品質を落とさずに演算負荷を軽減することができる。
【００８８】
なお本手法は、堆積イベントの発生中に堆積物移動イベントが発生した場合にも適用することができる。例えば、堆積イベント中に所与の高さまで堆積物が堆積したら、言い換えれば堆積物モデルのオブジェクトの頂点が所与の設定座標まで移動したら、落下イベントや雪崩イベントを発生させることができる。すなわち、堆積イベント中に所与の条件を満たした場合には、堆積物移動イベント発生フラグがオンにセットされる。
【００８９】
例えば木の枝の上にある雪が落下するようなイベントが発生した場合には、枝の上に積もった雪の量が所定量に達したら、枝の上に配置設定される雪面モデルのオブジェクト自体を非表示にして地形モデルの上に配置設定される雪面モデルのオブジェクトの落下エリアに対応する頂点群を堆積方向に移動させるようにしてもよい。この場合、落下エリアに対応する雪面モデルのオブジェクトの頂点群の移動量は、枝の上から落下する雪の量に応じて移動させる処理を行うことができる。
【００９０】
また例えば、雪崩イベントが発生した場合には、図９に示すように、雪崩により雪が滑り落ちる斜面の上部（移動元；第１のエリア）と下部（移動先；第２のエリア）とにおいて頂点群の移動を連動させることで表現することができる。すなわち斜面の上部では、急激に頂点を堆積方向とは逆の方向（下方向、Ｙ軸の負方向）に移動させるとともに、斜面の下部では、急激に堆積方向（上方向、Ｙ軸の正方向）に頂点を移動させる。斜面の上部における頂点の移動と斜面の下部における頂点の移動との間のフレームでは、雪崩を表現するテクスチャで繋ぎアニメーション処理を行って、雪崩の最中の画像を生成してもよい。例えば、雪が移動する間、雪崩や落下の様子は板状のポリゴン（スプライト）に雪崩表現用テクスチャや落下表現用テクスチャをテクスチャマッピングすることで繋ぎアニメーション処理を行うことができる。また堆積物移動イベントが発生して堆積物モデルの頂点群を移動させた場合においても、移動後の頂点の位置座標に基づいて、ヒットチェック領域を再設定することが望ましい。
【００９１】
３．本実施形態の処理
次に、本実施形態の詳細な処理例について図１０〜図１２のフローチャートを用いて説明する。
【００９２】
図１０に示すように、まずフレーム更新（１／６０秒）のタイミングか否かを判断する（ステップＳ１０）。そしてフレーム更新のタイミングである場合には（ステップＳ１０でＹＥＳ）、堆積イベントが発生したか否かを判断する（ステップＳ１１）。堆積イベントが発生したと判断された場合には（ステップＳ１１でＹＥＳ）、堆積イベント発生フラグをオンにセットする（ステップＳ１２）。なお、堆積イベントが発生していないと判断された場合には、ステップＳ１２を介さずにステップＳ１３以下の処理へ移行する。
【００９３】
次に、頂点シェーダ用及びピクセルシェーダ用のシェーダプログラムの転送とシェーダプログラムを実行して描画処理を行うために必要な各種パラメータの設定及び転送を行う（ステップＳ１３、Ｓ１４、Ｓ１５）。そして、堆積物モデルの頂点リストを頂点シェーダへ転送し（ステップＳ１６）、ステップＳ１３、Ｓ１４で転送した頂点シェーダプログラム及びピクセルシェーダプログラムを順次を実行する（ステップＳ１７、Ｓ１８）。
【００９４】
頂点シェーダでは、図１１に示すフローチャートに沿って頂点シェーディングを行う。まず堆積イベント発生フラグを確認し（ステップＳ２０）、堆積イベント発生フラグがオンである場合には（ステップＳ２０でＹＥＳ）、図２（Ａ）〜図２（Ｃ）あるいは図３（Ａ）〜図３（Ｃ）で説明したように、各頂点のＸ軸、Ｙ軸、及びＺ軸の各軸方向への移動量を決定する（ステップＳ２１）。例えば、ハイトマップテクスチャを用いる場合には、テクセルに設定された高さ情報によりＹ軸方向への頂点の移動量を決定する。次に各頂点について頂点の移動が禁止される堆積禁止エリアに属しているかどうかを確認する（ステップＳ２２）。堆積禁止エリアに属する頂点については（ステップＳ２２でＹＥＳ）、頂点の移動量を０に設定する（ステップＳ２３）。なお、ステップＳ２１で求められた移動量に堆積制限パラメータを乗算して堆積禁止エリアに属する頂点の移動量を０にしてもよい。堆積禁止エリアに属さない頂点については、図２（Ｃ）あるいは図３（Ｃ）で説明したように、ステップＳ２１で求められた各軸方向への移動量に従って頂点を移動させる（ステップＳ２４）。すなわち、マトリクス演算（ベクトル演算）によって、頂点の位置座標を変換する処理を行う。次に、透視変換等のジオメトリ処理によって座標系の変換処理を行い、堆積物モデルの頂点のスクリーン座標を計算する（ステップＳ２５）。このときテクスチャ座標の設定なども行われる。最終的には、作成された頂点データをピクセルシェーダに転送して頂点シェーダプログラムを終了する。
【００９５】
次にピクセルシェーダでは、図１２のフローチャートに従って、ピクセルシェーダプログラムを実行する。まず頂点シェーディングが完了すると、頂点シェーダから転送される頂点データに基づいて、各頂点の移動方向および移動量を計算する（ステップＳ３０）。すなわち、元オブジェクトの頂点の位置座標と頂点シェーディング後の位置座標との変位データを求める。次に、求められた頂点の移動方向および移動量に基づいて、各ピクセルの色を設定する（ステップＳ３１）具体的には、テクスチャマッピングやαブレンディングなどを行って堆積物モデルのピクセルの色を決定する。例えば、下方向に頂点が移動していると判断されたら、その移動量に応じて光沢が強くなるようにピクセルの色を決定する。そして、決定された色データをフレームバッファに出力して堆積物モデルのピクセルを描画する（ステップＳ３２）。
【００９６】
４．ハードウェア構成
図１３に本実施形態を実現できるハードウェア構成の例を示す。メインプロセッサ９００は、ＤＶＤ９８２（情報記憶媒体。ＣＤでもよい。）に格納されたプログラム、通信インターフェース９９０を介してダウンロードされたプログラム、或いはＲＯＭ９５０に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などを実行する。コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、マトリクス演算（ベクトル演算）を高速に実行する。例えばオブジェクトを移動させたり動作（モーション）させる物理シミュレーションに、マトリクス演算処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【００９７】
ジオメトリプロセッサ９０４は、メインプロセッサ９００上で動作するプログラムからの指示に基づいて、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、マトリクス演算を高速に実行する。データ伸張プロセッサ９０６は、圧縮された画像データや音データのデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセラレートする。これにより、オープニング画面やゲーム画面において、ＭＰＥＧ方式等で圧縮された動画像を表示できる。
【００９８】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ面で構成されるオブジェクトの描画（レンダリング）処理を実行する。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０を利用して、描画データ（頂点データや他のパラメータ）を描画プロセッサ９１０に渡すと共に、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると描画プロセッサ９１０は、描画データやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に描画する。また描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエイリアシング、シェーディング処理なども行う。頂点シェーダやピクセルシェーダなどのプログラマブルシェーダも描画プロセッサ９１０に実装されており、本実施形態の手法を実現するシェーダプログラムに従って、頂点データの作成・変更（更新）やピクセル（あるいはフラグメント）の描画色の決定を行う。１フレーム分の画像がフレームバッファ９２２に書き込まれるとその画像はディスプレイ９１２に表示される。
【００９９】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などのゲーム音を生成し、スピーカ９３２を介して出力する。ゲームコントローラ９４２やメモリカード９４４からのデータはシリアルインターフェース９４０を介して入力される。
【０１００】
ＲＯＭ９５０にはシステムプログラムなどが格納される。業務用ゲームシステムの場合にはＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納される。なおＲＯＭ９５０の代わりにハードディスクを利用してもよい。ＲＡＭ９６０は各種プロセッサの作業領域となる。ＤＭＡコントローラ９７０は、プロセッサ、メモリ間でのＤＭＡ転送を制御する。ＤＶＤドライブ９８０（ＣＤドライブでもよい。）は、プログラム、画像データ、或いは音データなどが格納されるＤＶＤ９８２（ＣＤでもよい。）にアクセスする。通信インターフェース９９０はネットワーク（通信回線、高速シリアルバス）を介して外部との間でデータ転送を行う。
【０１０１】
なお本実施形態の各部（各手段）の処理は、その全てをハードウェアのみにより実現してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１０２】
そして本実施形態の各部の処理をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、ハードウェア（コンピュータ）を本実施形態の各部として機能させるためのプログラムが格納される。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０に処理を指示すると共に、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０は、その指示と渡されたデータとに基づいて本発明の各部の処理を実現する。
【０１０３】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。例えば、明細書又は図面中の記載において広義や同義な用語（Ｙ軸の正方向（上方向）、Ｙ軸の負方向（下方向）、仮想カメラ、ピクセル、ハイトマップテクスチャ、法線マップテクスチャなど）として引用された用語（堆積方向、堆積方向とは逆の方向、視点、フラグメント、ハイトマップデータ、法線マップデータなど）は、明細書又は図面中の他の記載においても広義や同義な用語に置き換えることができる。また堆積イベントの表現手法、接触イベントの表現手法、あるいは堆積物移動イベントの表現手法も、本実施形態で説明したものに限定されず、これらと均等な手法も本発明の範囲に含まれる。
【０１０４】
また本実施の形態では、地形オブジェクトの上に堆積物モデル（例えば雪面モデル）の元オブジェクトが配置設定される場合を例に採り説明したが、本発明はこれに限定されず、地形オブジェクト自体を堆積物モデルの元オブジェクトとして用いることもできる。
【０１０５】
また本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード、携帯電話等の種々の画像生成システムに適用できる。
【図面の簡単な説明】
【０１０６】
【図１】本実施形態の機能ブロック図である。
【図２】図２（Ａ）〜図２（Ｅ）は、本実施形態の堆積イベントにおける頂点シェーディング手法の説明図である。
【図３】図３（Ａ）〜図３（Ｃ）は、本実施形態の堆積イベントにおける頂点シェーディング手法の説明図である。
【図４】図４（Ａ）及び図４（Ｂ）は、本実施形態のヒットチェック領域の設定手法の説明図である。
【図５】図５（Ａ）及び図５（Ｂ）は、本実施形態のヒットチェック領域の設定手法の説明図である。
【図６】本実施形態の堆積制限エリアの設定手法の説明図である。
【図７】図７（Ａ）〜図７（Ｃ）は、本実施形態の接触イベントにおける頂点シェーディング手法の説明図である。
【図８】本実施形態の仮想カメラからの距離に応じた詳細度の切り替え手法の説明図である。
【図９】本実施形態の堆積物移動イベントにおける頂点シェーディング手法の説明図である。
【図１０】本実施形態の具体的な処理例を示すフローチャートである。
【図１１】本実施形態の具体的な処理例を示すフローチャートである。
【図１２】本実施形態の具体的な処理例を示すフローチャートである。
【図１３】ハードウェア構成の例である。
【符号の説明】
【０１０７】
ＧＯＢ  地形オブジェクト、
ＭＯＢ  堆積物モデルの元オブジェクト、
ＭＯＢ’，ＭＯＢ煤@頂点シェーディング後の堆積物モデルのオブジェクト、
ＨＣ，ＨＣ１〜ＨＣ３  ヒットチェック領域  
１００  処理部、
１１１  オブジェクト空間設定部、１１２  移動・動作処理部、
１１３  仮想カメラ制御部、１１４  イベント判定部、
１１５  ヒットチェック領域設定部、１１６  堆積制限エリア設定部、
１２０  画像生成部、１２２  頂点シェーダ部、１２４  ピクセルシェーダ部、
１３０  音生成部、１６０  操作部、
１７０  記憶部、
１７１  主記憶部、１７３  フレームバッファ、１７５  テクスチャ記憶部、
１８０  情報記憶媒体、１９０  表示部、１９２  音出力部、
１９４  携帯型情報記憶装置、１９６  通信部
【図１】
2006285510.tif 000003
【図２】
2006285510.tif 000004
【図３】
2006285510.tif 000005
【図４】
2006285510.tif 000006
【図５】
2006285510.tif 000007
【図６】
2006285510.tif 000008
【図７】
2006285510.tif 000009
【図８】
2006285510.tif 000010
【図９】
2006285510.tif 000011
【図１０】
2006285510.tif 000012
【図１１】
2006285510.tif 000013
【図１２】
2006285510.tif 000014
【図１３】
2006285510.tif 000015