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