(57)【特許請求の範囲】
【請求項１】
画像生成を行う画像生成システムであって、
第１のオブジェクトと少なくとも一部に凹部を含む第２のオブジェクトをオブジェクト空間内の所与の位置に配置する手段と、
第２のオブジェクトに関連づけて用意された判定用の第３のオブジェクトを、オブジェクト空間内の第２のオブジェクトに対応して与えられた位置に配置する手段と、
第１のオブジェクトと判定用の第３のオブジェクトとによって特定される交差部分について、第２のオブジェクトの凹部が見えるように、第１のオブジェクトのモデル情報を変更又はレンダリング手法を変更して、第１のオブジェクトと第２のオブジェクトを含むオブジェクト空間の画像を生成する手段と、
を含むことを特徴とする画像生成システム。
【請求項２】
請求項１において、
第１のオブジェクトの前記交差部分に対応する部分にマッピングするテクスチャを透明なテクスチャに変更することを特徴とする画像生成システム。
【請求項３】
請求項１において、
第１のオブジェクトの前記交差部分に対応する部分の半透明情報を、第１のオブジェクトが透明になるように変更して、半透明合成処理を行うことを特徴とする画像生成システム。
【請求項４】
請求項１乃至３のいずれかにおいて、
第１のオブジェクトは流体を表現するためのオブジェクトであり、第２のオブジェクトは流体面に浮かぶオブジェクトであり、視点からみて流体面より奥方向に位置する第２のオブジェクトが見えるように第１のオブジェクトのモデル情報又はレンダリング手法を変更することを特徴とする画像生成システム。
【請求項５】
コンピュータが実行可能なプログラムであって、
第１のオブジェクトと少なくとも一部に凹部を含む第２のオブジェクトをオブジェクト空間内の所与の位置に配置する手段と、
第２のオブジェクトに関連づけて用意された判定用の第３のオブジェクトを、オブジェクト空間内の第２のオブジェクトに対応して与えられた位置に配置する手段と、
第１のオブジェクトと判定用の第３のオブジェクトとによって特定される交差部分について、第２のオブジェクトの凹部が見えるように、第１のオブジェクトのモデル情報を変更又はレンダリング手法を変更して、第１のオブジェクトと第２のオブジェクトを含むオブジェクト空間の画像を生成する手段と、
をコンピュータに実現させることを特徴とするプログラム。
【請求項６】
請求項５において、
第１のオブジェクトの前記交差部分に対応する部分にマッピングするテクスチャを透明なテクスチャに変更することを特徴とするプログラム。
【請求項７】
請求項５において、
第１のオブジェクトの前記交差部分に対応する部分の半透明情報を、第１のオブジェクトが透明になるように変更して、半透明合成処理を行うことを特徴とするプログラム。
【請求項８】
請求項５乃至７のいずれかにおいて、
第１のオブジェクトは流体を表現するためのオブジェクトであり、第２のオブジェクトは流体面に浮かぶオブジェクトであり、視点からみて流体面より奥方向に位置する第２のオブジェクトが見えるように第１のオブジェクトのモデル情報又はレンダリング手法を変更することを特徴とするプログラム。
【請求項９】
コンピュータにより読みとり可能な情報記憶媒体であって、請求項５乃至８のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【０００２】
【背景技術及び発明が解決しようとする課題】
従来より、仮想的な３次元空間であるオブジェクト空間内において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（例えばゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
このような画像生成システムでは、プレーヤの仮想現実感の向上のために、よりリアルな画像を生成することが重要な課題になっている。
【０００４】
例えば水面に浮かぶ手漕ぎボート等の画像についても、よりリアルに表現されていることが望まれる。ここにおいて手漕ぎボートと水面の位置関係がリアルタイムに変化する場合には変化する位置関係を反映した画像をリアルタイム生成しなければならない。
【０００５】
従って例えばゲーム装置等のように、限られたハードウエアを用いて入力情報に基づいたリアルタイムな画像生成を行うことが必要な画像生成システムにおいては、いかにして少ない演算負荷でリアルな画像を生成するかが重要な課題となる。
【０００６】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、視点から見て第１のオブジェクトの少なくとも１部より奥方向に位置する第２のオブジェクトの少なくとも１部が見える画像をより少ない処理負荷でリアルに生成することができる画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【０００７】
【課題を解決するための手段】
（１）本発明は、画像生成を行う画像生成システムであって、
第１のオブジェクトと少なくとも一部に凹部を含む第２のオブジェクトをオブジェクト空間内の所与の位置に配置する手段と、
第２のオブジェクトに関連づけて用意された判定用の第３のオブジェクトを、オブジェクト空間内の第２のオブジェクトに対応して与えられた位置に配置する手段と、
第１のオブジェクトと判定用の第３のオブジェクトとによって特定される交差部分について、第２のオブジェクトの凹部が見えるように、第１のオブジェクトのモデル情報を変更又はレンダリング手法を変更して、第１のオブジェクトと第２のオブジェクトを含むオブジェクト空間の画像を生成する手段と、
を含むことを特徴とする。
【０００８】
また本発明に係るプログラムは、コンピュータにより実行可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記手段をコンピュータに実現させる（上記手段としてコンピュータを機能させる）ことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能（使用可能）な情報記憶媒体であって、上記手段をコンピュータに実現させる（上記手段としてコンピュータを機能させる）ためのプログラムを含むことを特徴としている。
【０００９】
ここで、オブジェクト空間とは、例えば定義点（ポリゴンの頂点或いは自由曲面の制御点など）により形状が特定されるオブジェクトが配置される仮想的な３次元空間をいう。
【００１０】
第２のオブジェクトに関連付けて用意された判定用の第３のオブジェクト（ボリュームオブジェクト）は、例えば予め見積もった第１のオブジェクトと第２のオブジェクトの重複部分と同一形状又は類似形状を有するモデルで構成してもよいし、第２のオブジェクトの少なくとも一部と同一形状または類似形状を有するモデルで構成してもよいし、第２のオブジェクトによって切り取りたい形状を有するモデルで構成してもよいし、第２のオブジェクトの凹部を切り出した形状のモデルで構成してもよいし、第２のオブジェクトの少なくとも一部を簡易化した形状のモデルで構成してもよいし、対２のオブジェクトの凸部を覆う形状のモデルで構成してもよい。判定用の第３のオブジェクトのモデルの形状は生成する画像や実現したい画像効果に応じて、適宜決定することができる。
【００１１】
また判定用の第３のオブジェクトは予め用意されている場合でもよいし、リアルタイムに設定される場合でもよい。
【００１２】
判定用の第３のオブジェクトは、第２のオブジェクトと同位置に配置するようにしてもよいし、第２のオブジェクトから一義的に与えられる位置に配置するようにしてもよい。
【００１３】
第１のオブジェクトのモデル情報を変更するとは、例えば第１のオブジェクトにマッピングするテクスチャ情報を変更したり、第１のオブジェクトのプリミティブに付随したα値を変更する場合でもよい。
【００１４】
第１のオブジェクトのレンダリング手法を変更するとは、例えば第１のオブジェクトのレンダリング時にカルバック（裏面消去）法に変更する等である。
【００１５】
第１のオブジェクトと判定用の第３のオブジェクトの交差部分の検出は、ハード的に行われる場合でもよいし、ソフト的に行われる場合でもよい。
【００１６】
本発明によれば、視点から見て第１のオブジェクトの少なくとも１部より奥方向に位置する第２のオブジェクトの少なくとも１部の凹部が見える画像を生成することができる。また第２のオブジェクトの位置がリアルタイムに変化する場合でも判定用の第３のオブジェクトの配置を変化させるだけで、上記画像を生成できるので便利である。
【００１７】
例えばボリューム同士の交差した部分を判定する処理（たとえばシャドウボリューム処理）機能を有するハードウェアを用いて本画像生装置を構成する場合には、少ない処理負荷で視点から見て第１のオブジェクトより奥方向に位置する第２オブジェクトの凹部が見える画像を生成することができる。
【００１８】
また第１のオブジェクトが例えば水、砂、マグマ、泥、流体、気体等である場合に第１のオブジェクトにのめり込んだ第２のオブジェクトの凹部が見える様子を表現するのに好適である。
【００１９】
（２）本発明は、画像生成を行う画像生成システムであって、
第１のオブジェクトと第２のオブジェクトをオブジェクト空間内の所与の位置に配置する手段と、
第２のオブジェクトに関連づけて用意された判定用の第３のオブジェクトを、オブジェクト空間内の第２のオブジェクトに対応して与えられた位置に配置する手段と、
第１のオブジェクトと判定用の第３のオブジェクトとによって特定される交差部分について、第２のオブジェクトの表面が見えるように、第１のオブジェクトのモデル情報を変更又はレンダリング手法を変更して、第１のオブジェクトと第２のオブジェクトを含むオブジェクト空間の画像を生成する手段と、
を含むことを特徴とする。
【００２０】
また本発明に係るプログラムは、コンピュータにより実行可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記手段をコンピュータに実現させる（上記手段としてコンピュータを機能させる）ことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能（使用可能）な情報記憶媒体であって、上記手段をコンピュータに実現させる（上記手段としてコンピュータを機能させる）ためのプログラムを含むことを特徴としている。
【００２１】
ここで、オブジェクト空間とは、例えば定義点（ポリゴンの頂点或いは自由曲面の制御点など）により形状が特定されるオブジェクトが配置される仮想的な３次元空間をいう。
【００２２】
第２のオブジェクトに関連付けて用意された判定用の第３のオブジェクト（ボリュームオブジェクト）は、例えば予め見積もった第１のオブジェクトと第２のオブジェクトの重複部分と同一形状又は類似形状を有するモデルで構成してもよいし、第２のオブジェクトの少なくとも一部と同一形状または類似形状を有するモデルで構成してもよいし、第２のオブジェクトによって切り取りたい形状を有するモデルで構成してもよいし、第２のオブジェクトの少なくとも一部を簡易化した形状のモデルで構成してもよいし、対２のオブジェクトの凸部を覆う形状のモデルで構成してもよい。判定用の第３のオブジェクトのモデルの形状は生成する画像や実現したい画像効果に応じて、適宜決定することができる。
【００２３】
また判定用の第３のオブジェクトは予め用意されている場合でもよいし、リアルタイムに設定される場合でもよい。
【００２４】
判定用の第３のオブジェクトは、第２のオブジェクトと同位置に配置するようにしてもよいし、第２のオブジェクトから一義的に与えられる位置に配置するようにしてもよい。
【００２５】
第１のオブジェクトのモデル情報を変更するとは、例えば第１のオブジェクトにマッピングするテクスチャ情報を変更したり、第１のオブジェクトのプリミティブに付随したα値を変更する場合でもよい。
【００２６】
第１のオブジェクトのレンダリング手法を変更するとは、例えば第１のオブジェクトのレンダリング時に裏面消去法を用いる場合に表裏の判定を逆にする等である。
【００２７】
第１のオブジェクトと判定用の第３のオブジェクトの交差部分の検出は、ハード的に行われる場合でもよいし、ソフト的に行われる場合でもよい。
【００２８】
本発明によれば、視点から見て第１のオブジェクトの少なくとも１部より奥方向に位置する第２のオブジェクトの少なくとも１部の表面が見える画像を生成することができる。また第２のオブジェクトの位置がリアルタイムに変化する場合でも判定用の第３のオブジェクトの配置を変化させるだけで、上記画像を生成できるので便利である。
【００２９】
例えばボリューム同士の交差した部分を判定する処理（シャドウボリューム処理）機能を有するハードウェアを用いて本画像生装置を構成する場合には、少ない処理負荷で視点から見て第１のオブジェクトより奥方向に位置する第２オブジェクトの表面が見える画像を生成することができる。
【００３０】
また第１のオブジェクトが例えば水、砂、マグマ、泥、流体、気体等である場合に第１のオブジェクトにのめり込んだ第２のオブジェクトの凹部が見える様子を表現するのに好適である。
（３）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
第１のオブジェクトの前記交差部分に対応する部分にマッピングするテクスチャを透明なテクスチャに変更することを特徴とする。
【００３１】
本発明によれば第１のオブジェクトの交差部分に対応する部分に透明なテクスチャがマッピングされるので、視点から見て第１のオブジェクトの少なくとも１部より奥方向に位置する第２のオブジェクトの少なくとも１部が見える画像を生成することができる。
（４）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
第１のオブジェクトの前記交差部分に対応する部分の半透明情報を、第１のオブジェクトが透明になるように変更して、半透明合成処理を行うことを特徴とする。
【００３２】
ここで半透明情報とは、透明度情報と等価で、画像単位若しくは各画素の関連付けられて記憶される情報であって、オブジェクトの定義点毎に設定され、例えば色情報以外のプラスアルファの情報（α値）としての透明度（不透明度或いは半透明度と等価）を示す情報をいう。半透明情報が、例えばプラスアルファ情報として透明度情報を示す場合、例えば半透明情報を用いた半透明ブレンディング（αブレンディング）、半透明情報を用いた加算半透明（α加算）、半透明情報を用いた減算半透明（α減算）などの合成処理方法がある。
【００３３】
例えばαブレンディングである場合には、次のような半透明情報（α）を用いた合成処理が行われる。
【００３４】
ＲQ＝（１−α）×Ｒ1＋α×Ｒ2
ＧQ＝（１−α）×Ｇ1＋α×Ｇ2
ＢQ＝（１−α）×Ｂ1＋α×Ｂ2
ここで、Ｒ1、Ｇ1、Ｂ1は、描画バッファに既に描画されているジオメトリ処理後の画像の色（輝度）のＲ、Ｇ、Ｂ成分であり、Ｒ2、Ｇ2、Ｂ2は、描画画像の色のＲ、Ｇ、Ｂ成分である。また、ＲQ、ＧQ、ＢQは、αブレンディングにより生成される画像の色のＲ、Ｇ、Ｂ成分である。なお、ここでは、α値として、ジオメトリ処理後の所与の画像のα値を用いてもよいし、描画された元画像のα値を使用するようにしてもよい。
【００３５】
本発明によれば第１のオブジェクトの前記交差部分に対応する部分の半透明情報を、第１のオブジェクトが透明になるように変更して、半透明合成処理を行うので、視点から見て第１のオブジェクトの少なくとも１部より奥方向に位置する第２のオブジェクトの少なくとも１部が見える画像を生成することができる。
（５）また本発明に係る画像生成システム、プログラム及び情報記憶媒体は、
第１のオブジェクトは流体を表現するためのオブジェクトであり、第２のオブジェクトは流体面に浮かぶオブジェクトであり、視点からみて流体面より奥方向に位置する第２のオブジェクトが見えるように第１のオブジェクトのモデル情報又はレンダリング手法を変更することを特徴とする。
【００３６】
例えば第１のオブジェクトは水を表すオブジェクトであり、第２のオブジェクトは水面面に浮かぶ船オブジェクトであり、水面以下に位置する船オブジェクトの凹部が見えるようにモデル情報を変更することもできる。
【００３７】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて説明する。
【００３８】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を何ら限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００３９】
１．  構成
図１に、本実施形態の画像生成システム（例えばゲームシステム）の機能ブロック図の一例を示す。
【００４０】
なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１７０、或いは処理部１００と記憶部１７０と情報記憶媒体１８０を含めばよく）、それ以外のブロック（例えば操作部１６０、表示部１９０、音出力部１９２、携帯型情報記憶装置１９４、通信部１９６）については、任意の構成要素とすることができる。
【００４１】
ここで処理部１００は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、又は音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、或いはＡＳＩＣ（ゲートアレイ等）などのハードウェアや、所与のプログラム（ゲームプログラム）により実現できる。
【００４２】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、筐体などのハードウェアにより実現できる。
【００４３】
記憶部１７０は、メインメモリ（主記憶部等）１７２やフレームバッファ（描画バッファ等）１７４等を含み、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００４４】
情報記憶媒体（コンピュータにより使用可能な記憶媒体）１８０は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納される情報に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１８０には、本発明（本実施形態）の手段（特に処理部１００に含まれるブロック）を実行するための情報（プログラム或いはデータ）が格納される。
【００４５】
なお、情報記憶媒体１８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１７０に転送されることになる。また情報記憶媒体１８０に記憶される情報は、本発明の処理を行うためのプログラム、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも１つを含むものである。
【００４６】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００４７】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００４８】
携帯型情報記憶装置１９４は、プレーヤの個人データやセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００４９】
通信部１９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００５０】
なお本発明（本実施形態）の手段を実行するためのプログラム或いはデータは、ホスト装置（サーバ）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０に配信するようにしてもよい。このようなホスト装置（サーバ）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００５１】
処理部１００は、ゲーム処理部１１０、交差部分検出処理部（シャドーボリューム処理部）１２０、画像生成部１３０、音生成部１５０を含む。
【００５２】
ここでゲーム処理部１１０は、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ面）の位置や回転角度（Ｘ、Ｙ又はＺ軸回りの回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバ処理などの種々のゲーム処理を、操作部１６０からの操作データや、携帯型情報記憶装置１９４からの個人データ、保存データや、ゲームプログラムなどに基づいて行う。
【００５３】
ゲーム処理部は交差部分検出用設定処理部１１２を含む。交差部分検出用設定処理部１１２は、交差部分についてモデル情報やレンダリング手法が変更されるオブジェクト（ボリュームオブジェクトの影響を受けるオブジェクト）を指定する処理や、交差部分についてのモデル情報やレンダリング手法の変更内容の指定や第２のオブジェクトに関連づけて用意された判定用の第３のオブジェクトを、オブジェクト空間内の第２のオブジェクトに対応して与えられた位置に配置する処理等を行う。
【００５４】
交差部分検出処理部（シャドーボリューム処理部）１２０は、ボリュームオブジェクトとボリュームオブジェクトによって影響を受けるように設定された所与のオブジェクトとの交差部分（重複部分）を判定し、交差部分（重複部分）について、予め設定された変更情報に基づき、所与のオブジェクトのモデル情報を変更する処理を行う。
【００５５】
画像生成部１３０は、ゲーム処理部１１０からの指示等にしたがって各種の画像処理を行い、例えばオブジェクト空間内で仮想カメラ（視点）から見える画像を生成して、表示部１９０に出力する。
【００５６】
音生成部１５０は、ゲーム処理部１１０からの指示等にしたがって各種の音処理を行い、ＢＧＭ、効果音、又は音声などの音を生成し、音出力部１９２に出力する。
【００５７】
なお、ゲーム処理部１１０、交差部分検出処理部（シャドーボリューム処理部）１２０、画像生成部１３０、音生成部１５０の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００５８】
画像生成部１３０は、ジオメトリ処理部（３次元演算部）１３２、描画部（レンダリング部）１４０を含む。
【００５９】
ここで、ジオメトリ処理部１３２は、座標変換、クリッピング処理、透視変換、或いは光源計算などの種々のジオメトリ処理（３次元演算）を行う。そして、本実施形態では、ジオメトリ処理後（透視変換後）のオブジェクトデータ（オブジェクトの頂点座標、頂点テクスチャ座標、或いは輝度データ等）は、記憶部１７０の主記憶部１７２に格納されて、保存される。
【００６０】
描画部１４０は、ジオメトリ処理後（透視変換後）のオブジェクトデータと、記憶部１７０に記憶されるテクスチャとに基づいて、オブジェクトを描画バッファ１７４に描画する。これにより、オブジェクトが移動するオブジェクト空間において、仮想カメラ（視点）から見える画像が描画（生成）されるようになる。
【００６１】
なお描画部１４０では、ボリュームオブジェクトによって影響を受けるように設定された所与のオブジェクトとの交差部分（重複部分）については、交差部分検出処理によって変更された内容のモデル情報を用いて、又は交差部分検出処理によって変更された内容のレンダリング手法によって、レンダリング処理が行われる。
【００６２】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００６３】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末を用いて生成してもよい。
【００６４】
２．  本実施形態の特徴
以下では、水面（第１のオブジェクト）を移動するボート（第２のオブジェクト）の画像を生成する場合を例にとり説明するが、他のケースにも適用することができる。
【００６５】
図２に、本実施の形態における水面（第１のオブジェクト）を移動するボート（第２のオブジェクト）の画像の一例を示す。
【００６６】
ボート２２０は船底２２２が見える凹形状をしている。このように水面に例えば図２に示すボートのような凹部を有するオブジェクトが浮かんでいる場合、例えば図２のようなアングルにおいては、凹部である船底２２２がみえる。
【００６７】
図３はボートモデルを用いて生成したボートオブジェクトの画像の一例であり、図４は水面モデルを用いて生成した水面オブジェクトの画像の一例である。
【００６８】
また図５はボートモデルとボートが浮かんでいない状態の水面モデル（図４の画像を生成する際に使用したモデル）をオブジェクト空間に配置して、これらのモデルが本来有している奥行き情報に基づいて生成した画像の一例である。
【００６９】
ここでボートは移動オブジェクトであるため、その位置は各フレーム毎にリアルタイムに与えられるようにしてもよい。また水面は移動しないオブジェクトとして取り扱い固定の位置情報を与えるようにしてもよい。
【００７０】
そしてあたえられた位置情報に基づき、ボートモデルと水面モデルをオブジェクト空間に配置し、これらの位置情報とモデル情報に基づき与えられる各モデルのプリミティブ（例えばポリゴン面や頂点等）の奥行き情報に基づき陰面消去を行うと図５に示すような画像が生成されることになる。
【００７１】
ここで水面モデルはボートが浮かんでいない状態のものを使用しているため、ボートが浮かんだ部分も浮かんだボートによる変形のないフラット状態である。
【００７２】
従ってボートの凹部にあたる船底は、仮想カメラ（視点）からみて水面（水の表面）より奥に位置することになるため、図５に示すようにボードの水面より高い部分のみが見えた画像が生成されてしまう。
【００７３】
ここでボートが浮かんだことにる変形を反映させた水面モデルを用いれば係る不具合は生じない。しかし、例えば入力情報にもとづきリアルタイムに移動するボードを反映させて水面オブジェクトを変形させると処理負荷が増大する。
【００７４】
本実施の形態の特徴は、少なくとも一部に凹部を含む第２のオブジェクト（例えばボート）に対応する判定用の第３のオブジェクト（ボリュームオブジェクト）を、第１のオブジェクト（例えば水面）と共にオブジェクト空間に配置し、第１のオブジェクト（例えば水面）と判定用の第３のオブジェクト（ボリュームオブジェクト）によって特定される交差部分を検出し、第２のオブジェクト（例えばボート）の凹部が見えるように、検出された交差部分に対応する第１のオブジェクト（例えば水面）のモデル情報を変更又はレンダリング手法を変更して、第１のオブジェクト（例えば水面）と第２のオブジェクト（例えばボート）を含むオブジェクト空間の画像を生成する点にある。
【００７５】
このようにすることにより本実施の形態では、ボートモデルとボートが浮かんでいない状態の水面モデルを用いて、ボートの船底が見える画像を生成することができる。
【００７６】
図６は、本実施の形態で使用するボリュームオブジェクト（判定用の第３のオブジェクト）の一例について説明するための図である。
【００７７】
同図に示すボリュームオブジェクト２３０は、ボートオブジェクト（第２のオブジェクト）とボートが浮かんでいない状態の水面オブジェクト（第１のオブジェクト）とによって特定される交差部分を検出するためにボートオブジェクト（第２のオブジェクト）に対応して設けられた判定用の第３のオブジェクトである。
【００７８】
同図に示すようにボリュームオブジェクト２３０は、水面下（ボートを浮かべていない状態の水面下）に位置するボートの凹部の空間を切り出した形状をしており、ボートの凹部と水面（ボートを浮かべていない状態）とによって特定される（切り取られる）凸型のボリュームとして構成することができる。ボートの位置が変化してもこのボリュームオブジェクトに対応するモデルは、同じモデルを使用可能である。
【００７９】
なお、凸型のオブジェクトとは、例えば視線方向に重なるプリミティブ面が２枚以上ないオブジェクトをいう。
【００８０】
図７（Ａ）（Ｂ）は、第１のオブジェクト（例えば水面）と判定用の第３のオブジェクト（ボリュームオブジェクト）によって特定される交差部分の検出について説明するための図である。
【００８１】
図７（Ａ）は、画像生成時にボートオブジェクト３２０と水面オブジェクト３１０をオブジェクト空間に配置する様子を表しており、図７（Ｂ）は、交差部分検出時にボリュームオブジェクト３３０と水面オブジェクト３１０をオブジェクト空間に配置する様子を表している。
【００８２】
交差部分検出時には、ボリュームオブジェクト３３０をオブジェクト空間のボートオブジェクト３２０と同じ位置に配置する。ここにおいてオブジェクトの位置とは例えばオブジェクトの代表点を配置する位置（ワールド座標系における位置座標）である。
【００８３】
例えば、シャドーボリューム機能を有するハードウエアを用いて交差部分検出処理を行う場合には、水面オブジェクトの画像を生成するために使用するモデル情報と配置位置及びボリュームオブジェクトのモデル情報と配置位置を指定してハードウエアのボリューム同士の交差した部分を判定する処理を行うとよい。
【００８４】
これにより、水面オブジェクトとボリュームオブジェクトとの交差部分（図７（Ｂ）の斜線部分）を判定することができる。そしてボートオブジェクトの船底（凹部）が見えるように、検出された交差部分に対応する水面オブジェクトのモデル情報を変更又はレンダリング手法を変更する。
【００８５】
例えば交差部分について水面オブジェクトにマッピングするテクスチャ情報を変更したり、水面オブジェクトのプリミティブに付随したα値を変更するようにしてもよい。また交差部分について水面オブジェクトのレンダリング手法でたとえば裏面消去法を用いる場合において表裏の判定を逆にするようにしてもよい。
【００８６】
図８は、交差部分が切り取られた水面オブジェクトの画像である。交差部分３５０以外の水面については、水面テクスチャがマッピングされている。ここで例えば交差部分３５０について透明テクスチャをマッピングするようにモデル情報を変更することができる。このようにすると交差部分３５０については、水面より奥方向に位置するボートの船底部分が見える画像（図２参照）を生成することができる。
【００８７】
３．  本実施形態の処理例
次に、本実施形態の処理の詳細例について、図９のフローチャートを用いて説明する。
【００８８】
各フレーム毎に以下のステップＳ１０〜Ｓ５０の処理を繰り返す。
【００８９】
まずボリュームオブジェクト（例えばシャドーボリューム）の影響を受けるオブジェクトにおいてボリュームオブジェクト（例えばシャドーボリューム）の内側の部分のテクスチャを透明なものに差し替えるように設定する（ステップＳ１０）。
【００９０】
次に水面オブジェクトの画像を生成するための水面モデルをボリュームオブジェクト（例えばシャドーボリューム）の影響を受ける状態でオブジェクト空間に配置する（ステップＳ２０）。ここでボリュームオブジェクト（例えばシャドーボリューム）の影響を受ける状態とは、水面オブジェクトがステップＳ１０の設定でレンダリングが行われる状態等におくことである。例えば水面オブジェクトがボリュームオブジェクト（例えばシャドーボリューム）の影響を受けることを示すための設定をＯＮにするような場合でもよい。
【００９１】
次にボートオブジェクトの画像を生成するためのボートモデルをボリュームオブジェクト（例えばシャドーボリューム）の影響を受ける状態でオブジェクト空間に配置する（ステップＳ３０）。
【００９２】
次にボートに関連付けて用意されている判定用ボリュームをボリュームオブジェクト（例えばシャドーボリューム）として、オブジェクト空間内のボートオブジェクトと同じ座標に配置する（ステップＳ４０）。
【００９３】
そして水面オブジェクトとボートオブジェクトを含むオブジェクト空間のレンダリング処理を行う（ステップＳ５０）。このレンダリング処理を行うさいに、ステップＳ１０においてボリュームオブジェクト（例えばシャドーボリューム）の影響を受けるように設定されているオブジェクト（例えば水面オブジェクト）におけるボリュームオブジェクト（例えばシャドーボリューム）の内側にあたる部分（ボリュームオブジェクトとの交差部分）のテクスチャを透明なものに差し替える処理を行う。
【００９４】
なおボリュームオブジェクト（例えばシャドーボリューム）の影響を受けるように設定されているオブジェクトとボリュームオブジェクト（例えばシャドーボリューム）との交差部分の判定については、ハードが行うようにしてもよいし、プログラムで行うようにしてもよい。
【００９５】
またプログラムで行う場合にはステップＳ４０の後に、ボリュームオブジェクト（例えばシャドーボリューム）の影響を受けるように設定されているオブジェクトとボリュームオブジェクト（例えばシャドーボリューム）との交差部分の判定処理を行うようにしてもよい。
【００９６】
４．  ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図１０を用いて説明する。
【００９７】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【００９８】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【００９９】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０１００】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、ＭＰＥＧ方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【０１０１】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ（プリミティブ面）で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すとともに、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０１０２】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０１０３】
ゲームコントローラ９４２（レバー、ボタン、筺体、パッド型コントローラ又はガン型コントローラ等）からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０１０４】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０１０５】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０１０６】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０１０７】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０１０８】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【０１０９】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実現（実行）してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０１１０】
そして、本発明の各手段をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実現するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示するとともに、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各手段を実現することになる。
【０１１１】
図１１（Ａ）に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、レバー１１０２、ボタン１１０４等を操作してゲームを楽しむ。内蔵されるシステムボード（サーキットボード）１１０６には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報（プログラム或いはデータ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、この情報を格納情報と呼ぶ。
【０１１２】
図１１（Ｂ）に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２、１２０４を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９等に格納されている。
【０１１３】
図１１（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）を介して接続される端末１３０４-1〜１３０４-nとを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。端末１３０４-1〜１３０４-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４-1〜１３０４-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４-1〜１３０４-nに伝送し端末において出力することになる。
【０１１４】
なお、図１１（Ｃ）の構成の場合に、本発明の各手段を、ホスト装置（サーバ）と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置（サーバ）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０１１５】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であるとともに家庭用ゲームシステムとの間でも情報のやり取りが可能な携帯型情報記憶装置（メモリカード、携帯型ゲーム装置）を用いることが望ましい。
【０１１６】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０１１７】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０１１８】
たとえは、本実施の形態では第１のオブジェクトを水面オブジェクトとして、第２のオブジェクトをボートオブジェクトとして、水面に浮かぶボートの船底の画像が生成される場合を例にとり説明したがこれに限られない。
【０１１９】
例えば流体や気体（第１のオブジェクト）に浮かび、凹部を有する他のオブジェクト（第２のオブジェクト）について、視点から見て第１のオブジェクトの少なくとも１部より奥方向に位置する第２のオブジェクトの少なくとも１部が見える画像を生成する場合でもよい。
【０１２０】
また第２のオブジェクトが凹部を有していない場合に、視点から見て第１のオブジェクトの少なくとも１部より奥方向に位置する第２のオブジェクトの少なくとも１部の表面が見える画像を生成する場合でもよい。
【０１２１】
また、本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０１２２】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム（ゲームシステム）に適用できる。
【図面の簡単な説明】
【図１】本実施形態の画像生成システムの機能ブロック図の一例である。
【図２】本実施の形態における水面（第１のオブジェクト）を移動するボート（第２のオブジェクト）の画像の一例を示す。
【図３】ボートモデルを用いて生成したボートオブジェクトの画像の一例である。
【図４】水面モデルを用いて生成した水面オブジェクトの画像の一例である。
【図５】水面モデルを用いて生成した水面オブジェクトの画像の一例である。
【図６】本実施の形態で使用するボリュームオブジェクト（判定用の第３のオブジェクト）の一例について説明するための図である。
【図７】図７（Ａ）（Ｂ）は、第１のオブジェクト（例えば水面）と判定用の第３のオブジェクト（ボリュームオブジェクト）によって特定される交差部分の検出について説明するための図である。
【図８】交差部分が切り取られた水面オブジェクトの画像である。
【図９】本実施形態の処理の詳細例を説明するためのフローチャート図である。
【図１０】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図１１】図１１（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
１００  処理部
１１０  ゲーム処理部
１１２  交差部分検出用設定処理部
１２０  交差部分検出処理部（シャドーボリューム処理部）
１３０  画像生成部
１３２  ジオメトリ処理部
１４０  描画部
１５０  音生成部
１６０  操作部
１７０  記憶部
１７２  メインメモリ（主記憶部）
１７４  フレームバッファ（描画バッファ）
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  携帯型情報記憶装置
１９６  通信部
【図１】
0004052843.tif 000002
【図２】
0004052843.tif 000003
【図３】
0004052843.tif 000004
【図４】
0004052843.tif 000005
【図５】
0004052843.tif 000006
【図６】
0004052843.tif 000007
【図７】
0004052843.tif 000008
【図８】
0004052843.tif 000009
【図９】
0004052843.tif 000010
【図１０】
0004052843.tif 000011
【図１１】
0004052843.tif 000012