(57)【要約】【課題】正確かつ演算負荷の少ないヒットチェックや交差位置の判定を行うことが可能な画像生成システム、プログラム及び情報記憶媒体を提供すること。【解決手段】本画像生成システムは、第１のオブジェクトと第２のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングするレンダリング手段１３０と、第１のオブジェクト又は第２のオブジェクトの描画の有無に基づき、交差の有無を検出する交差検出手段１２０とを含む。また所与の時刻ｔからｔ＋Δｔにおける第１のオブジェクトの移動に基づき移動軌跡ボリュームを生成しオブジェクト空間に配置する移動軌跡ボリューム設定手段１２４と、移動軌跡ボリューム及び第２のオブジェクトの少なくとも一方の描画領域に基づき、移動軌跡ボリュームと第２のオブジェクトの交差領域を検出する交差領域検出手段１２２を含むようにしてもよい。【選択図】        図５
2004303034.tif 000002
【特許請求の範囲】
【請求項１】
画像生成を行う画像生成システムであって、
オブジェクト空間における第１のオブジェクトと第２のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングするレンダリング手段と、
第１のオブジェクト又は第２のオブジェクトの描画の有無に基づき、第１のオブジェクトと第２のオブジェクトの交差の有無を検出する交差検出手段と、
を含むことを特徴とする画像生成装置。
【請求項２】
画像生成を行う画像生成システムであって、
オブジェクト空間における第１のオブジェクトと第２のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングするレンダリング手段と、
レンダリング結果にもとづき第１のオブジェクト又は第２のオブジェクトの描画画素数を検出する手段と、
検出された第１のオブジェクト又は第２のオブジェクトの描画画素数に基づき、第１のオブジェクトと第２のオブジェクトの交差の有無を検出する交差検出手段と、
を含むことを特徴とする画像生成装置。
【請求項３】
請求項１乃至２のいずれかにおいて、
前記交差検出手段は、
第１のオブジェクト及び第２のオブジェクトの少なくとも一方の描画画素数又は描画の有無に関連して設定された初期値と、検出された第１のオブジェクト又は第２のオブジェクトの描画画素数又は描画の有無を比較して、比較結果に基づき、第１のオブジェクトと第２のオブジェクトの交差の有無を検出することを特徴とする画像生成装置。
【請求項４】
請求項１乃至３のいずれかにおいて、
前記交差検出手段は、
所与の時刻ｔにおいて検出された第１のオブジェクト又は第２のオブジェクトの描画画素数又は描画の有無と所与の時刻ｔ＋Δｔにおいて検出された第１のオブジェクト又は第２のオブジェクトの描画画素数又は描画の有無にもとづいて、第１のオブジェクト及び第２のオブジェクトの少なくとも一方の描画画素数又は描画の有無の変化を検出し、変化があった場合に第１のオブジェクトと第２のオブジェクトの交差の有と判定する交差検出手段とを含むことを特徴とする画像生成装置。
【請求項５】
画像生成を行う画像生成システムであって、
所与の時刻ｔからｔ＋Δｔにおける第１のオブジェクトの移動に基づき移動軌跡ボリュームを生成しオブジェクト空間に配置する移動軌跡ボリューム設定手段と、
移動軌跡ボリュームと第２のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングするレンダリング手段と、
移動軌跡ボリューム及び第２のオブジェクトの少なくとも一方の描画領域に基づき、移動軌跡ボリュームと第２のオブジェクトの交差領域を検出する交差領域検出手段と、
を含むことを特徴とする画像生成装置。
【請求項６】
請求項５において、
前記レンダリング手段は、
移動軌跡ボリュームを構成するポリゴンうち仮想カメラに表面が向いている表面ポリゴンと、仮想カメラに裏面が向いている裏面ポリゴンを描画し、
交差領域検出手段は、
表面ポリゴンと裏面ポリゴンの描画された回数の異なる画素で構成される領域を交差領域として検出することを特徴とする画像生成装置。
【請求項７】
請求項５乃至６のいずれかにおいて、
検出された交差領域に基づいて第１のオブジェクトと第２のオブジェクトの交差位置を演算する手段とを含むことを特徴とする画像生成装置。
【請求項８】
請求項１乃至７のいずれかにおいて、
演算された交差位置又は第１のオブジェクトと第２のオブジェクトの交差の有無に基づき、ヒットチェック判定を行い、判定結果に基づきゲーム演算処理をおこなうゲーム演算手段を含むことを特徴とする画像生成装置。
【請求項９】
コンピュータが実行可能なプログラムであって、
オブジェクト空間における第１のオブジェクトと第２のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングするレンダリング手段と、
第１のオブジェクト又は第２のオブジェクトの描画の有無に基づき、第１のオブジェクトと第２のオブジェクトの交差の有無を検出する交差検出手段と、
をコンピュータに実現させることを特徴とするプログラム。
【請求項１０】
コンピュータが実行可能なプログラムであって、
オブジェクト空間における第１のオブジェクトと第２のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングするレンダリング手段と、
レンダリング結果にもとづき第１のオブジェクト又は第２のオブジェクトの描画画素数を検出する手段と、
検出された第１のオブジェクト又は第２のオブジェクトの描画画素数に基づき、第１のオブジェクトと第２のオブジェクトの交差の有無を検出する交差検出手段と、
をコンピュータに実現させることを特徴とするプログラム。
【請求項１１】
請求項９乃至１０のいずれかにおいて、
前記交差検出手段は、
第１のオブジェクト及び第２のオブジェクトの少なくとも一方の描画画素数又は描画の有無に関連して設定された初期値と、検出された第１のオブジェクト又は第２のオブジェクトの描画画素数又は描画の有無を比較して、比較結果に基づき、第１のオブジェクトと第２のオブジェクトの交差の有無を検出することを特徴とするプログラム。
【請求項１２】
請求項９乃至１１のいずれかにおいて、
前記交差検出手段は、
所与の時刻ｔにおいて検出された第１のオブジェクト又は第２のオブジェクトの描画画素数又は描画の有無と所与の時刻ｔ＋Δｔにおいて検出された第１のオブジェクト又は第２のオブジェクトの描画画素数又は描画の有無にもとづいて、第１のオブジェクト及び第２のオブジェクトの少なくとも一方の描画画素数又は描画の有無の変化を検出し、変化があった場合に第１のオブジェクトと第２のオブジェクトの交差の有と判定する交差検出手段とを含むことを特徴とするプログラム。
【請求項１３】
コンピュータが実行可能なプログラムであって、
所与の時刻ｔからｔ＋Δｔにおける第１のオブジェクトの移動に基づき移動軌跡ボリュームを生成しオブジェクト空間に配置する移動軌跡ボリューム設定手段と、
移動軌跡ボリュームと第２のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングするレンダリング手段と、
移動軌跡ボリューム及び第２のオブジェクトの少なくとも一方の描画領域に基づき、移動軌跡ボリュームと第２のオブジェクトの交差領域を検出する交差領域検出手段と、
コンピュータに実現させることを特徴とするプログラム。
【請求項１４】
請求項１３において、
前記レンダリング手段は、
移動軌跡ボリュームを構成するポリゴンうち仮想カメラに表面が向いている表面ポリゴンと、仮想カメラに裏面が向いている裏面ポリゴンを描画し、
交差領域検出手段は、
表面ポリゴンと裏面ポリゴンの描画された回数の異なる画素で構成される領域を交差領域として検出することを特徴とするプログラム。
【請求項１５】
請求項１３乃至１４のいずれかにおいて、
検出された交差領域に基づいて第１のオブジェクトと第２のオブジェクトの交差位置を演算する手段とを含むことを特徴とするプログラム。
【請求項１６】
請求項９乃至１５のいずれかにおいて、
演算された交差位置又は第１のオブジェクトと第２のオブジェクトの交差の有無に基づき、ヒットチェック判定を行い、判定結果に基づきゲーム演算処理をおこなうゲーム演算手段を含むことを特徴とするプログラム。
【請求項１７】
コンピュータにより読みとり可能な情報記憶媒体であって、請求項９乃至１６のいずれかに記載のプログラムを記憶することを特徴とする情報記憶媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【０００２】
【背景技術】
従来より、仮想的な３次元空間であるオブジェクト空間内において仮想カメラ（所与の視点）から見える画像を生成する画像生成システム（例えばゲームシステム）が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【０００３】
このような画像生成システムを用いて例えばシューティングゲームやレースゲーム等の様々なゲームシステムを構築する場合、様々な場面でオブジェクト空間内のオブジェクト間のヒットチェックや交差位置の判定が必要となる場合がある。
【０００４】
【特許文献１】
特開２００３−６６７１号公報
【０００５】
【発明が解決しようとする課題】
従来は、オブジェクト空間におけるオブジェクトの配置位置や配置位置にオブジェクトの形状を加味した３次元演算や２次元演算によりオブジェクト間のヒットチェックや交差位置の判定を行っていた。このような場合より正確なヒットチェックや交差位置の判定を行おうとすると、判定演算にオブジェクトの形状をより正確に反映させることが必要となり演算負荷が増大する。
【０００６】
ゲーム装置では限られたハード上資源を用いてインタラクティブに変化するオブジェクトの位置を反映したヒットチェックや交差位置の判定をリアルタイムに行うことが必要であるため、正確かつ演算負荷の少ないヒットチェックや交差位置の判定を行うことが望ましい。
【０００７】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、正確かつ演算負荷の少ないヒットチェックや交差位置の判定を行うことが可能な画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【０００８】
【課題を解決するための手段】
（１）本発明は、画像生成を行う画像生成システムであって、
オブジェクト空間における第１のオブジェクトと第２のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングするレンダリング手段と、
第１のオブジェクト又は第２のオブジェクトの描画の有無に基づき、第１のオブジェクトと第２のオブジェクトの交差の有無を検出する交差検出手段と、
を含むことを特徴とする。
【０００９】
また本発明に係るプログラムは、コンピュータにより実行可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記手段をコンピュータに実現させる（上記手段としてコンピュータを機能させる）ことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能（使用可能）な情報記憶媒体であって、上記手段をコンピュータに実現させる（上記手段としてコンピュータを機能させる）ためのプログラムを含むことを特徴としている。
【００１０】
ここで、オブジェクト空間とは、例えば定義点（ポリゴンの頂点或いは自由曲面の制御点など）により形状が特定されるオブジェクトが配置される仮想的な３次元空間をいう。
【００１１】
また第１のオブジェクトと第２のオブジェクトの少なくとも一方は現在移動中であるか、または移動する可能性のあるオブジェクトである。
【００１２】
レンダリングとはオブジェクト空間に配置されたオブジェクトについて例えば座標変換、陰面消去、シェーディング等の処理を行い描画バッファに描画する処理である。
【００１３】
ここでレンダリング手段は例えば透視変換の座標変換や蔭面消去等を行い、オブジェクト空間における第１のオブジェクトと第２のオブジェクトを所与の位置に配置された仮想カメラから見た画像を描画バッファ（フレームバッファ等）に描画する。
【００１４】
なお、第１のオブジェクトと第２のオブジェクトの交差判定に必要な部分に関して、描画されたオブジェクトのレンダリング領域との対応がつけられれば良いので、レンダリングのために使う座標変換を射影投影に限る必要も無く、平行投影や非ユークリッド的な座標変換や区分的に分かれたレンダリングを通して接触した部分の判定を行うことも可能である。
【００１５】
レンダリングや第１のオブジェクト又は第２のオブジェクトの描画の有無は、ソフトウエアにより実現してもよいし、ハードウエアにより実現してもよいし、ソフトウエアとハードウエアの両方で実現してもよい。例えばレンダリング機能を有するハードウエアに対して、ソフトウエアから処理内容を特定するためのパラメータを設定して実現するようにしてもよい。
【００１６】
仮想カメラは第１のオブジェクト及び第２のオブジェクトの少なくとも一方が視野角にはいる所定位置に設定することが好ましい。例えば第１のオブジェクト又は第２のオブジェクトの内部や裏面側に仮想カメラを配置するようにしてもよい。
【００１７】
例えば第１のオブジェクト又は第２のオブジェクトの描画有の場合に第１のオブジェクトと第２のオブジェクトの交差有りと判断するようにしてもよいし、その逆でもよい。
【００１８】
本発明によれば、レンダリング結果得られた第１のオブジェクト又は第２のオブジェクトの描画の有無によって、第１のオブジェクトと第２のオブジェクトの交差の有無を検出することが出来る。
【００１９】
したがってオブジェクト空間におけるオブジェクトの配置位置や配置位置にオブジェクトの形状を加味した３次元ヒットチェック演算や２次元ヒットチェック演算が必要ないために、ヒットチェック演算の負荷を大幅に軽減することが出来る。
【００２０】
特に本発明によればオブジェクトの形状が複雑である場合でも、オブジェクトの形状を正確に反映した交差判例を行うことができるため、精度のよい交差判定をおこなうことが出来る。
（２）本発明は画像生成を行う画像生成システムであって、
オブジェクト空間における第１のオブジェクトと第２のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングするレンダリング手段と、
レンダリング結果にもとづき第１のオブジェクト又は第２のオブジェクトの描画画素数を検出する手段と、
検出された第１のオブジェクト又は第２のオブジェクトの描画画素数に基づき、第１のオブジェクトと第２のオブジェクトの交差の有無を検出する交差検出手段と、
を含むことを特徴とする。
【００２１】
また本発明に係るプログラムは、コンピュータにより実行可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記手段をコンピュータに実現させる（上記手段としてコンピュータを機能させる）ことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能（使用可能）な情報記憶媒体であって、上記手段をコンピュータに実現させる（上記手段としてコンピュータを機能させる）ためのプログラムを含むことを特徴としている。
【００２２】
ここで、オブジェクト空間とは、例えば定義点（ポリゴンの頂点或いは自由曲面の制御点など）により形状が特定されるオブジェクトが配置される仮想的な３次元空間をいう。
【００２３】
また第１のオブジェクトと第２のオブジェクトの少なくとも一方は現在移動中であるか、または移動する可能性のあるオブジェクトである。
【００２４】
レンダリングとはオブジェクト空間に配置されたオブジェクトについて例えば座標変換、陰面消去、シェーディング等の処理を行い描画バッファに描画する処理である。
【００２５】
ここでレンダリング手段は例えば透視変換の座標変換や蔭面消去等を行い、オブジェクト空間における第１のオブジェクトと第２のオブジェクトを所与の位置に配置された仮想カメラから見た画像を描画バッファ（フレームバッファ等）に描画する。
【００２６】
なお、第１のオブジェクトと第２のオブジェクトの交差判定に必要な部分に関して、描画されたオブジェクトのレンダリング領域との対応がつけられれば良いので、レンダリングのために使う座標変換を射影投影に限る必要も無く、平行投影や非ユークリッド的な座標変換や区分的に分かれたレンダリングを通して接触した部分の判定を行うことも可能である。
【００２７】
レンダリング結果にもとづく第１のオブジェクト又は第２のオブジェクトの描画画素数の検出は、ソフトウエアにより実現してもよいし、ハードウエアにより実現してもよいし、ソフトウエアとハードウエアの両方で実現してもよい。例えばレンダリング機能を有するハードウエアに対して、ソフトウエアから処理内容を特定するためのパラメータを設定して実現するようにしてもよい。
【００２８】
仮想カメラは第１のオブジェクト及び第２のオブジェクトの少なくとも一方が視野角にはいる所定位置に設定することが好ましい。例えば第１のオブジェクト又は第２のオブジェクトの内部や裏面側に仮想カメラを配置するようにしてもよい。
【００２９】
第１のオブジェクト又は第２のオブジェクトのしきい値をさだめておいて、検出された第１のオブジェクト又は第２のオブジェクトの描画画素数としきい値を比較して、比較結果に基づき第１のオブジェクトと第２のオブジェクトの交差の有無を検出することが出来る。
【００３０】
例えば第１のオブジェクト又は第２のオブジェクトの描画画素数がしきい値以上である場合に衝突があったと判定するようにしてもよい。
【００３１】
このようにすると、第１のオブジェクトが第２のオブジェクトをかすめた場合等（この場合には第１のオブジェクトの描画画素数は１以上になるがしきい値よりは小さい）を衝突なしと判定することが出来る。
【００３２】
本発明によれば、レンダリング結果得られた第１のオブジェクト又は第２のオブジェクトの描画画素数によって、第１のオブジェクトと第２のオブジェクトの交差の有無を検出することが出来るため、オブジェクト空間におけるオブジェクトの配置位置や配置位置にオブジェクトの形状を加味した３次元ヒットチェック演算や２次元ヒットチェック演算が必要ないために、ヒットチェック演算の負荷を大幅に軽減することが出来る。
【００３３】
特に本発明によればオブジェクトの形状が複雑である場合でも、オブジェクトの形状を正確に反映した交差判例を行うことができるため、精度のよい交差判定を行うことが出来る。
【００３４】
最近の画像生成システムでは、レンダリングしたオブジェクトの描画面積を高速に取得する機能を有するハードウエアが搭載されているので機能を用いて第１のオブジェクト又は第２のオブジェクトの描画画素数を取得するようにしてもよい。このようにすると複雑なヒットチェック演算をハードウエアの描画面積取得機能を使うことにより、高速に行うことが出来る。
（３）本発明の画像生成装置は、
前記交差検出手段は、
第１のオブジェクト及び第２のオブジェクトの少なくとも一方の描画画素数又は描画の有無に関連して設定された初期値と、検出された第１のオブジェクト又は第２のオブジェクトの描画画素数又は描画の有無を比較して、比較結果に基づき、第１のオブジェクトと第２のオブジェクトの交差の有無を検出することを特徴とする。
【００３５】
例えば第１のオブジェクト及び第２のオブジェクトの少なくとも一方の描画画素数が０又は描画無を初期値として設定しておき、検出された第１のオブジェクト又は第２のオブジェクトの描画画素数が０以外又は描画有りであった場合に第１のオブジェクトと第２のオブジェクトの交差の有りと判定するようにしても良いし、第１のオブジェクト及び第２のオブジェクトの少なくとも一方の描画画素数が１以上又は描画有りを初期値として設定しておき、検出された第１のオブジェクト又は第２のオブジェクトの描画画素数が０又は描画無しであった場合に第１のオブジェクトと第２のオブジェクトの交差の有りと判定するようにしても良い。
（４）本発明の画像生成装置は、
前記交差検出手段は、
所与の時刻ｔにおいて検出された第１のオブジェクト又は第２のオブジェクトの描画画素数又は描画の有無と所与の時刻ｔ＋Δｔにおいて検出された第１のオブジェクト又は第２のオブジェクトの描画画素数又は描画の有無にもとづいて、第１のオブジェクト及び第２のオブジェクトの少なくとも一方の描画画素数又は描画の有無の変化を検出し、変化があった場合に第１のオブジェクトと第２のオブジェクトの交差の有と判定する交差検出手段とを含むことを特徴とする。
【００３６】
本発明によれば、所与の時刻ｔ〜ｔ＋Δｔの間に、第１のオブジェクト又は第２のオブジェクトの描画画素数又は描画の有無の変化を検出した場合に、所与の時刻ｔ〜ｔ＋Δｔの間に第１のオブジェクトと第２のオブジェクトの交差の有ったと判定することができる。
（５）本発明は、画像生成を行う画像生成システムであって、
所与の時刻ｔからｔ＋Δｔにおける第１のオブジェクトの移動に基づき移動軌跡ボリュームを生成しオブジェクト空間に配置する移動軌跡ボリューム設定手段と、
移動軌跡ボリュームと第２のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングするレンダリング手段と、
移動軌跡ボリューム及び第２のオブジェクトの少なくとも一方の描画領域に基づき、移動軌跡ボリュームと第２のオブジェクトの交差領域を検出する交差領域検出手段と、
を含むことを特徴とする。
【００３７】
また本発明に係るプログラムは、コンピュータにより実行可能なプログラム（情報記憶媒体又は搬送波に具現化されるプログラム）であって、上記手段をコンピュータに実現させる（上記手段としてコンピュータを機能させる）ことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能（使用可能）な情報記憶媒体であって、上記手段をコンピュータに実現させる（上記手段としてコンピュータを機能させる）ためのプログラムを含むことを特徴としている。
【００３８】
ここで、オブジェクト空間とは、例えば定義点（ポリゴンの頂点或いは自由曲面の制御点など）により形状が特定されるオブジェクトが配置される仮想的な３次元空間をいう。
【００３９】
ここで第１のオブジェクトは現在移動中であるか、または移動する可能性のあるオブジェクトである。また第２のオブジェクトは移動していてもよいし、静止していてもよい。
【００４０】
移動軌跡ボリュームは第１のオブジェクトが移動前後及び移動中に占有した空間（３次元的な移動軌跡をすべて包含するボリューム（立体））である。例えば第１のオブジェクトの移動前後における頂点を移動軌跡（移動ベクトル）または直線で結んで生成するようにしてもよい。
【００４１】
レンダリングとはオブジェクト空間に配置されたオブジェクトについて例えば座標変換、陰面消去、シェーディング等の処理を行い描画バッファに描画する処理である。
【００４２】
ここでレンダリング手段は例えば透視変換の座標変換や蔭面消去等を行い、オブジェクト空間における移動軌跡ボリュームと第２のオブジェクトを所与の位置に配置された仮想カメラから見た画像を描画バッファ（フレームバッファ等）に描画する。
【００４３】
なお、移動軌跡ボリュームと第２のオブジェクトの交差判定に必要な部分に関して、描画されたオブジェクトのレンダリング領域との対応がつけられれば良いので、レンダリングのために使う座標変換を射影投影に限る必要も無く、平行投影や非ユークリッド的な座標変換や区分的に分かれたレンダリングを通して接触した部分の判定を行うことも可能である。
【００４４】
レンダリングや移動軌跡ボリューム及び第２のオブジェクトの少なくとも一方の描画領域の検出は、ソフトウエアにより実現してもよいし、ハードウエアにより実現してもよいし、ソフトウエアとハードウエアの両方で実現してもよい。例えばレンダリング機能を有するハードウエアに対して、ソフトウエアから処理内容を特定するためのパラメータを設定して実現するようにしてもよい。
【００４５】
仮想カメラは移動軌跡ボリューム及び第２のオブジェクトの少なくとも一方が視野角にはいる所定位置に設定することが好ましい。例えば移動軌跡ボリューム又は第２のオブジェクトの内部や裏面側に仮想カメラを配置するようにしてもよい。
【００４６】
例えば移動軌跡ボリュームの描画領域のうち所定の状態である部分を交差領域として検出するようにしてもよい。
【００４７】
本発明によれば、レンダリング結果得られた移動軌跡ボリューム及び第２のオブジェクトの少なくとも一方の描画領域にもとづき、第１のオブジェクトと第２のオブジェクトの交差の有無を検出することが出来る。
【００４８】
したがってオブジェクト空間におけるオブジェクトの配置位置や配置位置にオブジェクトの形状を加味した３次元ヒットチェック演算や２次元ヒットチェック演算が必要ないために、ヒットチェック演算の負荷を大幅に軽減することが出来る。
【００４９】
特に本発明によればオブジェクトの形状が複雑である場合でも、オブジェクトの形状を正確に反映した交差判例を行うことができるため、精度のよい交差判定をおこなうことが出来る。
【００５０】
また検出された交差領域は、第２のオブジェクトと対応付けが可能であるため、第２のオブジェクトとの位置の対応をとることで、交差位置を検出することが出来る。このように本発明によれば交差判定のみならず交差位置の検出も行うことが出来る。
（６）本発明の画像生成装置は、
前記レンダリング手段は、
移動軌跡ボリュームを構成するポリゴンうち仮想カメラに表面が向いている表面ポリゴンと、仮想カメラに裏面が向いている裏面ポリゴンを描画し、
交差領域検出手段は、
表面ポリゴンと裏面ポリゴンの描画された回数の異なる画素で構成される領域を交差領域として検出することを特徴とする。
【００５１】
前記レンダリング手段は、移動軌跡ボリュームを構成するポリゴンうち仮想カメラに表面が向いている表面ポリゴンによって構成される表面オブジェクトと、仮想カメラに裏面が向いている裏面ポリゴンによって構成される裏面オブジェクトとを描画し、交差領域検出手段は、表面オブジェクトと裏面オブジェクトの描画された回数の異なる画素で構成される領域を交差領域として検出するようにしてもよい。
（７）本発明の画像生成装置は、
検出された交差領域に基づいて第１のオブジェクトと第２のオブジェクトの交差位置を演算する手段とを含むことを特徴とする。
【００５２】
また検出された交差領域は、第２のオブジェクトと対応付けが可能であるため、第２のオブジェクトとの位置の対応をとることで、交差位置を検出することがきる。
【００５３】
例えば第２のオブジェクトと交差領域の対応付けに必要なマップテーブルやテクスチャを予め用意しておき、検出された交差領域からマップテーブルやテクスチャによって、交差位置を判定するようにしてもよい。
（８）本発明の画像生成装置は、
演算された交差位置又は第１のオブジェクトと第２のオブジェクトの交差の有無に基づき、ヒットチェック判定を行い、判定結果に基づきゲーム演算処理をおこなうゲーム演算手段を含むことを特徴とする。
【００５４】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて説明する。
【００５５】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を何ら限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【００５６】
１．  構成
図１に、本実施形態の画像生成システム（例えばゲームシステム）の機能ブロック図の一例を示す。
【００５７】
なお同図において本実施形態は、少なくとも処理部１００を含めばよく（或いは処理部１００と記憶部１７０、或いは処理部１００と記憶部１７０と情報記憶媒体１８０を含めばよく）、それ以外のブロック（例えば操作部１６０、表示部１９０、音出力部１９２、携帯型情報記憶装置１９４、通信部１９６）については、任意の構成要素とすることができる。
【００５８】
ここで処理部１００は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、又は音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ（ＣＰＵ、ＤＳＰ等）、或いはＡＳＩＣ（ゲートアレイ等）などのハードウェアや、所与のプログラム（ゲームプログラム）により実現できる。
【００５９】
操作部１６０は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、筐体などのハードウェアにより実現できる。
【００６０】
記憶部１７０は、メインメモリ（主記憶部等）１７２やフレームバッファ（描画バッファ等）１７４等を含み、処理部１００や通信部１９６などのワーク領域となるもので、その機能はＲＡＭなどのハードウェアにより実現できる。
【００６１】
情報記憶媒体（コンピュータにより使用可能な記憶媒体）１８０は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク（ＣＤ、ＤＶＤ）、光磁気ディスク（ＭＯ）、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ（ＲＯＭ）などのハードウェアにより実現できる。処理部１００は、この情報記憶媒体１８０に格納される情報に基づいて本発明（本実施形態）の種々の処理を行う。即ち情報記憶媒体１８０には、本発明（本実施形態）の手段（特に処理部１００に含まれるブロック）を実行するための情報（プログラム或いはデータ）が格納される。
【００６２】
なお、情報記憶媒体１８０に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部１７０に転送されることになる。また情報記憶媒体１８０に記憶される情報は、本発明の処理を行うためのプログラム、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも１つを含むものである。
【００６３】
表示部１９０は、本実施形態により生成された画像を出力するものであり、その機能は、ＣＲＴ、ＬＣＤ、或いはＨＭＤ（ヘッドマウントディスプレイ）などのハードウェアにより実現できる。
【００６４】
音出力部１９２は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【００６５】
携帯型情報記憶装置１９４は、プレーヤの個人データやセーブデータなどが記憶されるものであり、この携帯型情報記憶装置１９４としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【００６６】
通信部１９６は、外部（例えばホスト装置や他の画像生成システム）との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ＡＳＩＣなどのハードウェアや、プログラムなどにより実現できる。
【００６７】
なお本発明（本実施形態）の手段を実行するためのプログラム或いはデータは、ホスト装置（サーバ）が有する情報記憶媒体からネットワーク及び通信部１９６を介して情報記憶媒体１８０に配信するようにしてもよい。このようなホスト装置（サーバ）の情報記憶媒体の使用も本発明の範囲内に含まれる。
【００６８】
処理部１００は、ゲーム処理部１１０、交差部分検出処理部（シャドーボリューム処理部）１２０、画像生成部１３０、音生成部１５０を含む。
【００６９】
ここでゲーム処理部１１０は、コイン（代価）の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト（１又は複数のプリミティブ面）の位置や回転角度（Ｘ、Ｙ又はＺ軸回りの回転角度）を求める処理、オブジェクトを動作させる処理（モーション処理）、視点の位置（仮想カメラの位置）や視線角度（仮想カメラの回転角度）を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果（成果、成績）を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバ処理などの種々のゲーム処理を、操作部１６０からの操作データや、携帯型情報記憶装置１９４からの個人データ、保存データや、ゲームプログラムなどに基づいて行う。
【００７０】
ゲーム処理部１１０は、交差検出部１２０，交差領域検出部１２２、移動軌跡ボリューム設定部１２４を含む。
【００７１】
交差検出部１２０は，第１のオブジェクト又は第２のオブジェクトの描画の有無に基づき、第１のオブジェクトと第２のオブジェクトの交差の有無を検出するようにしてもよい。
【００７２】
また検出された第１のオブジェクト又は第２のオブジェクトの描画画素数に基づき、第１のオブジェクトと第２のオブジェクトの交差の有無を検出するようにしてもよい。
【００７３】
また第１のオブジェクト及び第２のオブジェクトの少なくとも一方の描画画素数又は描画の有無に関連して設定された初期値と、検出された第１のオブジェクト又は第２のオブジェクトの描画画素数又は描画の有無を比較して、比較結果に基づき、第１のオブジェクトと第２のオブジェクトの交差の有無を検出するようにしてもよい。
【００７４】
また所与の時刻ｔにおいて検出された第１のオブジェクト又は第２のオブジェクトの描画画素数又は描画の有無と所与の時刻ｔ＋Δｔにおいて検出された第１のオブジェクト又は第２のオブジェクトの描画画素数又は描画の有無にもとづいて、第１のオブジェクト及び第２のオブジェクトの少なくとも一方の描画画素数又は描画の有無の変化を検出し、変化があった場合に第１のオブジェクトと第２のオブジェクトの交差の有と判定する交差検出手段とを含むようにしてもよい。
【００７５】
交差領域検出部１２２は、移動軌跡ボリューム及び第２のオブジェクトの少なくとも一方の描画領域に基づき、移動軌跡ボリュームと第２のオブジェクトの交差領域を検出するようにしてもよい。
【００７６】
例えば表面ポリゴンと裏面ポリゴンの描画された回数の異なる画素で構成される領域を交差領域として検出するようにしてもよい。
【００７７】
移動軌跡ボリューム設定部１２４は、所与の時刻ｔからｔ＋Δｔにおける第１のオブジェクトの移動に基づき移動軌跡ボリュームを生成しオブジェクト空間に配置する移動軌跡ボリューム設定するようにしてもよい。
【００７８】
またゲーム処理部１１０は、検出された交差領域に基づいて第１のオブジェクトと第２のオブジェクトの交差位置を演算する手段として機能する。
【００７９】
またゲーム処理部１１０は、演算された交差位置又は第１のオブジェクトと第２のオブジェクトの交差の有無に基づき、ヒットチェック判定を行い、判定結果に基づきゲーム演算処理をおこなうようにしてもよい。
【００８０】
画像生成部１３０は、ゲーム処理部１１０からの指示等にしたがって各種の画像処理を行い、例えばオブジェクト空間内で仮想カメラ（視点）から見える画像を生成して、表示部１９０に出力する。画像生成部１３０は、レンダリング手段として機能する。
【００８１】
また画像生成部１３０は、オブジェクト空間における第１のオブジェクトと第２のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングするレンダリング手段として機能する。
【００８２】
さらにレンダリング結果にもとづき第１のオブジェクト又は第２のオブジェクトの描画画素数を検出する手段として機能するようにしてもよい。
【００８３】
また移動軌跡ボリュームと第２のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングするようにしてもよい。
【００８４】
さらに  移動軌跡ボリュームを構成するポリゴンうち仮想カメラに表面が向いている表面ポリゴンと、仮想カメラに裏面が向いている裏面ポリゴンを描画するようにしてもよい。
【００８５】
音生成部１５０は、ゲーム処理部１１０からの指示等にしたがって各種の音処理を行い、ＢＧＭ、効果音、又は音声などの音を生成し、音出力部１９２に出力する。
【００８６】
なお、ゲーム処理部１１０、交差検出部１２０、交差領域検出部１２２，移動軌跡ボリューム設定部１２４、画像生成部１３０、音生成部１５０の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【００８７】
画像生成部１３０は、ジオメトリ処理部（３次元演算部）１３２、描画部（レンダリング部）１４０を含む。
【００８８】
ここで、ジオメトリ処理部１３２は、座標変換、クリッピング処理、透視変換、或いは光源計算などの種々のジオメトリ処理（３次元演算）を行う。そして、本実施形態では、ジオメトリ処理後（透視変換後）のオブジェクトデータ（オブジェクトの頂点座標、頂点テクスチャ座標、或いは輝度データ等）は、記憶部１７０の主記憶部１７２に格納されて、保存される。
【００８９】
描画部１４０は、ジオメトリ処理後（透視変換後）のオブジェクトデータと、記憶部１７０に記憶されるテクスチャとに基づいて、オブジェクトを描画バッファ１７４に描画する。これにより、オブジェクトが移動するオブジェクト空間において、仮想カメラ（視点）から見える画像が描画（生成）されるようになる。
【００９０】
なお描画部１４０では、ボリュームオブジェクトによって影響を受けるように設定された所与のオブジェクトとの交差部分（重複部分）については、交差部分検出処理によって変更された内容のモデル情報を用いて、又は交差部分検出処理によって変更された内容のレンダリング手法によって、レンダリング処理が行われる。
【００９１】
なお、本実施形態の画像生成システムは、１人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【００９２】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、１つの端末を用いて生成してもよいし、ネットワーク（伝送ライン、通信回線）などで接続された複数の端末を用いて生成してもよい。
【００９３】
２．  第１の実施の形態
図２（Ａ）（Ｂ）は、第１の実施の形態の特徴について説明するための図である。
【００９４】
例えば、地面３１０（第２のオブジェクト）に向かって弾３２０（第１のオブジェクト）を撃つシーンを考えたときに、地面３１０（第２のオブジェクト）の裏側からの視点３３０に着目する。一度地面３１０（第２のオブジェクト）を描いておき、そのｚバッファを使って、弾３２０（第１のオブジェクト）を描画するとともに、その描画画素数を数えておく。
【００９５】
例えば図２（Ａ）に示すように弾３２０（第１のオブジェクト）が突き抜けていなければ、裏側からのレンダリングはされないので、描画数は０である。これに対し図２（Ｂ）に示すように、弾が描画された場合（すなわち描画画素数が０でないとき）には、弾は突き抜けたので弾を爆発させたり着弾点の演出をさせるためのきっかけに利用できる。
【００９６】
ここでは例えば地面３１０（第２のオブジェクト）の裏側から見た視点３３０でレンダリングする場合を例にとり説明したがこれに限られない。
【００９７】
また地面３１０（第２のオブジェクト）と弾３２０（第１のオブジェクト）の交差判定に必要な部分に関して、描画されたオブジェクトのレンダリング領域との対応がつけられれば良いので、レンダリングのために使う座標変換を射影投影に限る必要も無く、平行投影や非ユークリッド的な座標変換や区分的に分かれたレンダリングを通して接触した部分の判定を行うことも可能である。
【００９８】
最近の画像生成システムでは、レンダリングしたオブジェクトの描画画素数を高速に取得する機能を有するハードウエアが搭載されている。例えばこの機能を用いて弾３２０（第１のオブジェクト）の描画画素数を取得し、取得した弾３２０（第１のオブジェクト）の描画画素数が０か１以上かによって衝突の有無を判定することが出来る。
【００９９】
なお例えば衝突の有無の基準となる描画画素数のしきい値をさだめておいて、検出された弾３２０（第１のオブジェクト）の描画画素数がしきい値以上である場合に衝突があったと判定するようにしてもよい。このようにすると、例えば弾３２０（第１のオブジェクト）が地面３１０（第２のオブジェクト）をかすめた場合等（この場合には弾３２０（第１のオブジェクト）の描画画素数は１以上になるがしきい値よりは小さい）を衝突なしと判定することが出来る。
【０１００】
そしてその結果によって描画されるオブジェクト（例えば弾３２０や地面３１０）に関するゲーム上の振る舞いや状態変化を引き起こすことができる。
【０１０１】
次にオブジェクト空間に存在する第１のオブジェクトと第２のオブジェクトの具体的な交差判定処理について説明する。
【０１０２】
図３（Ａ）（Ｂ）は、第１のオブジェクトと第２のオブジェクトが接触していない状態について説明するための図である。図３（Ａ）は３次元空間における第１のオブジェクト２１０と第２のオブジェクト２２０と仮想カメラ２３０の様子を表しており、図３（Ｂ）は所与の位置に配置された仮想カメラ２３０から見た画像のレンダリング結果２４０を表した図である。
【０１０３】
ここで第１のオブジェクト２２０は移動オブジェクトであり、第２のオブジェクト２２０は地形オブジェクトである。
【０１０４】
図３（Ａ）に示すように仮想カメラ２３０は、地面の下から地形オブジェクト（第２のオブジェクト２２０）をとらえるように配置されている。このため、移動オブジェクト（第１のオブジェクト２１０）が仮想カメラ２３０から見て地形オブジェクト（第２のオブジェクト２２０）より奥に有る場合には、移動オブジェクト（第１のオブジェクト２１０）は仮想カメラ２３０から見えないため、描画されない。従って移動オブジェクト（第１のオブジェクト２１０）と地形オブジェクト（第２のオブジェクト２２０）を所与の位置に配置された仮想カメラ２３０からみた画像をレンダリングした場合、図３（Ｂ）に示すように移動オブジェクト（第１のオブジェクト２１０）は、描画されない。すなわち移動オブジェクト（第１のオブジェクト２１０）の描画画素数は０である。
【０１０５】
図４（Ａ）（Ｂ）は、第１のオブジェクトが第２のオブジェクトを貫通した後の状態について説明するための図である。図４（Ａ）は３次元空間における第１のオブジェクト２１０と第２のオブジェクト２２０と仮想カメラ２３０の様子を表しており、図４（Ｂ）は所与の位置に配置された仮想カメラ２３０から見た画像のレンダリング結果を表した図である。
【０１０６】
図４（Ａ）に示すように仮想カメラ２３０は、地面の下から地形オブジェクト（第２のオブジェクト２２０）をとらえるように配置されている。このため、移動オブジェクト（第１のオブジェクト２１０）が仮想カメラ２３０から見て地形オブジェクト（第２のオブジェクト２２０）の手前に有る場合には、移動オブジェクト（第１のオブジェクト２１０’）は仮想カメラ２３０から見えるため、描画される。従って移動オブジェクト（第１のオブジェクト２１０’）と地形オブジェクト（第２のオブジェクト２２０）を所与の位置に配置された仮想カメラ２３０からみた画像をレンダリングした場合、図４（Ｂ）の２４２に示すように移動オブジェクト（第１のオブジェクト２１０）描画される。すなわち移動オブジェクト（第１のオブジェクト２１０）の描画画素数は０でない（又は１以上である）。
【０１０７】
従って移動オブジェクト（第１のオブジェクト２１０）の描画画素数を取得することにより移動オブジェクト（第１のオブジェクト２１０）と地形オブジェクト（第２のオブジェクト２２０）の交差判定をすることが出来る。
【０１０８】
第１の実施の形態では、オブジェクト空間における第１のオブジェクト２１０と第２のオブジェクト２２０を所与の位置に配置された仮想カメラ２３０から見た画像をレンダリングし、第１のオブジェクト２１０又は第２のオブジェクト２２０の描画の有無に基づき、第１のオブジェクト２１０と第２のオブジェクト２２０の交差の有無を検出する。
【０１０９】
図３（Ａ）（Ｂ）、図４（Ａ）（Ｂ）で説明したように各フレームにおける移動オブジェクト描画の有無に基づき第１のオブジェクト２１０（移動オブジェクト）と第２のオブジェクト２２０（地形オブジェクト）の交差の有無を検出する。
【０１１０】
例えば所与の時刻ｔでは描画されなかった移動オブジェクト（第１のオブジェクト２１０）が時刻ｔ＋Δｔでは描画された場合には、移動オブジェクト（第１のオブジェクト２１０）と地形オブジェクト（第２のオブジェクト２２０）の交差したと判定をするようにしてもよい。
【０１１１】
また例えば仮想カメラが地面の上にあった場合には所与の時刻ｔでは描画された移動オブジェクト（第１のオブジェクト２１０）が、時刻ｔ＋Δｔでは描画されなかった場合には、移動オブジェクト（第１のオブジェクト２１０）と地形オブジェクト（第２のオブジェクト２２０）の交差したと判定をするようにしてもよい。
【０１１２】
また第１の実施の形態では、オブジェクト空間における第１のオブジェクト２１０と第２のオブジェクト２２０を所与の位置に配置された仮想カメラ２３０から見た画像をレンダリングし、描画されたオブジェクト（たとえば第２のオブジェクト２２０）の画素数を検出し、検出された描画オブジェクトの画素数に基づき、第１のオブジェクト２１０と第２のオブジェクト２２０の交差の有無を検出する。
【０１１３】
図３（Ａ）（Ｂ）、図４（Ａ）（Ｂ）で説明したように各フレームにおける移動オブジェクト（第１のオブジェクト２１０）の描画画素数を取得し、描画画素数の変化に基づき交差判定をすることが出来る。
【０１１４】
例えば所与の時刻ｔでは０であった移動オブジェクト（第１のオブジェクト２１０）の描画画素数が時刻ｔ＋Δｔでは１以上になった場合には、移動オブジェクト（第１のオブジェクト２１０）と地形オブジェクト（第２のオブジェクト２２０）の交差したと判定をするようにしてもよい。
【０１１５】
また例えば仮想カメラが地面の上にあった場合には所与の時刻ｔでは１以上であった移動オブジェクト（第１のオブジェクト２１０）の描画画素数が時刻ｔ＋Δｔでは０になった場合には、移動オブジェクト（第１のオブジェクト２１０）と地形オブジェクト（第２のオブジェクト２２０）の交差したと判定をするようにしてもよい。
【０１１６】
このように所与の時刻ｔにおいて検出された描画オブジェクトの画素数と所与の時刻ｔ＋Δｔにおいて検出された描画オブジェクトの画素数にもとづいて、第１のオブジェクト及び第２のオブジェクトの少なくとも一方の描画の有無又は描画画素数の変化を検出し、検出結果に基づき第１のオブジェクトと第２のオブジェクトの交差の有無を検出することが出来る。
【０１１７】
また交差判定処理においては、第１のオブジェクト及び第２のオブジェクトの少なくとも一方の描画画素数に関連して設定された初期値と、検出された描画オブジェクトの画素数を比較して、比較結果に基づき、第１のオブジェクトと第２のオブジェクトの交差の有無を検出するようにしてもよい。
【０１１８】
例えば図３（Ａ）（Ｂ）、図４（Ａ）（Ｂ）のように仮想カメラ２３０が地面の下から地形オブジェクト（第２のオブジェクト２２０）をとらえるように配置されている場合には、移動オブジェクト（第１のオブジェクト２１０）の描画画素数に関連して設定された初期値を０としておき、移動オブジェクト（第１のオブジェクト２１０）の描画画素数が０でない場合に、交差があったと判断するようにしてもよい。
【０１１９】
図５は第１の実施の形態の処理の一例について説明するためのフローチャート図である。
【０１２０】
ここでは第１のオブジェクトの描画の有無（又は描画画素数でもよい）に関連して、描画無し（又は描画画素数が０）を初期値として、第１のオブジェクトの描画の有無（又は画素数）を検出して、初期値と検出結果を比較して、比較結果に基づき、第１のオブジェクトと第２のオブジェクトの交差の有無を検出する場合の処理の流れについて説明する。
【０１２１】
第１の実施の形態では以下の処理を各フレーム毎に行う。なお常に行う必要はなく交差判定が必要な場合のみ行うようにしてもよい。
【０１２２】
第１のオブジェクト（例えば移動オブジェクト）と第２のオブジェクト（例えば地形オブジェクト）の座標及び速度の初期値を設定する（ステップＳ１０）。速度は移動するオブジェクトについて設定すればよいため、第１のオブジェクト（例えば移動オブジェクト）について速度を設定する。
【０１２３】
次に設定された速度に基づきオブジェクトを移動させる（ステップＳ１２）。
【０１２４】
次に第２のオブジェクト（例えば地形オブジェクト）の背面等に仮想カメラを設置する（ステップＳ２０）。
【０１２５】
次に第２のオブジェクトの深度値等の「距離」を深度バッファ（例えばＺバッファ）へレンダリングする（ステップＳ３０）
次にフレームバッファを黒などの適当な色で塗りつぶす（ステップＳ４０）
次に第１のオブジェクト（例えば移動オブジェクト）を、白などのフレームバッファを塗りつぶした色と別の色で描画する（ステップＳ５０）。
【０１２６】
次にフレームバッファに第１のオブジェクト（例えば移動オブジェクト）の色が塗られているか調べる（ステップＳ６０）
そして第１のオブジェクト（例えば移動オブジェクト）の色が見つかった場合には、第１のオブジェクト（例えば移動オブジェクト）が第２のオブジェクト（例えば地形オブジェクト）の手前にあるときの処理（ステップＳ７０，Ｓ８０）を行う。第１のオブジェクト（例えば移動オブジェクト）が第２のオブジェクト（例えば地形オブジェクト）の手前にあるときの処理とは、例えば第１のオブジェクト（例えば移動オブジェクト）が第２のオブジェクト（例えば地形オブジェクト）に衝突した場合の処理であり、例えば衝突によるゲーム演算（パラメータや得点のへ更新や分岐の選択）や衝突画像の生成等の処理である。
【０１２７】
また第１のオブジェクト（例えば移動オブジェクト）の色が見つからなかった場合には、第１のオブジェクト（例えば移動オブジェクト）が第２のオブジェクト（例えば地形オブジェクト）の奥にあるときの処理（ステップＳ９０）を行う。第１のオブジェクト（例えば移動オブジェクト）が第２のオブジェクト（例えば地形オブジェクト）の手前にあるときの処理とは、例えば第１のオブジェクト（例えば移動オブジェクト）が第２のオブジェクト（例えば地形オブジェクト）にいまだ衝突していない状態の処理である。
【０１２８】
そして交差判定処理を継続する場合にはステップＳ１２に戻って処理を繰り返す（ステップＳ１００）。
【０１２９】
なおステップＳ１０からＳ１００までの処理は、ソフトウエアにより実現してもよいし、ハードウエアにより実現してもよいし、ソフトウエアとハードウエアの両方で実現してもよい。
【０１３０】
例えばレンダリング機能を有するハードウエアに対して、ソフトウエアから処理内容を特定するためのパラメータを設定して実現するようにしてもよい。
【０１３１】
図６は第１の実施の形態の処理の他の一例について説明するためのフローチャート図である。
【０１３２】
ここでは所与の時刻ｔにおける第１のオブジェクトの描画の有無（又は描画画素数でもよい）と時刻ｔ＋Δｔにおける第１のオブジェクトの描画の有無（又は描画画素数でもよい）の変化を検出し、検出結果に基づき第１のオブジェクトと第２のオブジェクトの交差の有無を検出する場合の処理の流れについて説明する。
【０１３３】
第１の実施の形態では以下の処理を各フレーム毎に行う。なお常に行う必要はなく交差判定が必要な場合のみ行うようにしてもよい。
【０１３４】
第１のオブジェクト（例えば移動オブジェクト）と第２のオブジェクト（例えば地形オブジェクト）の座標、速度及び今回描画情報の初期値を設定する（ステップＳ１１０）。速度は移動するオブジェクトについて設定すればよいため、第１のオブジェクト（例えば移動オブジェクト）について速度を設定する。今回描画情報とは、今回のフレームで第１のオブジェクトが描画されたか否かに関する情報である。ここで１回目の比較演算では今回描画情報と前回描画情報が異なるようにするため、今回描画情報の初期値は、描画有の場合の今回描画情報と描画無しの場合の今回描画情報のいずれとも違う値にしておく。
【０１３５】
次に今回描画情報を前回描画情報に設定する（ステップＳ１２０）。前回描画情報とは、前回のフレームで第１のオブジェクトが描画されたか否かに関する情報である。
【０１３６】
次に設定された速度に基づきオブジェクトを移動させる（ステップＳ１３０）。
【０１３７】
次に第２のオブジェクト（例えば地形オブジェクト）の背面等に仮想カメラを設置する（ステップＳ１４０）。
【０１３８】
次に第２のオブジェクトの深度値等の「距離」を深度バッファ（例えばＺバッファ）へレンダリングする（ステップＳ１５０）
次にフレームバッファを黒などの適当な色で塗りつぶす（ステップＳ１６０）
次に第１のオブジェクト（例えば移動オブジェクト）を、白などのフレームバッファを塗りつぶした色と別の色で描画する（ステップＳ１７０）。
【０１３９】
次にフレームバッファに第１のオブジェクト（例えば移動オブジェクト）の色が塗られているか調べる（ステップＳ１８０）
そして第１のオブジェクト（例えば移動オブジェクト）の色が見つかった場合には、第１のオブジェクト（例えば移動オブジェクト）がレンダリングされたという情報を今回描画情報にセットする（ステップＳ１９０，Ｓ２００）。
【０１４０】
また第１のオブジェクト（例えば移動オブジェクト）の色が見つからなかった場合には、第１のオブジェクト（例えば移動オブジェクト）がレンダリングされなかった情報を今回描画情報にセットする（ステップＳ１９０，Ｓ２１０）。
【０１４１】
そして今回描画情報と前回描画情報を比較し、異なっている場合には第１のオブジェクト（例えば移動オブジェクト）と第２のオブジェクト（例えば地形オブジェクト）が交差したときの処理を行う（ステップＳ２２０，Ｓ２３０）。
【０１４２】
また今回描画情報と前回描画情報が同じ場合には第１のオブジェクト（例えば移動オブジェクト）と第２のオブジェクト（例えば地形オブジェクト）が交差しなかったときの処理を行う（ステップＳ２２０，Ｓ２４０）。
【０１４３】
そして交差判定処理を継続する場合にはステップＳ１２０に戻って処理を繰り返す（ステップＳ２５０）。
【０１４４】
なおステップＳ１１０からＳ２５０までの処理は、ソフトウエアにより実現してもよいし、ハードウエアにより実現してもよいし、ソフトウエアとハードウエアの両方で実現してもよい。
【０１４５】
例えばレンダリング機能を有するハードウエアに対して、ソフトウエアから処理内容を特定するためのパラメータを設定して実現するようにしてもよい。
【０１４６】
３．  第２の実施の形態
図７は、第２の実施の形態の特徴について説明するための図である。
【０１４７】
第２の実施の形態は、時刻ｔにおける第１のオブジェクト（移動オブジェクト）３１０と時刻ｔ＋Δｔにおける第１のオブジェクト（移動オブジェクト）３１０’に基づき移動軌跡ボリューム３３０を生成し、移動軌跡ボリューム３３０と、第２のオブジェクト（地形オブジェクト）３２０の交差領域３４０を検出する。
【０１４８】
移動軌跡ボリューム３３０はオブジェクト空間における時刻ｔにおける第１のオブジェクト（移動オブジェクト）３１０と時刻ｔ＋Δｔにおける第１のオブジェクト（移動オブジェクト）３１０’の各対応頂点を移動軌跡又は直線で結び最も外側の稜線を輪郭とするオブジェクトとして設定することができる。
【０１４９】
例えば時刻ｔ（移動前）における第１のオブジェクト（移動オブジェクト）３１０の各頂点Ｖ１からＶ８が、時刻ｔ＋Δｔ（移動後）にＶ１’からＶ８’になったとすると、Ｖ１からＶ８とそれぞれ対応する移動後の頂点Ｖ１’からＶ８’をむすんで移動軌跡ボリュームを構成することが出来る。
【０１５０】
もし時刻ｔからｔ＋Δｔにおいて第１のオブジェクト（移動オブジェクト）３１０と第２のオブジェクト（地形オブジェクト）３２０が交差している場合には、移動軌跡ボリューム３３０と第２のオブジェクトは交差する。従って移動軌跡ボリューム３３０と、第２のオブジェクト（地形オブジェクト）３２０の交差領域３４０が検出されたら、第１のオブジェクト（移動オブジェクト）３１０と第２のオブジェクト（地形オブジェクト）が交差したと判定することが出来る。
【０１５１】
またフレームバッファ３５０に描画された交差領域３４０と、第２のオブジェクト（地形オブジェクト）の位置の対応をとることで、交差位置を検出することが出来る。
【０１５２】
このように第２の実施の形態によれば、交差判定のみならず交差位置の検出も行うことが出来る。
【０１５３】
次にオブジェクト空間に存在する第１のオブジェクトと第２のオブジェクトの具体的な交差領域検出処理について説明する。
【０１５４】
図８（Ａ）〜（Ｃ）は、移動軌跡ボリュームの設定処理について説明するための図である。
【０１５５】
図８（Ａ）は、移動前（時刻ｔ）おける第１のオブジェクト３１０と第２のオブジェクト３２０がオブジェクト空間に配置されている様子を表しており、図８（Ｂ）は、移動後（時刻ｔ＋Δｔ）おける第１のオブジェクト３１０’と第２のオブジェクト３２０がオブジェクト空間に配置されている様子を表している。
【０１５６】
そして図８（Ｃ）は、移動前（時刻ｔ）おける第１のオブジェクト３１０と移動後（時刻ｔ＋Δｔ）おける第１のオブジェクト３１０’に基づき生成される移動軌跡ボリューム３３０を表している。
【０１５７】
移動軌跡ボリュームは第１のオブジェクトが移動前後及び移動中に占有した空間（３次元的な移動軌跡をすべて包含するボリューム（立体））である。例えば図７で説明したように第１のオブジェクトの移動前後における頂点を移動軌跡または直線で結んで生成することが出来る。
【０１５８】
図９（Ａ）〜（Ｃ）は、交差領域検出処理について説明するための図である。
【０１５９】
図９（Ａ）は、移動軌跡ボリュームを構成するポリゴンうち仮想カメラに表面が向いている表面ポリゴンによって構成される表面オブジェクト３３２と第２のオブジェクト（地形オブジェクト）３２０が、フレームバッファ３５０に描画されている様子を表した図である。
【０１６０】
図９（Ｂ）は、移動軌跡ボリュームを構成するポリゴンうち仮想カメラに裏面が向いている裏面ポリゴンによって構成される裏面オブジェクト３３２と第２のオブジェクト（地形オブジェクト）３２０が、フレームバッファ３５０に描画されている様子を表した図である。
【０１６１】
図９（Ｃ）の３４０は表面ポリゴンと裏面ポリゴンの描画された回数の異なる画素で構成される領域を表しており、これが移動軌跡ボリュームと第２のオブジェクトの交差領域となる。
【０１６２】
なお図９（Ａ）〜（Ｃ）では、仮想カメラを第１のオブジェクトと移動軌跡ボリュームを斜め横から見る位置に置いているが、本来は図３（Ａ）（Ｂ）、図４（Ａ）（Ｂ）と同様に、第２のオブジェクト（地形オブジェクト）を下からみる位置に設置するのが好ましい。
【０１６３】
また表面オブジェクトをレンダリングする際には、裏面をレンダリングしてもよい。
【０１６４】
第２の実施の形態では、図８（Ａ）〜（Ｃ）に示したように所与の時刻ｔからｔ＋Δｔにおける第１のオブジェクトの移動に基づき移動軌跡ボリューム（移動軌跡でもよいし、移動軌跡を近似した形状、例えば直線移動に近似）を生成しオブジェクト空間に配置し、移動軌跡ボリュームと第２のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングし、移動軌跡ボリュームと第２のオブジェクトの描画結果に基づき、移動軌跡ボリュームと第２のオブジェクトの交差領域を検出する。
【０１６５】
ここで図８（Ａ）〜（Ｃ）に示したように、移動軌跡ボリュームを構成するポリゴンうち仮想カメラに表面が向いている表面ポリゴンによって構成される表面オブジェクト３３２と、仮想カメラに裏面が向いている裏面ポリゴンによって構成される裏面オブジェクト３３４とを描画し、表面オブジェクト３３２と裏面オブジェクト３３４の描画された回数の異なる画素で構成される領域を交差領域３４０として検出するようにしてもよい。
【０１６６】
図１０は第２の実施の形態の処理の一例について説明するためのフローチャート図である。
【０１６７】
ここでは第１のオブジェクト（移動オブジェクト）の移動軌跡に基づき移動軌跡ボリュームを生成し、移動軌跡ボリュームと第２のオブジェクト（地形オブジェクト）の交差領域を検出する場合の処理の流れについて説明する。
【０１６８】
第２の実施の形態では以下の処理を各フレーム毎に行う。なお常に行う必要はなく交差領域の検出が必要な場合のみ行うようにしてもよい。
【０１６９】
第１のオブジェクト（例えば移動オブジェクト）と第２のオブジェクト（例えば地形オブジェクト）の座標及び速度の初期値を設定する（ステップＳ３１０）。速度は移動するオブジェクトについて設定すればよいため、第１のオブジェクト（例えば移動オブジェクト）について速度を設定する。
【０１７０】
次に設定された速度に基づきオブジェクトを移動させ、座標値を更新する（ステップＳ３２０）。
【０１７１】
第１のオブジェクト（例えば移動オブジェクト）に関して、前回の位置及び今回の位置座標から移動軌跡ボリュームを作成する（ステップＳ３３０）
次に第２のオブジェクト（例えば地形オブジェクト）の背面等に仮想カメラを設置する（ステップＳ３４０）。
【０１７２】
次に第２のオブジェクトの深度値等の「距離」を深度バッファ（例えばＺバッファ）へレンダリングする（ステップＳ３５０）。
【０１７３】
次にフレームバッファを黒などの適当な色で塗りつぶす（ステップＳ３６０）。
【０１７４】
次に第１のオブジェクト（例えば移動オブジェクト）の移動軌跡ボリュームを仮想カメラから見て表面のポリゴンに関してのみ、白色等のフレームバッファを塗りつぶした色と別の色で描画する（ステップＳ３７０）
次に第１のオブジェクト（例えば移動オブジェクト）の移動軌跡ボリュームを仮想カメラから見て裏面のポリゴンに関してのみ、フレームバッファを塗りつぶした色と同じ色で描画する（ステップＳ３８０）
次にフレームバッファに第１のオブジェクト（例えば移動オブジェクト）の色が塗られているか調べる（ステップＳ３９０）
そして第１のオブジェクト（例えば移動オブジェクト）の色が見つかった場合には、第１のオブジェクト（例えば移動オブジェクト）が第２のオブジェクト（例えば地形オブジェクト）と交差した時の処理を行う（ステップＳ４００，Ｓ４１０）。
【０１７５】
また第１のオブジェクト（例えば移動オブジェクト）の色が見つからなかった場合には、第１のオブジェクト（例えば移動オブジェクト）が第２のオブジェクト（例えば地形オブジェクト）と交差しなかった時の処理を行う（ステップＳ４００，Ｓ４２０）。
【０１７６】
そして交差領域の検出処理を継続する場合にはステップＳ３２０に戻って処理を繰り返す（ステップＳ４３０）。
【０１７７】
なおステップＳ３１０からＳ４３０までの処理は、ソフトウエアにより実現してもよいし、ハードウエアにより実現してもよいし、ソフトウエアとハードウエアの両方で実現してもよい。
【０１７８】
例えばレンダリング機能を有するハードウエアに対して、ソフトウエアから処理内容を特定するためのパラメータを設定して実現するようにしてもよい。
オブジェクトが交差したときの処理の一例（オブジェクトＢをオブジェクトＡで反射させる）。
【０１７９】
図１１は、第１のオブジェクトと第２のオブジェクトが交差したときの処理の一例について説明するための図である。
【０１８０】
まず第２のオブジェクト（例えば地形オブジェクト）の位置マップを作成する処理を行う（ステップＳ５１０）。第２のオブジェクト（例えば地形オブジェクト）の位置マップは第２のオブジェクトのフレームバッファ上の各画素について、対応するワールド座標系の座標値を下記の式で色値に変換して作成する。
【０１８１】
赤＝ｋｘ＊ワールド座標のｘ成分＋ｂｘ
緑＝ｋｙ＊ワールド座標のｙ成分＋ｂｙ
青＝ｋｚ＊ワールド座標のｚ成分＋ｂｚ
ここでｋｘ、ｋｙ、ｋｚ及びｂｘ、ｂｙ、ｂｚは、ワールド座標が色の範囲に収まるよう調整する計数である。そして求めた色値をテクスチャ（位置マップ）にレンダリングする。レンダリングするスクリーン座標は例えば、オブジェクトに模様をつけるためのデカールテクスチャの座標値をｘ＝Ｕ座標、ｙ＝Ｖ座標として計算するようにしてもよい（ステップＳ５１０）。
【０１８２】
次に第２のオブジェクト（例えば地形オブジェクト）の法線マップを作成する処理を行う（ステップＳ５２０）。第２のオブジェクト（例えば地形オブジェクト）の法線マップは、第２のオブジェクトのフレームバッファ上の各画素について、対応する法線ベクトルのｘｙｚ成分を下記の式で色値に変換して作成する。
【０１８３】
赤＝法線ベクトルのｘ成分／２＋０．５
緑＝法線ベクトルのｙ成分／２＋０．５
青＝法線ベクトルのｚ成分／２＋０．５
そして求めた色値を、テクスチャ（法線マップ）にレンダリングする。レンダリングする再のスクリーン座標は位置マップと同じ値を使用する。
【０１８４】
次に第２のオブジェクト（例えば地形オブジェクト）の背面等に仮想カメラを設置する（ステップＳ５３０）
次にテクスチャ座標マップを作成する処理を行う（ステップＳ５４０）。法線マップを作成する時のテクスチャ座標を、赤＝Ｕ座標、緑＝Ｖ座標として、テクスチャ座標を色に変換し別のテクスチャ（テクスチャ座標マップ）に第２のオブジェクトをレンダリングする。
【０１８５】
次に衝突判定の結果として得られるテクスチャについて、衝突をした部分（交差判定領域に対応した部分）のピクセル数を数える（ステップＳ５５０）。
【０１８６】
次にテクスチャ座標マップに関して、衝突判定から得られる部分（交差判定領域に対応した部分）について、テクスチャのピクセルの色を加算し、最後に衝突をしたピクセル数で割り、衝突した部分に関してテクスチャ座標の平均を求める（ステップＳ５６０）
次に得られたテクスチャ座標をＵ座標＝赤、Ｖ座標＝緑で数値に戻す。（ステップＳ５７０）。
【０１８７】
次に求められたテクスチャ座標から位置マップの値をサンプリングする（ステップＳ５８０）。
【０１８８】
次にサンプリングされた位置マップの色を下記の式でベクトル値に戻す（ステップＳ５９０）。
【０１８９】
ベクトルのｘ成分＝（赤−ｂｘ）／ｋｘ
ベクトルのｙ成分＝（緑−ｂｙ）／ｋｙ
ベクトルのｚ成分＝（青−ｂｚ）／ｋｚ
次に第１のオブジェクト（例えば移動オブジェクト）の位置を位置マップから求められた座標値（又はそこから計算で求められる位置）に移動する（ステップＳ６００）。
【０１９０】
次に求められたテクスチャ座標から法線マップの値をサンプリングする（ステップＳ６１０）。
【０１９１】
次にサンプリングされた法線マップの色を下記の式でベクトル値に戻す（ステップＳ６２０）。
【０１９２】
法線ベクトルのｘ成分＝２＊赤−１
法線ベクトルのｙ成分＝２＊緑−１
法線ベクトルのｚ成分＝２＊青−１
次に得られた法線ベクトルとオブジェクトＢの速度ベクトルから以下の公式に従って反射ベクトルｒを求める（ステップＳ６３０）。
【０１９３】
ｒ＝２＊（法線ベクトル、速度ベクトル）＊法線ベクトル−速度ベクトル
次に第１のオブジェクト（例えば移動オブジェクト）の速度ベクトルを反射ベクトルに置き換える（ステップＳ６４０）。
【０１９４】
このように、衝突位置に応じて法線情報を取得できるように構成することで、オブジェクトの振る舞いを地面からの応答を使って調整することができる。
【０１９５】
また衝突位置に応じて地面の高さ情報を取得できるように構成することで、オブジェクトの振る舞いを地面からの応答を使って調整するようにしてもよい。
【０１９６】
４．  ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図１２を用いて説明する。
【０１９７】
メインプロセッサ９００は、ＣＤ９８２（情報記憶媒体）に格納されたプログラム、通信インターフェース９９０を介して転送されたプログラム、或いはＲＯＭ９５０（情報記憶媒体の１つ）に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【０１９８】
コプロセッサ９０２は、メインプロセッサ９００の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、オブジェクトを移動させたり動作（モーション）させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ９００上で動作するプログラムが、その処理をコプロセッサ９０２に指示（依頼）する。
【０１９９】
ジオメトリプロセッサ９０４は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算（ベクトル演算）を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ９００で動作するプログラムが、その処理をジオメトリプロセッサ９０４に指示する。
【０２００】
データ伸張プロセッサ９０６は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ９００のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、ＭＰＥＧ方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ＲＯＭ９５０、ＣＤ９８２に格納されたり、或いは通信インターフェース９９０を介して外部から転送される。
【０２０１】
描画プロセッサ９１０は、ポリゴンや曲面などのプリミティブ（プリミティブ面）で構成されるオブジェクトの描画（レンダリング）処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ９００は、ＤＭＡコントローラ９７０の機能を利用して、オブジェクトデータを描画プロセッサ９１０に渡すとともに、必要であればテクスチャ記憶部９２４にテクスチャを転送する。すると、描画プロセッサ９１０は、これらのオブジェクトデータやテクスチャに基づいて、Ｚバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ９２２に高速に描画する。また、描画プロセッサ９１０は、αブレンディング（半透明処理）、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、１フレーム分の画像がフレームバッファ９２２に書き込まれると、その画像はディスプレイ９１２に表示される。
【０２０２】
サウンドプロセッサ９３０は、多チャンネルのＡＤＰＣＭ音源などを内蔵し、ＢＧＭ、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ９３２から出力される。
【０２０３】
ゲームコントローラ９４２（レバー、ボタン、筺体、パッド型コントローラ又はガン型コントローラ等）からの操作データや、メモリカード９４４からのセーブデータ、個人データは、シリアルインターフェース９４０を介してデータ転送される。
【０２０４】
ＲＯＭ９５０にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ＲＯＭ９５０が情報記憶媒体として機能し、ＲＯＭ９５０に各種プログラムが格納されることになる。なお、ＲＯＭ９５０の代わりにハードディスクを利用するようにしてもよい。
【０２０５】
ＲＡＭ９６０は、各種プロセッサの作業領域として用いられる。
【０２０６】
ＤＭＡコントローラ９７０は、プロセッサ、メモリ（ＲＡＭ、ＶＲＡＭ、ＲＯＭ等）間でのＤＭＡ転送を制御するものである。
【０２０７】
ＣＤドライブ９８０は、プログラム、画像データ、或いは音データなどが格納されるＣＤ９８２（情報記憶媒体）を駆動し、これらのプログラム、データへのアクセスを可能にする。
【０２０８】
通信インターフェース９９０は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース９９０に接続されるネットワークとしては、通信回線（アナログ電話回線、ＩＳＤＮ）、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【０２０９】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実現（実行）してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【０２１０】
そして、本発明の各手段をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実現するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ９０２、９０４、９０６、９１０、９３０等に処理を指示するとともに、必要であればデータを渡す。そして、各プロセッサ９０２、９０４、９０６、９１０、９３０等は、その指示と渡されたデータとに基づいて、本発明の各手段を実現することになる。
【０２１１】
図１３（Ａ）に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ１１００上に映し出されたゲーム画像を見ながら、レバー１１０２、ボタン１１０４等を操作してゲームを楽しむ。内蔵されるシステムボード（サーキットボード）１１０６には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報（プログラム或いはデータ）は、システムボード１１０６上の情報記憶媒体であるメモリ１１０８に格納される。以下、この情報を格納情報と呼ぶ。
【０２１２】
図１３（Ｂ）に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ１２００に映し出されたゲーム画像を見ながら、ゲームコントローラ１２０２、１２０４を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるＣＤ１２０６、或いはメモリカード１２０８、１２０９等に格納されている。
【０２１３】
図１３（Ｃ）に、ホスト装置１３００と、このホスト装置１３００とネットワーク１３０２（ＬＡＮのような小規模ネットワークや、インターネットのような広域ネットワーク）を介して接続される端末１３０４−１〜１３０４−ｎとを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置１３００が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体１３０６に格納されている。端末１３０４−１〜１３０４−ｎが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置１３００からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末１３０４−１〜１３０４−ｎに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置１３００がゲーム画像、ゲーム音を生成し、これを端末１３０４−１〜１３０４−ｎに伝送し端末において出力することになる。
【０２１４】
なお、図１３（Ｃ）の構成の場合に、本発明の各手段を、ホスト装置（サーバ）と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置（サーバ）の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【０２１５】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であるとともに家庭用ゲームシステムとの間でも情報のやり取りが可能な携帯型情報記憶装置（メモリカード、携帯型ゲーム装置）を用いることが望ましい。
【０２１６】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【０２１７】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の１の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【０２１８】
たとえは、本実施の形態では第１のオブジェクトが移動オブジェクト、第２のオブジェクトが地形オブジェクトで有る場合を例にとり説明したがこれに限られない。第１のオブジェクトと第２のオブジェクトの両方が移動するオブジェクトである場合でもよい。
【０２１９】
また本実施の形態では、仮想カメラが地形オブジェクト（第２のオブジェクト）の下方から地形オブジェクトや移動オブジェクトをとらえる場合を例にとり説説明したが、仮想カメラの位置はこれに限られない。たとえばいずれかのオブジェクトの内部に存在する場合でもよい。ここで移動オブジェクトの内部に仮想カメラを配置し、仮想カメラの視線方向を移動方向に向けるようにしてもよい。
【０２２０】
また本実施の形態では交差判定をヒットチェックに用いる場合や、交差領域を検出して、衝突位置や衝突後の移動オブジェクトの反射ベクトルを演算する場合を例にとり説明したがこれに限られない。
【０２２１】
例えば交差領域の「面積」に応じて処理内容を決定したり、処理内容を変化させるようにしてもよい。
【０２２２】
例えば壁をつき抜けている途中は一部分しかレンダリングされないので、画面上の画素数は減少する。この減少の具合に応じて弾が壊れる途中の演出を段階的に切り替える画像を生成するようにしてもよい。
【０２２３】
また、本発明は種々のゲーム（格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等）に適用できる。
【０２２４】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム（ゲームシステム）に適用できる。
【図面の簡単な説明】
【図１】本実施形態の画像生成システム（例えばゲームシステム）の機能ブロック図の一例である。
【図２】図２（Ａ）（Ｂ）は、第１の実施の形態の特徴について説明するための図である。
【図３】図３（Ａ）（Ｂ）は、第１のオブジェクトと第２のオブジェクトが接触していない状態について説明するための図である。
【図４】図４（Ａ）（Ｂ）は、第１のオブジェクトが第２のオブジェクトを貫通した後の状態について説明するための図である。
【図５】第１の実施の形態の処理の一例について説明するためのフローチャート図である。
【図６】第１の実施の形態の処理の他の一例について説明するためのフローチャート図である。
【図７】第２の実施の形態の特徴について説明するための図である。
【図８】図８（Ａ）〜（Ｃ）は、移動軌跡ボリュームの設定処理について説明するための図である。
【図９】図９（Ａ）〜（Ｃ）は、交差領域検出処理について説明するための図である。
【図１０】第２の実施の形態の処理の一例について説明するためのフローチャート図である。
【図１１】第１のオブジェクトと第２のオブジェクトが交差したときの処理の一例について説明するための図である。
【図１２】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図１３】図１３（Ａ）、（Ｂ）、（Ｃ）は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
１００  処理部
１１０  ゲーム処理部
１２０  交差検出部
１２２  交差領域検出部
１２４  移動軌跡ボリューム設定部
１３０  画像生成部
１３２  ジオメトリ処理部
１４０  描画部
１５０  音生成部
１６０  操作部
１７０  記憶部
１７２  メインメモリ（主記憶部）
１７４  フレームバッファ（描画バッファ）
１８０  情報記憶媒体
１９０  表示部
１９２  音出力部
１９４  携帯型情報記憶装置
１９６  通信部
【図１】
2004303034.tif 000003
【図２】
2004303034.tif 000004
【図３】
2004303034.tif 000005
【図４】
2004303034.tif 000006
【図５】
2004303034.tif 000007
【図６】
2004303034.tif 000008
【図７】
2004303034.tif 000009
【図８】
2004303034.tif 000010
【図９】
2004303034.tif 000011
【図１０】
2004303034.tif 000012
【図１１】
2004303034.tif 000013
【図１２】
2004303034.tif 000014
【図１３】
2004303034.tif 000015