JP4266121B2 - Image generation system, program, and information storage medium - Google Patents

Image generation system, program, and information storage medium Download PDF

Info

Publication number
JP4266121B2
JP4266121B2 JP2003096809A JP2003096809A JP4266121B2 JP 4266121 B2 JP4266121 B2 JP 4266121B2 JP 2003096809 A JP2003096809 A JP 2003096809A JP 2003096809 A JP2003096809 A JP 2003096809A JP 4266121 B2 JP4266121 B2 JP 4266121B2
Authority
JP
Japan
Prior art keywords
movement trajectory
intersection
virtual camera
rendering
trajectory volume
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003096809A
Other languages
Japanese (ja)
Other versions
JP2004303034A (en
Inventor
隆 今給黎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Namco Ltd
Bandai Namco Entertainment Inc
Original Assignee
Namco Ltd
Namco Bandai Games Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Namco Ltd, Namco Bandai Games Inc filed Critical Namco Ltd
Priority to JP2003096809A priority Critical patent/JP4266121B2/en
Publication of JP2004303034A publication Critical patent/JP2004303034A/en
Application granted granted Critical
Publication of JP4266121B2 publication Critical patent/JP4266121B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は、画像生成システム、プログラム及び情報記憶媒体に関する。
【0002】
【背景技術】
従来より、仮想的な3次元空間であるオブジェクト空間内において仮想カメラ(所与の視点)から見える画像を生成する画像生成システム(例えばゲームシステム)が知られており、いわゆる仮想現実を体験できるものとして人気が高い。
【0003】
このような画像生成システムを用いて例えばシューティングゲームやレースゲーム等の様々なゲームシステムを構築する場合、様々な場面でオブジェクト空間内のオブジェクト間のヒットチェックや交差位置の判定が必要となる場合がある。
【0004】
【特許文献1】
特開2003−6671号公報
【0005】
【発明が解決しようとする課題】
従来は、オブジェクト空間におけるオブジェクトの配置位置や配置位置にオブジェクトの形状を加味した3次元演算や2次元演算によりオブジェクト間のヒットチェックや交差位置の判定を行っていた。このような場合より正確なヒットチェックや交差位置の判定を行おうとすると、判定演算にオブジェクトの形状をより正確に反映させることが必要となり演算負荷が増大する。
【0006】
ゲーム装置では限られたハード上資源を用いてインタラクティブに変化するオブジェクトの位置を反映したヒットチェックや交差位置の判定をリアルタイムに行うことが必要であるため、正確かつ演算負荷の少ないヒットチェックや交差位置の判定を行うことが望ましい。
【0007】
本発明は、以上のような課題に鑑みてなされたものであり、その目的とするところは、正確かつ演算負荷の少ないヒットチェックや交差位置の判定を行うことが可能な画像生成システム、プログラム及び情報記憶媒体を提供することにある。
【0008】
【課題を解決するための手段】
(1)本発明は、画像生成を行う画像生成システムであって、
オブジェクト空間における第1のオブジェクトと第2のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングするレンダリング手段と、
第1のオブジェクト又は第2のオブジェクトの描画の有無に基づき、第1のオブジェクトと第2のオブジェクトの交差の有無を検出する交差検出手段と、
を含むことを特徴とする。
【0009】
また本発明に係るプログラムは、コンピュータにより実行可能なプログラム(情報記憶媒体又は搬送波に具現化されるプログラム)であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能(使用可能)な情報記憶媒体であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ためのプログラムを含むことを特徴としている。
【0010】
ここで、オブジェクト空間とは、例えば定義点(ポリゴンの頂点或いは自由曲面の制御点など)により形状が特定されるオブジェクトが配置される仮想的な3次元空間をいう。
【0011】
また第1のオブジェクトと第2のオブジェクトの少なくとも一方は現在移動中であるか、または移動する可能性のあるオブジェクトである。
【0012】
レンダリングとはオブジェクト空間に配置されたオブジェクトについて例えば座標変換、陰面消去、シェーディング等の処理を行い描画バッファに描画する処理である。
【0013】
ここでレンダリング手段は例えば透視変換の座標変換や蔭面消去等を行い、オブジェクト空間における第1のオブジェクトと第2のオブジェクトを所与の位置に配置された仮想カメラから見た画像を描画バッファ(フレームバッファ等)に描画する。
【0014】
なお、第1のオブジェクトと第2のオブジェクトの交差判定に必要な部分に関して、描画されたオブジェクトのレンダリング領域との対応がつけられれば良いので、レンダリングのために使う座標変換を射影投影に限る必要も無く、平行投影や非ユークリッド的な座標変換や区分的に分かれたレンダリングを通して接触した部分の判定を行うことも可能である。
【0015】
レンダリングや第1のオブジェクト又は第2のオブジェクトの描画の有無は、ソフトウエアにより実現してもよいし、ハードウエアにより実現してもよいし、ソフトウエアとハードウエアの両方で実現してもよい。例えばレンダリング機能を有するハードウエアに対して、ソフトウエアから処理内容を特定するためのパラメータを設定して実現するようにしてもよい。
【0016】
仮想カメラは第1のオブジェクト及び第2のオブジェクトの少なくとも一方が視野角にはいる所定位置に設定することが好ましい。例えば第1のオブジェクト又は第2のオブジェクトの内部や裏面側に仮想カメラを配置するようにしてもよい。
【0017】
例えば第1のオブジェクト又は第2のオブジェクトの描画有の場合に第1のオブジェクトと第2のオブジェクトの交差有りと判断するようにしてもよいし、その逆でもよい。
【0018】
本発明によれば、レンダリング結果得られた第1のオブジェクト又は第2のオブジェクトの描画の有無によって、第1のオブジェクトと第2のオブジェクトの交差の有無を検出することが出来る。
【0019】
したがってオブジェクト空間におけるオブジェクトの配置位置や配置位置にオブジェクトの形状を加味した3次元ヒットチェック演算や2次元ヒットチェック演算が必要ないために、ヒットチェック演算の負荷を大幅に軽減することが出来る。
【0020】
特に本発明によればオブジェクトの形状が複雑である場合でも、オブジェクトの形状を正確に反映した交差判例を行うことができるため、精度のよい交差判定をおこなうことが出来る。
(2)本発明は画像生成を行う画像生成システムであって、
オブジェクト空間における第1のオブジェクトと第2のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングするレンダリング手段と、
レンダリング結果にもとづき第1のオブジェクト又は第2のオブジェクトの描画画素数を検出する手段と、
検出された第1のオブジェクト又は第2のオブジェクトの描画画素数に基づき、第1のオブジェクトと第2のオブジェクトの交差の有無を検出する交差検出手段と、
を含むことを特徴とする。
【0021】
また本発明に係るプログラムは、コンピュータにより実行可能なプログラム(情報記憶媒体又は搬送波に具現化されるプログラム)であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能(使用可能)な情報記憶媒体であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ためのプログラムを含むことを特徴としている。
【0022】
ここで、オブジェクト空間とは、例えば定義点(ポリゴンの頂点或いは自由曲面の制御点など)により形状が特定されるオブジェクトが配置される仮想的な3次元空間をいう。
【0023】
また第1のオブジェクトと第2のオブジェクトの少なくとも一方は現在移動中であるか、または移動する可能性のあるオブジェクトである。
【0024】
レンダリングとはオブジェクト空間に配置されたオブジェクトについて例えば座標変換、陰面消去、シェーディング等の処理を行い描画バッファに描画する処理である。
【0025】
ここでレンダリング手段は例えば透視変換の座標変換や蔭面消去等を行い、オブジェクト空間における第1のオブジェクトと第2のオブジェクトを所与の位置に配置された仮想カメラから見た画像を描画バッファ(フレームバッファ等)に描画する。
【0026】
なお、第1のオブジェクトと第2のオブジェクトの交差判定に必要な部分に関して、描画されたオブジェクトのレンダリング領域との対応がつけられれば良いので、レンダリングのために使う座標変換を射影投影に限る必要も無く、平行投影や非ユークリッド的な座標変換や区分的に分かれたレンダリングを通して接触した部分の判定を行うことも可能である。
【0027】
レンダリング結果にもとづく第1のオブジェクト又は第2のオブジェクトの描画画素数の検出は、ソフトウエアにより実現してもよいし、ハードウエアにより実現してもよいし、ソフトウエアとハードウエアの両方で実現してもよい。例えばレンダリング機能を有するハードウエアに対して、ソフトウエアから処理内容を特定するためのパラメータを設定して実現するようにしてもよい。
【0028】
仮想カメラは第1のオブジェクト及び第2のオブジェクトの少なくとも一方が視野角にはいる所定位置に設定することが好ましい。例えば第1のオブジェクト又は第2のオブジェクトの内部や裏面側に仮想カメラを配置するようにしてもよい。
【0029】
第1のオブジェクト又は第2のオブジェクトのしきい値をさだめておいて、検出された第1のオブジェクト又は第2のオブジェクトの描画画素数としきい値を比較して、比較結果に基づき第1のオブジェクトと第2のオブジェクトの交差の有無を検出することが出来る。
【0030】
例えば第1のオブジェクト又は第2のオブジェクトの描画画素数がしきい値以上である場合に衝突があったと判定するようにしてもよい。
【0031】
このようにすると、第1のオブジェクトが第2のオブジェクトをかすめた場合等(この場合には第1のオブジェクトの描画画素数は1以上になるがしきい値よりは小さい)を衝突なしと判定することが出来る。
【0032】
本発明によれば、レンダリング結果得られた第1のオブジェクト又は第2のオブジェクトの描画画素数によって、第1のオブジェクトと第2のオブジェクトの交差の有無を検出することが出来るため、オブジェクト空間におけるオブジェクトの配置位置や配置位置にオブジェクトの形状を加味した3次元ヒットチェック演算や2次元ヒットチェック演算が必要ないために、ヒットチェック演算の負荷を大幅に軽減することが出来る。
【0033】
特に本発明によればオブジェクトの形状が複雑である場合でも、オブジェクトの形状を正確に反映した交差判例を行うことができるため、精度のよい交差判定を行うことが出来る。
【0034】
最近の画像生成システムでは、レンダリングしたオブジェクトの描画面積を高速に取得する機能を有するハードウエアが搭載されているので機能を用いて第1のオブジェクト又は第2のオブジェクトの描画画素数を取得するようにしてもよい。このようにすると複雑なヒットチェック演算をハードウエアの描画面積取得機能を使うことにより、高速に行うことが出来る。
(3)本発明の画像生成装置は、
前記交差検出手段は、
第1のオブジェクト及び第2のオブジェクトの少なくとも一方の描画画素数又は描画の有無に関連して設定された初期値と、検出された第1のオブジェクト又は第2のオブジェクトの描画画素数又は描画の有無を比較して、比較結果に基づき、第1のオブジェクトと第2のオブジェクトの交差の有無を検出することを特徴とする。
【0035】
例えば第1のオブジェクト及び第2のオブジェクトの少なくとも一方の描画画素数が0又は描画無を初期値として設定しておき、検出された第1のオブジェクト又は第2のオブジェクトの描画画素数が0以外又は描画有りであった場合に第1のオブジェクトと第2のオブジェクトの交差の有りと判定するようにしても良いし、第1のオブジェクト及び第2のオブジェクトの少なくとも一方の描画画素数が1以上又は描画有りを初期値として設定しておき、検出された第1のオブジェクト又は第2のオブジェクトの描画画素数が0又は描画無しであった場合に第1のオブジェクトと第2のオブジェクトの交差の有りと判定するようにしても良い。
(4)本発明の画像生成装置は、
前記交差検出手段は、
所与の時刻tにおいて検出された第1のオブジェクト又は第2のオブジェクトの描画画素数又は描画の有無と所与の時刻t+Δtにおいて検出された第1のオブジェクト又は第2のオブジェクトの描画画素数又は描画の有無にもとづいて、第1のオブジェクト及び第2のオブジェクトの少なくとも一方の描画画素数又は描画の有無の変化を検出し、変化があった場合に第1のオブジェクトと第2のオブジェクトの交差の有と判定する交差検出手段とを含むことを特徴とする。
【0036】
本発明によれば、所与の時刻t〜t+Δtの間に、第1のオブジェクト又は第2のオブジェクトの描画画素数又は描画の有無の変化を検出した場合に、所与の時刻t〜t+Δtの間に第1のオブジェクトと第2のオブジェクトの交差の有ったと判定することができる。
(5)本発明は、画像生成を行う画像生成システムであって、
所与の時刻tからt+Δtにおける第1のオブジェクトの移動に基づき移動軌跡ボリュームを生成しオブジェクト空間に配置する移動軌跡ボリューム設定手段と、
移動軌跡ボリュームと第2のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングするレンダリング手段と、
移動軌跡ボリューム及び第2のオブジェクトの少なくとも一方の描画領域に基づき、移動軌跡ボリュームと第2のオブジェクトの交差領域を検出する交差領域検出手段と、
を含むことを特徴とする。
【0037】
また本発明に係るプログラムは、コンピュータにより実行可能なプログラム(情報記憶媒体又は搬送波に具現化されるプログラム)であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ことを特徴とする。また本発明に係る情報記憶媒体は、コンピュータにより読み取り可能(使用可能)な情報記憶媒体であって、上記手段をコンピュータに実現させる(上記手段としてコンピュータを機能させる)ためのプログラムを含むことを特徴としている。
【0038】
ここで、オブジェクト空間とは、例えば定義点(ポリゴンの頂点或いは自由曲面の制御点など)により形状が特定されるオブジェクトが配置される仮想的な3次元空間をいう。
【0039】
ここで第1のオブジェクトは現在移動中であるか、または移動する可能性のあるオブジェクトである。また第2のオブジェクトは移動していてもよいし、静止していてもよい。
【0040】
移動軌跡ボリュームは第1のオブジェクトが移動前後及び移動中に占有した空間(3次元的な移動軌跡をすべて包含するボリューム(立体))である。例えば第1のオブジェクトの移動前後における頂点を移動軌跡(移動ベクトル)または直線で結んで生成するようにしてもよい。
【0041】
レンダリングとはオブジェクト空間に配置されたオブジェクトについて例えば座標変換、陰面消去、シェーディング等の処理を行い描画バッファに描画する処理である。
【0042】
ここでレンダリング手段は例えば透視変換の座標変換や蔭面消去等を行い、オブジェクト空間における移動軌跡ボリュームと第2のオブジェクトを所与の位置に配置された仮想カメラから見た画像を描画バッファ(フレームバッファ等)に描画する。
【0043】
なお、移動軌跡ボリュームと第2のオブジェクトの交差判定に必要な部分に関して、描画されたオブジェクトのレンダリング領域との対応がつけられれば良いので、レンダリングのために使う座標変換を射影投影に限る必要も無く、平行投影や非ユークリッド的な座標変換や区分的に分かれたレンダリングを通して接触した部分の判定を行うことも可能である。
【0044】
レンダリングや移動軌跡ボリューム及び第2のオブジェクトの少なくとも一方の描画領域の検出は、ソフトウエアにより実現してもよいし、ハードウエアにより実現してもよいし、ソフトウエアとハードウエアの両方で実現してもよい。例えばレンダリング機能を有するハードウエアに対して、ソフトウエアから処理内容を特定するためのパラメータを設定して実現するようにしてもよい。
【0045】
仮想カメラは移動軌跡ボリューム及び第2のオブジェクトの少なくとも一方が視野角にはいる所定位置に設定することが好ましい。例えば移動軌跡ボリューム又は第2のオブジェクトの内部や裏面側に仮想カメラを配置するようにしてもよい。
【0046】
例えば移動軌跡ボリュームの描画領域のうち所定の状態である部分を交差領域として検出するようにしてもよい。
【0047】
本発明によれば、レンダリング結果得られた移動軌跡ボリューム及び第2のオブジェクトの少なくとも一方の描画領域にもとづき、第1のオブジェクトと第2のオブジェクトの交差の有無を検出することが出来る。
【0048】
したがってオブジェクト空間におけるオブジェクトの配置位置や配置位置にオブジェクトの形状を加味した3次元ヒットチェック演算や2次元ヒットチェック演算が必要ないために、ヒットチェック演算の負荷を大幅に軽減することが出来る。
【0049】
特に本発明によればオブジェクトの形状が複雑である場合でも、オブジェクトの形状を正確に反映した交差判例を行うことができるため、精度のよい交差判定をおこなうことが出来る。
【0050】
また検出された交差領域は、第2のオブジェクトと対応付けが可能であるため、第2のオブジェクトとの位置の対応をとることで、交差位置を検出することが出来る。このように本発明によれば交差判定のみならず交差位置の検出も行うことが出来る。
(6)本発明の画像生成装置は、
前記レンダリング手段は、
移動軌跡ボリュームを構成するポリゴンうち仮想カメラに表面が向いている表面ポリゴンと、仮想カメラに裏面が向いている裏面ポリゴンを描画し、
交差領域検出手段は、
表面ポリゴンと裏面ポリゴンの描画された回数の異なる画素で構成される領域を交差領域として検出することを特徴とする。
【0051】
前記レンダリング手段は、移動軌跡ボリュームを構成するポリゴンうち仮想カメラに表面が向いている表面ポリゴンによって構成される表面オブジェクトと、仮想カメラに裏面が向いている裏面ポリゴンによって構成される裏面オブジェクトとを描画し、交差領域検出手段は、表面オブジェクトと裏面オブジェクトの描画された回数の異なる画素で構成される領域を交差領域として検出するようにしてもよい。
(7)本発明の画像生成装置は、
検出された交差領域に基づいて第1のオブジェクトと第2のオブジェクトの交差位置を演算する手段とを含むことを特徴とする。
【0052】
また検出された交差領域は、第2のオブジェクトと対応付けが可能であるため、第2のオブジェクトとの位置の対応をとることで、交差位置を検出することがきる。
【0053】
例えば第2のオブジェクトと交差領域の対応付けに必要なマップテーブルやテクスチャを予め用意しておき、検出された交差領域からマップテーブルやテクスチャによって、交差位置を判定するようにしてもよい。
(8)本発明の画像生成装置は、
演算された交差位置又は第1のオブジェクトと第2のオブジェクトの交差の有無に基づき、ヒットチェック判定を行い、判定結果に基づきゲーム演算処理をおこなうゲーム演算手段を含むことを特徴とする。
【0054】
【発明の実施の形態】
以下、本発明の好適な実施形態について図面を用いて説明する。
【0055】
なお、以下に説明する本実施形態は、特許請求の範囲に記載された本発明の内容を何ら限定するものではない。また本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【0056】
1. 構成
図1に、本実施形態の画像生成システム(例えばゲームシステム)の機能ブロック図の一例を示す。
【0057】
なお同図において本実施形態は、少なくとも処理部100を含めばよく(或いは処理部100と記憶部170、或いは処理部100と記憶部170と情報記憶媒体180を含めばよく)、それ以外のブロック(例えば操作部160、表示部190、音出力部192、携帯型情報記憶装置194、通信部196)については、任意の構成要素とすることができる。
【0058】
ここで処理部100は、システム全体の制御、システム内の各ブロックへの命令の指示、ゲーム処理、画像処理、又は音処理などの各種の処理を行うものであり、その機能は、各種プロセッサ(CPU、DSP等)、或いはASIC(ゲートアレイ等)などのハードウェアや、所与のプログラム(ゲームプログラム)により実現できる。
【0059】
操作部160は、プレーヤが操作データを入力するためのものであり、その機能は、レバー、ボタン、筐体などのハードウェアにより実現できる。
【0060】
記憶部170は、メインメモリ(主記憶部等)172やフレームバッファ(描画バッファ等)174等を含み、処理部100や通信部196などのワーク領域となるもので、その機能はRAMなどのハードウェアにより実現できる。
【0061】
情報記憶媒体(コンピュータにより使用可能な記憶媒体)180は、プログラムやデータなどの情報を格納するものであり、その機能は、光ディスク(CD、DVD)、光磁気ディスク(MO)、磁気ディスク、ハードディスク、磁気テープ、或いはメモリ(ROM)などのハードウェアにより実現できる。処理部100は、この情報記憶媒体180に格納される情報に基づいて本発明(本実施形態)の種々の処理を行う。即ち情報記憶媒体180には、本発明(本実施形態)の手段(特に処理部100に含まれるブロック)を実行するための情報(プログラム或いはデータ)が格納される。
【0062】
なお、情報記憶媒体180に格納される情報の一部又は全部は、システムへの電源投入時等に記憶部170に転送されることになる。また情報記憶媒体180に記憶される情報は、本発明の処理を行うためのプログラム、画像データ、音データ、表示物の形状データ、テーブルデータ、リストデータ、本発明の処理を指示するための情報、その指示に従って処理を行うための情報等の少なくとも1つを含むものである。
【0063】
表示部190は、本実施形態により生成された画像を出力するものであり、その機能は、CRT、LCD、或いはHMD(ヘッドマウントディスプレイ)などのハードウェアにより実現できる。
【0064】
音出力部192は、本実施形態により生成された音を出力するものであり、その機能は、スピーカなどのハードウェアにより実現できる。
【0065】
携帯型情報記憶装置194は、プレーヤの個人データやセーブデータなどが記憶されるものであり、この携帯型情報記憶装置194としては、メモリカードや携帯型ゲーム装置などを考えることができる。
【0066】
通信部196は、外部(例えばホスト装置や他の画像生成システム)との間で通信を行うための各種の制御を行うものであり、その機能は、各種プロセッサ、或いは通信用ASICなどのハードウェアや、プログラムなどにより実現できる。
【0067】
なお本発明(本実施形態)の手段を実行するためのプログラム或いはデータは、ホスト装置(サーバ)が有する情報記憶媒体からネットワーク及び通信部196を介して情報記憶媒体180に配信するようにしてもよい。このようなホスト装置(サーバ)の情報記憶媒体の使用も本発明の範囲内に含まれる。
【0068】
処理部100は、ゲーム処理部110、交差部分検出処理部(シャドーボリューム処理部)120、画像生成部130、音生成部150を含む。
【0069】
ここでゲーム処理部110は、コイン(代価)の受け付け処理、各種モードの設定処理、ゲームの進行処理、選択画面の設定処理、オブジェクト(1又は複数のプリミティブ面)の位置や回転角度(X、Y又はZ軸回りの回転角度)を求める処理、オブジェクトを動作させる処理(モーション処理)、視点の位置(仮想カメラの位置)や視線角度(仮想カメラの回転角度)を求める処理、マップオブジェクトなどのオブジェクトをオブジェクト空間へ配置する処理、ヒットチェック処理、ゲーム結果(成果、成績)を演算する処理、複数のプレーヤが共通のゲーム空間でプレイするための処理、或いはゲームオーバ処理などの種々のゲーム処理を、操作部160からの操作データや、携帯型情報記憶装置194からの個人データ、保存データや、ゲームプログラムなどに基づいて行う。
【0070】
ゲーム処理部110は、交差検出部120,交差領域検出部122、移動軌跡ボリューム設定部124を含む。
【0071】
交差検出部120は,第1のオブジェクト又は第2のオブジェクトの描画の有無に基づき、第1のオブジェクトと第2のオブジェクトの交差の有無を検出するようにしてもよい。
【0072】
また検出された第1のオブジェクト又は第2のオブジェクトの描画画素数に基づき、第1のオブジェクトと第2のオブジェクトの交差の有無を検出するようにしてもよい。
【0073】
また第1のオブジェクト及び第2のオブジェクトの少なくとも一方の描画画素数又は描画の有無に関連して設定された初期値と、検出された第1のオブジェクト又は第2のオブジェクトの描画画素数又は描画の有無を比較して、比較結果に基づき、第1のオブジェクトと第2のオブジェクトの交差の有無を検出するようにしてもよい。
【0074】
また所与の時刻tにおいて検出された第1のオブジェクト又は第2のオブジェクトの描画画素数又は描画の有無と所与の時刻t+Δtにおいて検出された第1のオブジェクト又は第2のオブジェクトの描画画素数又は描画の有無にもとづいて、第1のオブジェクト及び第2のオブジェクトの少なくとも一方の描画画素数又は描画の有無の変化を検出し、変化があった場合に第1のオブジェクトと第2のオブジェクトの交差の有と判定する交差検出手段とを含むようにしてもよい。
【0075】
交差領域検出部122は、移動軌跡ボリューム及び第2のオブジェクトの少なくとも一方の描画領域に基づき、移動軌跡ボリュームと第2のオブジェクトの交差領域を検出するようにしてもよい。
【0076】
例えば表面ポリゴンと裏面ポリゴンの描画された回数の異なる画素で構成される領域を交差領域として検出するようにしてもよい。
【0077】
移動軌跡ボリューム設定部124は、所与の時刻tからt+Δtにおける第1のオブジェクトの移動に基づき移動軌跡ボリュームを生成しオブジェクト空間に配置する移動軌跡ボリューム設定するようにしてもよい。
【0078】
またゲーム処理部110は、検出された交差領域に基づいて第1のオブジェクトと第2のオブジェクトの交差位置を演算する手段として機能する。
【0079】
またゲーム処理部110は、演算された交差位置又は第1のオブジェクトと第2のオブジェクトの交差の有無に基づき、ヒットチェック判定を行い、判定結果に基づきゲーム演算処理をおこなうようにしてもよい。
【0080】
画像生成部130は、ゲーム処理部110からの指示等にしたがって各種の画像処理を行い、例えばオブジェクト空間内で仮想カメラ(視点)から見える画像を生成して、表示部190に出力する。画像生成部130は、レンダリング手段として機能する。
【0081】
また画像生成部130は、オブジェクト空間における第1のオブジェクトと第2のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングするレンダリング手段として機能する。
【0082】
さらにレンダリング結果にもとづき第1のオブジェクト又は第2のオブジェクトの描画画素数を検出する手段として機能するようにしてもよい。
【0083】
また移動軌跡ボリュームと第2のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングするようにしてもよい。
【0084】
さらに 移動軌跡ボリュームを構成するポリゴンうち仮想カメラに表面が向いている表面ポリゴンと、仮想カメラに裏面が向いている裏面ポリゴンを描画するようにしてもよい。
【0085】
音生成部150は、ゲーム処理部110からの指示等にしたがって各種の音処理を行い、BGM、効果音、又は音声などの音を生成し、音出力部192に出力する。
【0086】
なお、ゲーム処理部110、交差検出部120、交差領域検出部122,移動軌跡ボリューム設定部124、画像生成部130、音生成部150の機能は、その全てをハードウェアにより実現してもよいし、その全てをプログラムにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0087】
画像生成部130は、ジオメトリ処理部(3次元演算部)132、描画部(レンダリング部)140を含む。
【0088】
ここで、ジオメトリ処理部132は、座標変換、クリッピング処理、透視変換、或いは光源計算などの種々のジオメトリ処理(3次元演算)を行う。そして、本実施形態では、ジオメトリ処理後(透視変換後)のオブジェクトデータ(オブジェクトの頂点座標、頂点テクスチャ座標、或いは輝度データ等)は、記憶部170の主記憶部172に格納されて、保存される。
【0089】
描画部140は、ジオメトリ処理後(透視変換後)のオブジェクトデータと、記憶部170に記憶されるテクスチャとに基づいて、オブジェクトを描画バッファ174に描画する。これにより、オブジェクトが移動するオブジェクト空間において、仮想カメラ(視点)から見える画像が描画(生成)されるようになる。
【0090】
なお描画部140では、ボリュームオブジェクトによって影響を受けるように設定された所与のオブジェクトとの交差部分(重複部分)については、交差部分検出処理によって変更された内容のモデル情報を用いて、又は交差部分検出処理によって変更された内容のレンダリング手法によって、レンダリング処理が行われる。
【0091】
なお、本実施形態の画像生成システムは、1人のプレーヤのみがプレイできるシングルプレーヤモード専用のシステムにしてもよいし、このようなシングルプレーヤモードのみならず、複数のプレーヤがプレイできるマルチプレーヤモードも備えるシステムにしてもよい。
【0092】
また複数のプレーヤがプレイする場合に、これらの複数のプレーヤに提供するゲーム画像やゲーム音を、1つの端末を用いて生成してもよいし、ネットワーク(伝送ライン、通信回線)などで接続された複数の端末を用いて生成してもよい。
【0093】
2. 第1の実施の形態
図2(A)(B)は、第1の実施の形態の特徴について説明するための図である。
【0094】
例えば、地面310(第2のオブジェクト)に向かって弾320(第1のオブジェクト)を撃つシーンを考えたときに、地面310(第2のオブジェクト)の裏側からの視点330に着目する。一度地面310(第2のオブジェクト)を描いておき、そのzバッファを使って、弾320(第1のオブジェクト)を描画するとともに、その描画画素数を数えておく。
【0095】
例えば図2(A)に示すように弾320(第1のオブジェクト)が突き抜けていなければ、裏側からのレンダリングはされないので、描画数は0である。これに対し図2(B)に示すように、弾が描画された場合(すなわち描画画素数が0でないとき)には、弾は突き抜けたので弾を爆発させたり着弾点の演出をさせるためのきっかけに利用できる。
【0096】
ここでは例えば地面310(第2のオブジェクト)の裏側から見た視点330でレンダリングする場合を例にとり説明したがこれに限られない。
【0097】
また地面310(第2のオブジェクト)と弾320(第1のオブジェクト)の交差判定に必要な部分に関して、描画されたオブジェクトのレンダリング領域との対応がつけられれば良いので、レンダリングのために使う座標変換を射影投影に限る必要も無く、平行投影や非ユークリッド的な座標変換や区分的に分かれたレンダリングを通して接触した部分の判定を行うことも可能である。
【0098】
最近の画像生成システムでは、レンダリングしたオブジェクトの描画画素数を高速に取得する機能を有するハードウエアが搭載されている。例えばこの機能を用いて弾320(第1のオブジェクト)の描画画素数を取得し、取得した弾320(第1のオブジェクト)の描画画素数が0か1以上かによって衝突の有無を判定することが出来る。
【0099】
なお例えば衝突の有無の基準となる描画画素数のしきい値をさだめておいて、検出された弾320(第1のオブジェクト)の描画画素数がしきい値以上である場合に衝突があったと判定するようにしてもよい。このようにすると、例えば弾320(第1のオブジェクト)が地面310(第2のオブジェクト)をかすめた場合等(この場合には弾320(第1のオブジェクト)の描画画素数は1以上になるがしきい値よりは小さい)を衝突なしと判定することが出来る。
【0100】
そしてその結果によって描画されるオブジェクト(例えば弾320や地面310)に関するゲーム上の振る舞いや状態変化を引き起こすことができる。
【0101】
次にオブジェクト空間に存在する第1のオブジェクトと第2のオブジェクトの具体的な交差判定処理について説明する。
【0102】
図3(A)(B)は、第1のオブジェクトと第2のオブジェクトが接触していない状態について説明するための図である。図3(A)は3次元空間における第1のオブジェクト210と第2のオブジェクト220と仮想カメラ230の様子を表しており、図3(B)は所与の位置に配置された仮想カメラ230から見た画像のレンダリング結果240を表した図である。
【0103】
ここで第1のオブジェクト220は移動オブジェクトであり、第2のオブジェクト220は地形オブジェクトである。
【0104】
図3(A)に示すように仮想カメラ230は、地面の下から地形オブジェクト(第2のオブジェクト220)をとらえるように配置されている。このため、移動オブジェクト(第1のオブジェクト210)が仮想カメラ230から見て地形オブジェクト(第2のオブジェクト220)より奥に有る場合には、移動オブジェクト(第1のオブジェクト210)は仮想カメラ230から見えないため、描画されない。従って移動オブジェクト(第1のオブジェクト210)と地形オブジェクト(第2のオブジェクト220)を所与の位置に配置された仮想カメラ230からみた画像をレンダリングした場合、図3(B)に示すように移動オブジェクト(第1のオブジェクト210)は、描画されない。すなわち移動オブジェクト(第1のオブジェクト210)の描画画素数は0である。
【0105】
図4(A)(B)は、第1のオブジェクトが第2のオブジェクトを貫通した後の状態について説明するための図である。図4(A)は3次元空間における第1のオブジェクト210と第2のオブジェクト220と仮想カメラ230の様子を表しており、図4(B)は所与の位置に配置された仮想カメラ230から見た画像のレンダリング結果を表した図である。
【0106】
図4(A)に示すように仮想カメラ230は、地面の下から地形オブジェクト(第2のオブジェクト220)をとらえるように配置されている。このため、移動オブジェクト(第1のオブジェクト210)が仮想カメラ230から見て地形オブジェクト(第2のオブジェクト220)の手前に有る場合には、移動オブジェクト(第1のオブジェクト210’)は仮想カメラ230から見えるため、描画される。従って移動オブジェクト(第1のオブジェクト210’)と地形オブジェクト(第2のオブジェクト220)を所与の位置に配置された仮想カメラ230からみた画像をレンダリングした場合、図4(B)の242に示すように移動オブジェクト(第1のオブジェクト210)描画される。すなわち移動オブジェクト(第1のオブジェクト210)の描画画素数は0でない(又は1以上である)。
【0107】
従って移動オブジェクト(第1のオブジェクト210)の描画画素数を取得することにより移動オブジェクト(第1のオブジェクト210)と地形オブジェクト(第2のオブジェクト220)の交差判定をすることが出来る。
【0108】
第1の実施の形態では、オブジェクト空間における第1のオブジェクト210と第2のオブジェクト220を所与の位置に配置された仮想カメラ230から見た画像をレンダリングし、第1のオブジェクト210又は第2のオブジェクト220の描画の有無に基づき、第1のオブジェクト210と第2のオブジェクト220の交差の有無を検出する。
【0109】
図3(A)(B)、図4(A)(B)で説明したように各フレームにおける移動オブジェクト描画の有無に基づき第1のオブジェクト210(移動オブジェクト)と第2のオブジェクト220(地形オブジェクト)の交差の有無を検出する。
【0110】
例えば所与の時刻tでは描画されなかった移動オブジェクト(第1のオブジェクト210)が時刻t+Δtでは描画された場合には、移動オブジェクト(第1のオブジェクト210)と地形オブジェクト(第2のオブジェクト220)の交差したと判定をするようにしてもよい。
【0111】
また例えば仮想カメラが地面の上にあった場合には所与の時刻tでは描画された移動オブジェクト(第1のオブジェクト210)が、時刻t+Δtでは描画されなかった場合には、移動オブジェクト(第1のオブジェクト210)と地形オブジェクト(第2のオブジェクト220)の交差したと判定をするようにしてもよい。
【0112】
また第1の実施の形態では、オブジェクト空間における第1のオブジェクト210と第2のオブジェクト220を所与の位置に配置された仮想カメラ230から見た画像をレンダリングし、描画されたオブジェクト(たとえば第2のオブジェクト220)の画素数を検出し、検出された描画オブジェクトの画素数に基づき、第1のオブジェクト210と第2のオブジェクト220の交差の有無を検出する。
【0113】
図3(A)(B)、図4(A)(B)で説明したように各フレームにおける移動オブジェクト(第1のオブジェクト210)の描画画素数を取得し、描画画素数の変化に基づき交差判定をすることが出来る。
【0114】
例えば所与の時刻tでは0であった移動オブジェクト(第1のオブジェクト210)の描画画素数が時刻t+Δtでは1以上になった場合には、移動オブジェクト(第1のオブジェクト210)と地形オブジェクト(第2のオブジェクト220)の交差したと判定をするようにしてもよい。
【0115】
また例えば仮想カメラが地面の上にあった場合には所与の時刻tでは1以上であった移動オブジェクト(第1のオブジェクト210)の描画画素数が時刻t+Δtでは0になった場合には、移動オブジェクト(第1のオブジェクト210)と地形オブジェクト(第2のオブジェクト220)の交差したと判定をするようにしてもよい。
【0116】
このように所与の時刻tにおいて検出された描画オブジェクトの画素数と所与の時刻t+Δtにおいて検出された描画オブジェクトの画素数にもとづいて、第1のオブジェクト及び第2のオブジェクトの少なくとも一方の描画の有無又は描画画素数の変化を検出し、検出結果に基づき第1のオブジェクトと第2のオブジェクトの交差の有無を検出することが出来る。
【0117】
また交差判定処理においては、第1のオブジェクト及び第2のオブジェクトの少なくとも一方の描画画素数に関連して設定された初期値と、検出された描画オブジェクトの画素数を比較して、比較結果に基づき、第1のオブジェクトと第2のオブジェクトの交差の有無を検出するようにしてもよい。
【0118】
例えば図3(A)(B)、図4(A)(B)のように仮想カメラ230が地面の下から地形オブジェクト(第2のオブジェクト220)をとらえるように配置されている場合には、移動オブジェクト(第1のオブジェクト210)の描画画素数に関連して設定された初期値を0としておき、移動オブジェクト(第1のオブジェクト210)の描画画素数が0でない場合に、交差があったと判断するようにしてもよい。
【0119】
図5は第1の実施の形態の処理の一例について説明するためのフローチャート図である。
【0120】
ここでは第1のオブジェクトの描画の有無(又は描画画素数でもよい)に関連して、描画無し(又は描画画素数が0)を初期値として、第1のオブジェクトの描画の有無(又は画素数)を検出して、初期値と検出結果を比較して、比較結果に基づき、第1のオブジェクトと第2のオブジェクトの交差の有無を検出する場合の処理の流れについて説明する。
【0121】
第1の実施の形態では以下の処理を各フレーム毎に行う。なお常に行う必要はなく交差判定が必要な場合のみ行うようにしてもよい。
【0122】
第1のオブジェクト(例えば移動オブジェクト)と第2のオブジェクト(例えば地形オブジェクト)の座標及び速度の初期値を設定する(ステップS10)。速度は移動するオブジェクトについて設定すればよいため、第1のオブジェクト(例えば移動オブジェクト)について速度を設定する。
【0123】
次に設定された速度に基づきオブジェクトを移動させる(ステップS12)。
【0124】
次に第2のオブジェクト(例えば地形オブジェクト)の背面等に仮想カメラを設置する(ステップS20)。
【0125】
次に第2のオブジェクトの深度値等の「距離」を深度バッファ(例えばZバッファ)へレンダリングする(ステップS30)
次にフレームバッファを黒などの適当な色で塗りつぶす(ステップS40)
次に第1のオブジェクト(例えば移動オブジェクト)を、白などのフレームバッファを塗りつぶした色と別の色で描画する(ステップS50)。
【0126】
次にフレームバッファに第1のオブジェクト(例えば移動オブジェクト)の色が塗られているか調べる(ステップS60)
そして第1のオブジェクト(例えば移動オブジェクト)の色が見つかった場合には、第1のオブジェクト(例えば移動オブジェクト)が第2のオブジェクト(例えば地形オブジェクト)の手前にあるときの処理(ステップS70,S80)を行う。第1のオブジェクト(例えば移動オブジェクト)が第2のオブジェクト(例えば地形オブジェクト)の手前にあるときの処理とは、例えば第1のオブジェクト(例えば移動オブジェクト)が第2のオブジェクト(例えば地形オブジェクト)に衝突した場合の処理であり、例えば衝突によるゲーム演算(パラメータや得点のへ更新や分岐の選択)や衝突画像の生成等の処理である。
【0127】
また第1のオブジェクト(例えば移動オブジェクト)の色が見つからなかった場合には、第1のオブジェクト(例えば移動オブジェクト)が第2のオブジェクト(例えば地形オブジェクト)の奥にあるときの処理(ステップS90)を行う。第1のオブジェクト(例えば移動オブジェクト)が第2のオブジェクト(例えば地形オブジェクト)の手前にあるときの処理とは、例えば第1のオブジェクト(例えば移動オブジェクト)が第2のオブジェクト(例えば地形オブジェクト)にいまだ衝突していない状態の処理である。
【0128】
そして交差判定処理を継続する場合にはステップS12に戻って処理を繰り返す(ステップS100)。
【0129】
なおステップS10からS100までの処理は、ソフトウエアにより実現してもよいし、ハードウエアにより実現してもよいし、ソフトウエアとハードウエアの両方で実現してもよい。
【0130】
例えばレンダリング機能を有するハードウエアに対して、ソフトウエアから処理内容を特定するためのパラメータを設定して実現するようにしてもよい。
【0131】
図6は第1の実施の形態の処理の他の一例について説明するためのフローチャート図である。
【0132】
ここでは所与の時刻tにおける第1のオブジェクトの描画の有無(又は描画画素数でもよい)と時刻t+Δtにおける第1のオブジェクトの描画の有無(又は描画画素数でもよい)の変化を検出し、検出結果に基づき第1のオブジェクトと第2のオブジェクトの交差の有無を検出する場合の処理の流れについて説明する。
【0133】
第1の実施の形態では以下の処理を各フレーム毎に行う。なお常に行う必要はなく交差判定が必要な場合のみ行うようにしてもよい。
【0134】
第1のオブジェクト(例えば移動オブジェクト)と第2のオブジェクト(例えば地形オブジェクト)の座標、速度及び今回描画情報の初期値を設定する(ステップS110)。速度は移動するオブジェクトについて設定すればよいため、第1のオブジェクト(例えば移動オブジェクト)について速度を設定する。今回描画情報とは、今回のフレームで第1のオブジェクトが描画されたか否かに関する情報である。ここで1回目の比較演算では今回描画情報と前回描画情報が異なるようにするため、今回描画情報の初期値は、描画有の場合の今回描画情報と描画無しの場合の今回描画情報のいずれとも違う値にしておく。
【0135】
次に今回描画情報を前回描画情報に設定する(ステップS120)。前回描画情報とは、前回のフレームで第1のオブジェクトが描画されたか否かに関する情報である。
【0136】
次に設定された速度に基づきオブジェクトを移動させる(ステップS130)。
【0137】
次に第2のオブジェクト(例えば地形オブジェクト)の背面等に仮想カメラを設置する(ステップS140)。
【0138】
次に第2のオブジェクトの深度値等の「距離」を深度バッファ(例えばZバッファ)へレンダリングする(ステップS150)
次にフレームバッファを黒などの適当な色で塗りつぶす(ステップS160)次に第1のオブジェクト(例えば移動オブジェクト)を、白などのフレームバッファを塗りつぶした色と別の色で描画する(ステップS170)。
【0139】
次にフレームバッファに第1のオブジェクト(例えば移動オブジェクト)の色が塗られているか調べる(ステップS180)
そして第1のオブジェクト(例えば移動オブジェクト)の色が見つかった場合には、第1のオブジェクト(例えば移動オブジェクト)がレンダリングされたという情報を今回描画情報にセットする(ステップS190,S200)。
【0140】
また第1のオブジェクト(例えば移動オブジェクト)の色が見つからなかった場合には、第1のオブジェクト(例えば移動オブジェクト)がレンダリングされなかった情報を今回描画情報にセットする(ステップS190,S210)。
【0141】
そして今回描画情報と前回描画情報を比較し、異なっている場合には第1のオブジェクト(例えば移動オブジェクト)と第2のオブジェクト(例えば地形オブジェクト)が交差したときの処理を行う(ステップS220,S230)。
【0142】
また今回描画情報と前回描画情報が同じ場合には第1のオブジェクト(例えば移動オブジェクト)と第2のオブジェクト(例えば地形オブジェクト)が交差しなかったときの処理を行う(ステップS220,S240)。
【0143】
そして交差判定処理を継続する場合にはステップS120に戻って処理を繰り返す(ステップS250)。
【0144】
なおステップS110からS250までの処理は、ソフトウエアにより実現してもよいし、ハードウエアにより実現してもよいし、ソフトウエアとハードウエアの両方で実現してもよい。
【0145】
例えばレンダリング機能を有するハードウエアに対して、ソフトウエアから処理内容を特定するためのパラメータを設定して実現するようにしてもよい。
【0146】
3. 第2の実施の形態
図7は、第2の実施の形態の特徴について説明するための図である。
【0147】
第2の実施の形態は、時刻tにおける第1のオブジェクト(移動オブジェクト)310と時刻t+Δtにおける第1のオブジェクト(移動オブジェクト)310’に基づき移動軌跡ボリューム330を生成し、移動軌跡ボリューム330と、第2のオブジェクト(地形オブジェクト)320の交差領域340を検出する。
【0148】
移動軌跡ボリューム330はオブジェクト空間における時刻tにおける第1のオブジェクト(移動オブジェクト)310と時刻t+Δtにおける第1のオブジェクト(移動オブジェクト)310’の各対応頂点を移動軌跡又は直線で結び最も外側の稜線を輪郭とするオブジェクトとして設定することができる。
【0149】
例えば時刻t(移動前)における第1のオブジェクト(移動オブジェクト)310の各頂点V1からV8が、時刻t+Δt(移動後)にV1’からV8’になったとすると、V1からV8とそれぞれ対応する移動後の頂点V1’からV8’をむすんで移動軌跡ボリュームを構成することが出来る。
【0150】
もし時刻tからt+Δtにおいて第1のオブジェクト(移動オブジェクト)310と第2のオブジェクト(地形オブジェクト)320が交差している場合には、移動軌跡ボリューム330と第2のオブジェクトは交差する。従って移動軌跡ボリューム330と、第2のオブジェクト(地形オブジェクト)320の交差領域340が検出されたら、第1のオブジェクト(移動オブジェクト)310と第2のオブジェクト(地形オブジェクト)が交差したと判定することが出来る。
【0151】
またフレームバッファ350に描画された交差領域340と、第2のオブジェクト(地形オブジェクト)の位置の対応をとることで、交差位置を検出することが出来る。
【0152】
このように第2の実施の形態によれば、交差判定のみならず交差位置の検出も行うことが出来る。
【0153】
次にオブジェクト空間に存在する第1のオブジェクトと第2のオブジェクトの具体的な交差領域検出処理について説明する。
【0154】
図8(A)〜(C)は、移動軌跡ボリュームの設定処理について説明するための図である。
【0155】
図8(A)は、移動前(時刻t)おける第1のオブジェクト310と第2のオブジェクト320がオブジェクト空間に配置されている様子を表しており、図8(B)は、移動後(時刻t+Δt)おける第1のオブジェクト310’と第2のオブジェクト320がオブジェクト空間に配置されている様子を表している。
【0156】
そして図8(C)は、移動前(時刻t)おける第1のオブジェクト310と移動後(時刻t+Δt)おける第1のオブジェクト310’に基づき生成される移動軌跡ボリューム330を表している。
【0157】
移動軌跡ボリュームは第1のオブジェクトが移動前後及び移動中に占有した空間(3次元的な移動軌跡をすべて包含するボリューム(立体))である。例えば図7で説明したように第1のオブジェクトの移動前後における頂点を移動軌跡または直線で結んで生成することが出来る。
【0158】
図9(A)〜(C)は、交差領域検出処理について説明するための図である。
【0159】
図9(A)は、移動軌跡ボリュームを構成するポリゴンうち仮想カメラに表面が向いている表面ポリゴンによって構成される表面オブジェクト332と第2のオブジェクト(地形オブジェクト)320が、フレームバッファ350に描画されている様子を表した図である。
【0160】
図9(B)は、移動軌跡ボリュームを構成するポリゴンうち仮想カメラに裏面が向いている裏面ポリゴンによって構成される裏面オブジェクト332と第2のオブジェクト(地形オブジェクト)320が、フレームバッファ350に描画されている様子を表した図である。
【0161】
図9(C)の340は表面ポリゴンと裏面ポリゴンの描画された回数の異なる画素で構成される領域を表しており、これが移動軌跡ボリュームと第2のオブジェクトの交差領域となる。
【0162】
なお図9(A)〜(C)では、仮想カメラを第1のオブジェクトと移動軌跡ボリュームを斜め横から見る位置に置いているが、本来は図3(A)(B)、図4(A)(B)と同様に、第2のオブジェクト(地形オブジェクト)を下からみる位置に設置するのが好ましい。
【0163】
また表面オブジェクトをレンダリングする際には、裏面をレンダリングしてもよい。
【0164】
第2の実施の形態では、図8(A)〜(C)に示したように所与の時刻tからt+Δtにおける第1のオブジェクトの移動に基づき移動軌跡ボリューム(移動軌跡でもよいし、移動軌跡を近似した形状、例えば直線移動に近似)を生成しオブジェクト空間に配置し、移動軌跡ボリュームと第2のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングし、移動軌跡ボリュームと第2のオブジェクトの描画結果に基づき、移動軌跡ボリュームと第2のオブジェクトの交差領域を検出する。
【0165】
ここで図8(A)〜(C)に示したように、移動軌跡ボリュームを構成するポリゴンうち仮想カメラに表面が向いている表面ポリゴンによって構成される表面オブジェクト332と、仮想カメラに裏面が向いている裏面ポリゴンによって構成される裏面オブジェクト334とを描画し、表面オブジェクト332と裏面オブジェクト334の描画された回数の異なる画素で構成される領域を交差領域340として検出するようにしてもよい。
【0166】
図10は第2の実施の形態の処理の一例について説明するためのフローチャート図である。
【0167】
ここでは第1のオブジェクト(移動オブジェクト)の移動軌跡に基づき移動軌跡ボリュームを生成し、移動軌跡ボリュームと第2のオブジェクト(地形オブジェクト)の交差領域を検出する場合の処理の流れについて説明する。
【0168】
第2の実施の形態では以下の処理を各フレーム毎に行う。なお常に行う必要はなく交差領域の検出が必要な場合のみ行うようにしてもよい。
【0169】
第1のオブジェクト(例えば移動オブジェクト)と第2のオブジェクト(例えば地形オブジェクト)の座標及び速度の初期値を設定する(ステップS310)。速度は移動するオブジェクトについて設定すればよいため、第1のオブジェクト(例えば移動オブジェクト)について速度を設定する。
【0170】
次に設定された速度に基づきオブジェクトを移動させ、座標値を更新する(ステップS320)。
【0171】
第1のオブジェクト(例えば移動オブジェクト)に関して、前回の位置及び今回の位置座標から移動軌跡ボリュームを作成する(ステップS330)
次に第2のオブジェクト(例えば地形オブジェクト)の背面等に仮想カメラを設置する(ステップS340)。
【0172】
次に第2のオブジェクトの深度値等の「距離」を深度バッファ(例えばZバッファ)へレンダリングする(ステップS350)。
【0173】
次にフレームバッファを黒などの適当な色で塗りつぶす(ステップS360)。
【0174】
次に第1のオブジェクト(例えば移動オブジェクト)の移動軌跡ボリュームを仮想カメラから見て表面のポリゴンに関してのみ、白色等のフレームバッファを塗りつぶした色と別の色で描画する(ステップS370)
次に第1のオブジェクト(例えば移動オブジェクト)の移動軌跡ボリュームを仮想カメラから見て裏面のポリゴンに関してのみ、フレームバッファを塗りつぶした色と同じ色で描画する(ステップS380)
次にフレームバッファに第1のオブジェクト(例えば移動オブジェクト)の色が塗られているか調べる(ステップS390)
そして第1のオブジェクト(例えば移動オブジェクト)の色が見つかった場合には、第1のオブジェクト(例えば移動オブジェクト)が第2のオブジェクト(例えば地形オブジェクト)と交差した時の処理を行う(ステップS400,S410)。
【0175】
また第1のオブジェクト(例えば移動オブジェクト)の色が見つからなかった場合には、第1のオブジェクト(例えば移動オブジェクト)が第2のオブジェクト(例えば地形オブジェクト)と交差しなかった時の処理を行う(ステップS400,S420)。
【0176】
そして交差領域の検出処理を継続する場合にはステップS320に戻って処理を繰り返す(ステップS430)。
【0177】
なおステップS310からS430までの処理は、ソフトウエアにより実現してもよいし、ハードウエアにより実現してもよいし、ソフトウエアとハードウエアの両方で実現してもよい。
【0178】
例えばレンダリング機能を有するハードウエアに対して、ソフトウエアから処理内容を特定するためのパラメータを設定して実現するようにしてもよい。
オブジェクトが交差したときの処理の一例(オブジェクトBをオブジェクトAで反射させる)。
【0179】
図11は、第1のオブジェクトと第2のオブジェクトが交差したときの処理の一例について説明するための図である。
【0180】
まず第2のオブジェクト(例えば地形オブジェクト)の位置マップを作成する処理を行う(ステップS510)。第2のオブジェクト(例えば地形オブジェクト)の位置マップは第2のオブジェクトのフレームバッファ上の各画素について、対応するワールド座標系の座標値を下記の式で色値に変換して作成する。
【0181】
赤=kx*ワールド座標のx成分+bx
緑=ky*ワールド座標のy成分+by
青=kz*ワールド座標のz成分+bz
ここでkx、ky、kz及びbx、by、bzは、ワールド座標が色の範囲に収まるよう調整する計数である。そして求めた色値をテクスチャ(位置マップ)にレンダリングする。レンダリングするスクリーン座標は例えば、オブジェクトに模様をつけるためのデカールテクスチャの座標値をx=U座標、y=V座標として計算するようにしてもよい(ステップS510)。
【0182】
次に第2のオブジェクト(例えば地形オブジェクト)の法線マップを作成する処理を行う(ステップS520)。第2のオブジェクト(例えば地形オブジェクト)の法線マップは、第2のオブジェクトのフレームバッファ上の各画素について、対応する法線ベクトルのxyz成分を下記の式で色値に変換して作成する。
【0183】
赤=法線ベクトルのx成分/2+0.5
緑=法線ベクトルのy成分/2+0.5
青=法線ベクトルのz成分/2+0.5
そして求めた色値を、テクスチャ(法線マップ)にレンダリングする。レンダリングする再のスクリーン座標は位置マップと同じ値を使用する。
【0184】
次に第2のオブジェクト(例えば地形オブジェクト)の背面等に仮想カメラを設置する(ステップS530)
次にテクスチャ座標マップを作成する処理を行う(ステップS540)。法線マップを作成する時のテクスチャ座標を、赤=U座標、緑=V座標として、テクスチャ座標を色に変換し別のテクスチャ(テクスチャ座標マップ)に第2のオブジェクトをレンダリングする。
【0185】
次に衝突判定の結果として得られるテクスチャについて、衝突をした部分(交差判定領域に対応した部分)のピクセル数を数える(ステップS550)。
【0186】
次にテクスチャ座標マップに関して、衝突判定から得られる部分(交差判定領域に対応した部分)について、テクスチャのピクセルの色を加算し、最後に衝突をしたピクセル数で割り、衝突した部分に関してテクスチャ座標の平均を求める(ステップS560)
次に得られたテクスチャ座標をU座標=赤、V座標=緑で数値に戻す。(ステップS570)。
【0187】
次に求められたテクスチャ座標から位置マップの値をサンプリングする(ステップS580)。
【0188】
次にサンプリングされた位置マップの色を下記の式でベクトル値に戻す(ステップS590)。
【0189】
ベクトルのx成分=(赤−bx)/kx
ベクトルのy成分=(緑−by)/ky
ベクトルのz成分=(青−bz)/kz
次に第1のオブジェクト(例えば移動オブジェクト)の位置を位置マップから求められた座標値(又はそこから計算で求められる位置)に移動する(ステップS600)。
【0190】
次に求められたテクスチャ座標から法線マップの値をサンプリングする(ステップS610)。
【0191】
次にサンプリングされた法線マップの色を下記の式でベクトル値に戻す(ステップS620)。
【0192】
法線ベクトルのx成分=2*赤−1
法線ベクトルのy成分=2*緑−1
法線ベクトルのz成分=2*青−1
次に得られた法線ベクトルとオブジェクトBの速度ベクトルから以下の公式に従って反射ベクトルrを求める(ステップS630)。
【0193】
r=2*(法線ベクトル、速度ベクトル)*法線ベクトル−速度ベクトル
次に第1のオブジェクト(例えば移動オブジェクト)の速度ベクトルを反射ベクトルに置き換える(ステップS640)。
【0194】
このように、衝突位置に応じて法線情報を取得できるように構成することで、オブジェクトの振る舞いを地面からの応答を使って調整することができる。
【0195】
また衝突位置に応じて地面の高さ情報を取得できるように構成することで、オブジェクトの振る舞いを地面からの応答を使って調整するようにしてもよい。
【0196】
4. ハードウェア構成
次に、本実施形態を実現できるハードウェアの構成の一例について図12を用いて説明する。
【0197】
メインプロセッサ900は、CD982(情報記憶媒体)に格納されたプログラム、通信インターフェース990を介して転送されたプログラム、或いはROM950(情報記憶媒体の1つ)に格納されたプログラムなどに基づき動作し、ゲーム処理、画像処理、音処理などの種々の処理を実行する。
【0198】
コプロセッサ902は、メインプロセッサ900の処理を補助するものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、オブジェクトを移動させたり動作(モーション)させるための物理シミュレーションに、マトリクス演算などの処理が必要な場合には、メインプロセッサ900上で動作するプログラムが、その処理をコプロセッサ902に指示(依頼)する。
【0199】
ジオメトリプロセッサ904は、座標変換、透視変換、光源計算、曲面生成などのジオメトリ処理を行うものであり、高速並列演算が可能な積和算器や除算器を有し、マトリクス演算(ベクトル演算)を高速に実行する。例えば、座標変換、透視変換、光源計算などの処理を行う場合には、メインプロセッサ900で動作するプログラムが、その処理をジオメトリプロセッサ904に指示する。
【0200】
データ伸張プロセッサ906は、圧縮された画像データや音データを伸張するデコード処理を行ったり、メインプロセッサ900のデコード処理をアクセレートする処理を行う。これにより、オープニング画面、インターミッション画面、エンディング画面、或いはゲーム画面などにおいて、MPEG方式等で圧縮された動画像を表示できるようになる。なお、デコード処理の対象となる画像データや音データは、ROM950、CD982に格納されたり、或いは通信インターフェース990を介して外部から転送される。
【0201】
描画プロセッサ910は、ポリゴンや曲面などのプリミティブ(プリミティブ面)で構成されるオブジェクトの描画(レンダリング)処理を高速に実行するものである。オブジェクトの描画の際には、メインプロセッサ900は、DMAコントローラ970の機能を利用して、オブジェクトデータを描画プロセッサ910に渡すとともに、必要であればテクスチャ記憶部924にテクスチャを転送する。すると、描画プロセッサ910は、これらのオブジェクトデータやテクスチャに基づいて、Zバッファなどを利用した隠面消去を行いながら、オブジェクトをフレームバッファ922に高速に描画する。また、描画プロセッサ910は、αブレンディング(半透明処理)、デプスキューイング、ミップマッピング、フォグ処理、バイリニア・フィルタリング、トライリニア・フィルタリング、アンチエリアシング、シェーディング処理なども行うことができる。そして、1フレーム分の画像がフレームバッファ922に書き込まれると、その画像はディスプレイ912に表示される。
【0202】
サウンドプロセッサ930は、多チャンネルのADPCM音源などを内蔵し、BGM、効果音、音声などの高品位のゲーム音を生成する。生成されたゲーム音は、スピーカ932から出力される。
【0203】
ゲームコントローラ942(レバー、ボタン、筺体、パッド型コントローラ又はガン型コントローラ等)からの操作データや、メモリカード944からのセーブデータ、個人データは、シリアルインターフェース940を介してデータ転送される。
【0204】
ROM950にはシステムプログラムなどが格納される。なお、業務用ゲームシステムの場合には、ROM950が情報記憶媒体として機能し、ROM950に各種プログラムが格納されることになる。なお、ROM950の代わりにハードディスクを利用するようにしてもよい。
【0205】
RAM960は、各種プロセッサの作業領域として用いられる。
【0206】
DMAコントローラ970は、プロセッサ、メモリ(RAM、VRAM、ROM等)間でのDMA転送を制御するものである。
【0207】
CDドライブ980は、プログラム、画像データ、或いは音データなどが格納されるCD982(情報記憶媒体)を駆動し、これらのプログラム、データへのアクセスを可能にする。
【0208】
通信インターフェース990は、ネットワークを介して外部との間でデータ転送を行うためのインターフェースである。この場合に、通信インターフェース990に接続されるネットワークとしては、通信回線(アナログ電話回線、ISDN)、高速シリアルバスなどを考えることができる。そして、通信回線を利用することでインターネットを介したデータ転送が可能になる。また、高速シリアルバスを利用することで、他の画像生成システムとの間でのデータ転送が可能になる。
【0209】
なお、本発明の各手段は、その全てを、ハードウェアのみにより実現(実行)してもよいし、情報記憶媒体に格納されるプログラムや通信インターフェースを介して配信されるプログラムのみにより実現してもよい。或いは、ハードウェアとプログラムの両方により実現してもよい。
【0210】
そして、本発明の各手段をハードウェアとプログラムの両方により実現する場合には、情報記憶媒体には、本発明の各手段をハードウェアを利用して実現するためのプログラムが格納されることになる。より具体的には、上記プログラムが、ハードウェアである各プロセッサ902、904、906、910、930等に処理を指示するとともに、必要であればデータを渡す。そして、各プロセッサ902、904、906、910、930等は、その指示と渡されたデータとに基づいて、本発明の各手段を実現することになる。
【0211】
図13(A)に、本実施形態を業務用ゲームシステムに適用した場合の例を示す。プレーヤは、ディスプレイ1100上に映し出されたゲーム画像を見ながら、レバー1102、ボタン1104等を操作してゲームを楽しむ。内蔵されるシステムボード(サーキットボード)1106には、各種プロセッサ、各種メモリなどが実装される。そして、本発明の各手段を実行するための情報(プログラム或いはデータ)は、システムボード1106上の情報記憶媒体であるメモリ1108に格納される。以下、この情報を格納情報と呼ぶ。
【0212】
図13(B)に、本実施形態を家庭用のゲームシステムに適用した場合の例を示す。プレーヤはディスプレイ1200に映し出されたゲーム画像を見ながら、ゲームコントローラ1202、1204を操作してゲームを楽しむ。この場合、上記格納情報は、本体システムに着脱自在な情報記憶媒体であるCD1206、或いはメモリカード1208、1209等に格納されている。
【0213】
図13(C)に、ホスト装置1300と、このホスト装置1300とネットワーク1302(LANのような小規模ネットワークや、インターネットのような広域ネットワーク)を介して接続される端末1304-1〜1304-nとを含むシステムに本実施形態を適用した場合の例を示す。この場合、上記格納情報は、例えばホスト装置1300が制御可能な磁気ディスク装置、磁気テープ装置、メモリ等の情報記憶媒体1306に格納されている。端末1304-1〜1304-nが、スタンドアロンでゲーム画像、ゲーム音を生成できるものである場合には、ホスト装置1300からは、ゲーム画像、ゲーム音を生成するためのゲームプログラム等が端末1304-1〜1304-nに配送される。一方、スタンドアロンで生成できない場合には、ホスト装置1300がゲーム画像、ゲーム音を生成し、これを端末1304-1〜1304-nに伝送し端末において出力することになる。
【0214】
なお、図13(C)の構成の場合に、本発明の各手段を、ホスト装置(サーバ)と端末とで分散して実行するようにしてもよい。また、本発明の各手段を実行するための上記格納情報を、ホスト装置(サーバ)の情報記憶媒体と端末の情報記憶媒体に分散して格納するようにしてもよい。
【0215】
またネットワークに接続する端末は、家庭用ゲームシステムであってもよいし業務用ゲームシステムであってもよい。そして、業務用ゲームシステムをネットワークに接続する場合には、業務用ゲームシステムとの間で情報のやり取りが可能であるとともに家庭用ゲームシステムとの間でも情報のやり取りが可能な携帯型情報記憶装置(メモリカード、携帯型ゲーム装置)を用いることが望ましい。
【0216】
なお本発明は、上記実施形態で説明したものに限らず、種々の変形実施が可能である。
【0217】
また、本発明のうち従属請求項に係る発明においては、従属先の請求項の構成要件の一部を省略する構成とすることもできる。また、本発明の1の独立請求項に係る発明の要部を、他の独立請求項に従属させることもできる。
【0218】
たとえは、本実施の形態では第1のオブジェクトが移動オブジェクト、第2のオブジェクトが地形オブジェクトで有る場合を例にとり説明したがこれに限られない。第1のオブジェクトと第2のオブジェクトの両方が移動するオブジェクトである場合でもよい。
【0219】
また本実施の形態では、仮想カメラが地形オブジェクト(第2のオブジェクト)の下方から地形オブジェクトや移動オブジェクトをとらえる場合を例にとり説説明したが、仮想カメラの位置はこれに限られない。たとえばいずれかのオブジェクトの内部に存在する場合でもよい。ここで移動オブジェクトの内部に仮想カメラを配置し、仮想カメラの視線方向を移動方向に向けるようにしてもよい。
【0220】
また本実施の形態では交差判定をヒットチェックに用いる場合や、交差領域を検出して、衝突位置や衝突後の移動オブジェクトの反射ベクトルを演算する場合を例にとり説明したがこれに限られない。
【0221】
例えば交差領域の「面積」に応じて処理内容を決定したり、処理内容を変化させるようにしてもよい。
【0222】
例えば壁をつき抜けている途中は一部分しかレンダリングされないので、画面上の画素数は減少する。この減少の具合に応じて弾が壊れる途中の演出を段階的に切り替える画像を生成するようにしてもよい。
【0223】
また、本発明は種々のゲーム(格闘ゲーム、シューティングゲーム、ロボット対戦ゲーム、スポーツゲーム、競争ゲーム、ロールプレイングゲーム、音楽演奏ゲーム、ダンスゲーム等)に適用できる。
【0224】
また本発明は、業務用ゲームシステム、家庭用ゲームシステム、多数のプレーヤが参加する大型アトラクションシステム、シミュレータ、マルチメディア端末、ゲーム画像を生成するシステムボード等の種々の画像生成システム(ゲームシステム)に適用できる。
【図面の簡単な説明】
【図1】本実施形態の画像生成システム(例えばゲームシステム)の機能ブロック図の一例である。
【図2】図2(A)(B)は、第1の実施の形態の特徴について説明するための図である。
【図3】図3(A)(B)は、第1のオブジェクトと第2のオブジェクトが接触していない状態について説明するための図である。
【図4】図4(A)(B)は、第1のオブジェクトが第2のオブジェクトを貫通した後の状態について説明するための図である。
【図5】第1の実施の形態の処理の一例について説明するためのフローチャート図である。
【図6】第1の実施の形態の処理の他の一例について説明するためのフローチャート図である。
【図7】第2の実施の形態の特徴について説明するための図である。
【図8】図8(A)〜(C)は、移動軌跡ボリュームの設定処理について説明するための図である。
【図9】図9(A)〜(C)は、交差領域検出処理について説明するための図である。
【図10】第2の実施の形態の処理の一例について説明するためのフローチャート図である。
【図11】第1のオブジェクトと第2のオブジェクトが交差したときの処理の一例について説明するための図である。
【図12】本実施形態を実現できるハードウェアの構成の一例を示す図である。
【図13】図13(A)、(B)、(C)は、本実施形態が適用される種々の形態のシステムの例を示す図である。
【符号の説明】
100 処理部
110 ゲーム処理部
120 交差検出部
122 交差領域検出部
124 移動軌跡ボリューム設定部
130 画像生成部
132 ジオメトリ処理部
140 描画部
150 音生成部
160 操作部
170 記憶部
172 メインメモリ(主記憶部)
174 フレームバッファ(描画バッファ)
180 情報記憶媒体
190 表示部
192 音出力部
194 携帯型情報記憶装置
196 通信部
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an image generation system, a program, and an information storage medium.
[0002]
[Background]
Conventionally, there has been known an image generation system (for example, a game system) that generates an image that can be viewed from a virtual camera (a given viewpoint) in an object space that is a virtual three-dimensional space. As popular.
[0003]
When constructing various game systems such as shooting games and racing games using such an image generation system, it may be necessary to check hits between objects in the object space and determine intersection positions in various scenes. is there.
[0004]
[Patent Document 1]
Japanese Patent Laid-Open No. 2003-6671
[0005]
[Problems to be solved by the invention]
Conventionally, hit check between objects and determination of an intersection position are performed by three-dimensional calculation or two-dimensional calculation in which the shape of the object is added to the arrangement position of the object space and the arrangement position. If more accurate hit check and intersection position determination are to be performed in such a case, it is necessary to more accurately reflect the shape of the object in the determination calculation, and the calculation load increases.
[0006]
In game devices, it is necessary to perform real-time hit check and intersection determination that reflect the position of interactively changing objects using limited hardware resources. It is desirable to determine the position.
[0007]
The present invention has been made in view of the above problems, and an object of the present invention is to provide an image generation system, a program, and a program that can perform hit check and intersection position determination accurately and with low calculation load. An object is to provide an information storage medium.
[0008]
[Means for Solving the Problems]
(1) The present invention is an image generation system for generating an image,
Rendering means for rendering an image viewed from a virtual camera in which a first object and a second object in an object space are arranged at given positions;
An intersection detection means for detecting the presence or absence of an intersection between the first object and the second object based on the presence or absence of the drawing of the first object or the second object;
It is characterized by including.
[0009]
Further, the program according to the present invention is a program executable by a computer (a program embodied in an information storage medium or a carrier wave), and causes the computer to realize the above means (makes the computer function as the above means). And An information storage medium according to the present invention is an information storage medium readable (usable) by a computer, and includes a program for causing the computer to realize the above means (functioning the computer as the above means). It is said.
[0010]
Here, the object space refers to a virtual three-dimensional space in which an object whose shape is specified by a definition point (such as a vertex of a polygon or a control point of a free-form surface) is arranged.
[0011]
Further, at least one of the first object and the second object is an object that is currently moving or possibly moving.
[0012]
Rendering is a process of drawing an object arranged in the object space in a drawing buffer by performing, for example, coordinate conversion, hidden surface removal, shading, and the like.
[0013]
Here, the rendering means performs, for example, perspective transformation coordinate transformation, surface erasing, and the like, and draws an image of the first object and the second object in the object space viewed from a virtual camera arranged at a given position (drawing buffer ( Draw in the frame buffer etc.
[0014]
In addition, since it is sufficient that the part necessary for the intersection determination between the first object and the second object is associated with the rendering area of the drawn object, the coordinate conversion used for rendering needs to be limited to the projection projection. In addition, it is possible to determine the touched part through parallel projection, non-Euclidean coordinate transformation, and piecewise rendering.
[0015]
Whether or not rendering or drawing of the first object or the second object is performed may be realized by software, may be realized by hardware, or may be realized by both software and hardware. . For example, a hardware having a rendering function may be realized by setting parameters for specifying processing contents from software.
[0016]
The virtual camera is preferably set at a predetermined position where at least one of the first object and the second object is in the viewing angle. For example, a virtual camera may be arranged inside or on the back side of the first object or the second object.
[0017]
For example, when the first object or the second object is drawn, it may be determined that there is an intersection between the first object and the second object, and vice versa.
[0018]
According to the present invention, it is possible to detect the presence / absence of an intersection between the first object and the second object based on the presence / absence of drawing of the first object or the second object obtained as a rendering result.
[0019]
Therefore, since the 3D hit check calculation and the 2D hit check calculation in which the object shape is added to the arrangement position of the object in the object space and the arrangement shape are not required, the load of the hit check calculation can be greatly reduced.
[0020]
In particular, according to the present invention, even when the shape of the object is complicated, it is possible to perform an intersection case that accurately reflects the shape of the object, so that an accurate intersection determination can be performed.
(2) The present invention is an image generation system for generating an image,
Rendering means for rendering an image viewed from a virtual camera in which a first object and a second object in an object space are arranged at given positions;
Means for detecting the number of drawn pixels of the first object or the second object based on the rendering result;
Cross detection means for detecting the presence or absence of a cross between the first object and the second object based on the detected number of drawn pixels of the first object or the second object;
It is characterized by including.
[0021]
Further, the program according to the present invention is a program executable by a computer (a program embodied in an information storage medium or a carrier wave), and causes the computer to realize the above means (makes the computer function as the above means). And An information storage medium according to the present invention is an information storage medium readable (usable) by a computer, and includes a program for causing the computer to realize the above means (functioning the computer as the above means). It is said.
[0022]
Here, the object space refers to a virtual three-dimensional space in which an object whose shape is specified by a definition point (such as a vertex of a polygon or a control point of a free-form surface) is arranged.
[0023]
Further, at least one of the first object and the second object is an object that is currently moving or possibly moving.
[0024]
Rendering is a process of drawing an object arranged in the object space in a drawing buffer by performing, for example, coordinate conversion, hidden surface removal, shading, and the like.
[0025]
Here, the rendering means performs, for example, perspective transformation coordinate transformation, surface erasing, and the like, and draws an image of the first object and the second object in the object space viewed from a virtual camera arranged at a given position (drawing buffer ( Draw in the frame buffer etc.
[0026]
In addition, since it is sufficient that the part necessary for the intersection determination between the first object and the second object is associated with the rendering area of the drawn object, the coordinate conversion used for rendering needs to be limited to the projection projection. In addition, it is possible to determine the touched part through parallel projection, non-Euclidean coordinate transformation, and piecewise rendering.
[0027]
The detection of the number of drawn pixels of the first object or the second object based on the rendering result may be realized by software, hardware, or both software and hardware. May be. For example, a hardware having a rendering function may be realized by setting parameters for specifying processing contents from software.
[0028]
The virtual camera is preferably set at a predetermined position where at least one of the first object and the second object is in the viewing angle. For example, a virtual camera may be arranged inside or on the back side of the first object or the second object.
[0029]
First, the threshold value of the first object or the second object is determined, the number of drawn pixels of the detected first object or the second object is compared with the threshold value, and the first value is determined based on the comparison result. It is possible to detect whether or not the object and the second object intersect.
[0030]
For example, it may be determined that a collision has occurred when the number of drawn pixels of the first object or the second object is greater than or equal to a threshold value.
[0031]
In this case, it is determined that there is no collision when the first object grazes the second object (in this case, the number of drawn pixels of the first object is 1 or more but smaller than the threshold value). I can do it.
[0032]
According to the present invention, since the presence or absence of the intersection of the first object and the second object can be detected based on the number of drawing pixels of the first object or the second object obtained as a rendering result, Since the 3D hit check calculation and the 2D hit check calculation in which the object shape is added to the object arrangement position and the arrangement position are not necessary, the load of the hit check calculation can be greatly reduced.
[0033]
In particular, according to the present invention, even when the shape of the object is complicated, it is possible to perform an intersection case that accurately reflects the shape of the object, so that it is possible to perform an accurate intersection determination.
[0034]
In recent image generation systems, hardware having a function of acquiring a drawing area of a rendered object at high speed is installed, so that the number of drawing pixels of the first object or the second object is acquired using the function. It may be. In this way, a complicated hit check operation can be performed at high speed by using the drawing area acquisition function of the hardware.
(3) The image generation apparatus of the present invention
The intersection detection means includes
The initial value set in relation to the number of drawing pixels or the presence / absence of drawing of at least one of the first object and the second object, the number of drawing pixels of the detected first object or second object, or the number of drawing The presence or absence is compared, and the presence or absence of the intersection of the first object and the second object is detected based on the comparison result.
[0035]
For example, the number of drawn pixels of at least one of the first object and the second object is set to 0 or no drawing is set as an initial value, and the number of drawn pixels of the detected first object or second object is other than 0. Alternatively, when there is drawing, it may be determined that there is an intersection between the first object and the second object, and the number of drawing pixels of at least one of the first object and the second object is one or more. Alternatively, when drawing is set as an initial value and the number of drawn pixels of the detected first object or second object is 0 or no drawing is detected, the intersection of the first object and the second object You may make it determine with existence.
(4) The image generation apparatus of the present invention includes:
The intersection detection means includes
The number of drawn pixels of the first object or the second object detected at a given time t or the presence or absence of drawing and the number of drawn pixels of the first object or the second object detected at a given time t + Δt or Based on the presence / absence of drawing, a change in the number of drawing pixels or the presence / absence of drawing of at least one of the first object and the second object is detected, and when there is a change, the intersection of the first object and the second object Crossing detection means for determining that the
[0036]
According to the present invention, when a change in the number of drawn pixels or the presence / absence of drawing of the first object or the second object is detected during a given time t to t + Δt, the given time t to t + Δt It can be determined that there is an intersection between the first object and the second object in between.
(5) The present invention is an image generation system for generating an image,
A movement trajectory volume setting means for generating a movement trajectory volume based on the movement of the first object from a given time t to t + Δt and arranging the movement trajectory volume in the object space;
Rendering means for rendering an image viewed from a virtual camera in which a movement trajectory volume and a second object are arranged at given positions;
Crossing area detecting means for detecting a crossing area of the moving trajectory volume and the second object based on at least one drawing area of the moving trajectory volume and the second object;
It is characterized by including.
[0037]
Further, the program according to the present invention is a program executable by a computer (a program embodied in an information storage medium or a carrier wave), and causes the computer to realize the above means (makes the computer function as the above means). And An information storage medium according to the present invention is an information storage medium readable (usable) by a computer, and includes a program for causing the computer to realize the above means (functioning the computer as the above means). It is said.
[0038]
Here, the object space refers to a virtual three-dimensional space in which an object whose shape is specified by a definition point (such as a vertex of a polygon or a control point of a free-form surface) is arranged.
[0039]
Here, the first object is an object that is currently moving or possibly moving. The second object may be moving or may be stationary.
[0040]
The movement trajectory volume is a space (volume (three-dimensional) including all three-dimensional movement trajectories) occupied by the first object before and after movement and during movement. For example, the vertices before and after the movement of the first object may be generated by connecting with a movement locus (movement vector) or a straight line.
[0041]
Rendering is a process of drawing an object arranged in the object space in a drawing buffer by performing, for example, coordinate conversion, hidden surface removal, shading, and the like.
[0042]
Here, the rendering means performs, for example, perspective transformation coordinate transformation, surface erasure, and the like, and draws an image viewed from the virtual camera in which the movement trajectory volume and the second object in the object space are arranged at given positions. Draw in a buffer.
[0043]
In addition, since it is only necessary that the portion necessary for the intersection determination of the movement trajectory volume and the second object be associated with the rendered region of the drawn object, it is necessary to limit the coordinate conversion used for rendering to the projection projection. In addition, it is also possible to determine the touched part through parallel projection, non-Euclidean coordinate transformation, or piecewise rendering.
[0044]
The detection of the rendering, the movement trajectory volume, and the drawing area of at least one of the second objects may be realized by software, may be realized by hardware, or may be realized by both software and hardware. May be. For example, a hardware having a rendering function may be realized by setting parameters for specifying processing contents from software.
[0045]
The virtual camera is preferably set at a predetermined position where at least one of the movement trajectory volume and the second object falls within the viewing angle. For example, a virtual camera may be arranged inside or behind the movement locus volume or the second object.
[0046]
For example, a portion in a predetermined state in the drawing area of the movement trajectory volume may be detected as an intersection area.
[0047]
According to the present invention, it is possible to detect the presence / absence of an intersection between the first object and the second object based on at least one drawing area of the movement trajectory volume and the second object obtained as a rendering result.
[0048]
Therefore, since the 3D hit check calculation and the 2D hit check calculation in which the object shape is added to the arrangement position of the object in the object space and the arrangement shape are not required, the load of the hit check calculation can be greatly reduced.
[0049]
In particular, according to the present invention, even when the shape of the object is complicated, it is possible to perform an intersection case that accurately reflects the shape of the object, so that an accurate intersection determination can be performed.
[0050]
Further, since the detected intersection area can be associated with the second object, the intersection position can be detected by associating the position with the second object. As described above, according to the present invention, not only the intersection determination but also the intersection position can be detected.
(6) The image generation apparatus of the present invention includes:
The rendering means includes
Of the polygons that make up the movement trajectory volume, draw the front polygon that faces the virtual camera and the back polygon that faces the virtual camera,
Crossing area detection means
An area composed of pixels with different numbers of times of drawing the front polygon and the back polygon is detected as an intersection area.
[0051]
The rendering means draws a front surface object composed of a front surface polygon facing the virtual camera and a back surface object composed of a back surface polygon facing the virtual camera among the polygons constituting the movement trajectory volume. Then, the intersecting area detecting means may detect an area composed of pixels having different numbers of times of drawing the front surface object and the back surface object as the intersecting area.
(7) The image generation apparatus of the present invention includes:
And means for calculating an intersection position of the first object and the second object based on the detected intersection area.
[0052]
Further, since the detected intersection area can be associated with the second object, the intersection position can be detected by matching the position with the second object.
[0053]
For example, a map table or texture necessary for associating the second object with the intersection area may be prepared in advance, and the intersection position may be determined from the detected intersection area using the map table or texture.
(8) The image generation apparatus of the present invention includes:
It includes a game calculation means for performing hit check determination based on the calculated intersection position or presence / absence of intersection between the first object and the second object, and performing game calculation processing based on the determination result.
[0054]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, preferred embodiments of the present invention will be described with reference to the drawings.
[0055]
In addition, this embodiment demonstrated below does not limit the content of this invention described in the claim at all. Further, not all of the configurations described in the present embodiment are essential as a solution means of the present invention.
[0056]
1. Constitution
FIG. 1 shows an example of a functional block diagram of an image generation system (for example, a game system) of the present embodiment.
[0057]
In this figure, the present embodiment may include at least the processing unit 100 (or may include the processing unit 100 and the storage unit 170, or the processing unit 100, the storage unit 170, and the information storage medium 180), and other blocks. (For example, the operation unit 160, the display unit 190, the sound output unit 192, the portable information storage device 194, and the communication unit 196) can be arbitrary constituent elements.
[0058]
Here, the processing unit 100 performs various processing such as control of the entire system, instruction instruction to each block in the system, game processing, image processing, or sound processing, and functions thereof are various processors ( CPU, DSP, etc.) or hardware such as ASIC (gate array, etc.) or a given program (game program).
[0059]
The operation unit 160 is for a player to input operation data, and the function can be realized by hardware such as a lever, a button, and a housing.
[0060]
The storage unit 170 includes a main memory (main storage unit and the like) 172, a frame buffer (drawing buffer and the like) 174, and the like, and serves as a work area such as the processing unit 100 and the communication unit 196. It can be realized by hardware.
[0061]
An information storage medium (storage medium usable by a computer) 180 stores information such as programs and data, and functions thereof are an optical disk (CD, DVD), a magneto-optical disk (MO), a magnetic disk, and a hard disk. It can be realized by hardware such as a magnetic tape or a memory (ROM). The processing unit 100 performs various processes of the present invention (this embodiment) based on information stored in the information storage medium 180. That is, the information storage medium 180 stores information (program or data) for executing the means of the present invention (this embodiment) (particularly, the blocks included in the processing unit 100).
[0062]
Part or all of the information stored in the information storage medium 180 is transferred to the storage unit 170 when the system is powered on. Information stored in the information storage medium 180 includes a program for performing the processing of the present invention, image data, sound data, shape data of display objects, table data, list data, and information for instructing the processing of the present invention. And at least one piece of information for performing processing in accordance with the instruction.
[0063]
The display unit 190 outputs an image generated according to the present embodiment, and the function thereof can be realized by hardware such as a CRT, LCD, or HMD (head mounted display).
[0064]
The sound output unit 192 outputs the sound generated by the present embodiment, and its function can be realized by hardware such as a speaker.
[0065]
The portable information storage device 194 stores player personal data, save data, and the like. As the portable information storage device 194, a memory card, a portable game device, and the like can be considered.
[0066]
The communication unit 196 performs various controls for communicating with the outside (for example, a host device or other image generation system), and functions as hardware such as various processors or a communication ASIC. Or by a program.
[0067]
The program or data for executing the means of the present invention (this embodiment) may be distributed from the information storage medium of the host device (server) to the information storage medium 180 via the network and the communication unit 196. Good. Use of such an information storage medium of the host device (server) is also included in the scope of the present invention.
[0068]
The processing unit 100 includes a game processing unit 110, an intersection detection processing unit (shadow volume processing unit) 120, an image generation unit 130, and a sound generation unit 150.
[0069]
Here, the game processing unit 110 receives a coin (price) reception process, various mode setting processes, a game progress process, a selection screen setting process, the position and rotation angle (X, Processing for obtaining the rotation angle around the Y or Z axis), processing for moving the object (motion processing), processing for obtaining the viewpoint position (virtual camera position) and line-of-sight angle (virtual camera rotation angle), map object, etc. Various game processes such as a process for placing objects in the object space, a hit check process, a process for calculating game results (results, results), a process for multiple players to play in a common game space, or a game over process Operation data from the operation unit 160, personal data from the portable information storage device 194, storage data , Carried out on the basis of a game program.
[0070]
The game processing unit 110 includes an intersection detection unit 120, an intersection region detection unit 122, and a movement trajectory volume setting unit 124.
[0071]
The intersection detection unit 120 may detect whether or not the first object and the second object intersect based on whether or not the first object or the second object is drawn.
[0072]
Further, based on the detected number of drawn pixels of the first object or the second object, the presence / absence of an intersection between the first object and the second object may be detected.
[0073]
Also, an initial value set in relation to the number of drawing pixels of at least one of the first object and the second object or the presence or absence of drawing, and the number of drawing pixels or drawing of the detected first object or second object And the presence or absence of the intersection of the first object and the second object may be detected based on the comparison result.
[0074]
Also, the number of drawn pixels of the first object or the second object detected at a given time t, or the presence or absence of drawing, and the number of drawn pixels of the first object or the second object detected at a given time t + Δt Alternatively, based on the presence / absence of drawing, a change in the number of drawing pixels or the presence / absence of drawing of at least one of the first object and the second object is detected, and if there is a change, the first object and the second object Cross detection means for determining that there is a cross may be included.
[0075]
The intersection area detection unit 122 may detect an intersection area between the movement locus volume and the second object based on at least one drawing area of the movement locus volume and the second object.
[0076]
For example, an area composed of pixels with different numbers of times of drawing the front polygon and the back polygon may be detected as an intersection area.
[0077]
The movement trajectory volume setting unit 124 may generate a movement trajectory volume based on the movement of the first object from a given time t to t + Δt and set the movement trajectory volume to be arranged in the object space.
[0078]
In addition, the game processing unit 110 functions as means for calculating the intersection position of the first object and the second object based on the detected intersection area.
[0079]
Further, the game processing unit 110 may perform hit check determination based on the calculated intersection position or presence / absence of intersection between the first object and the second object, and may perform game calculation processing based on the determination result.
[0080]
The image generation unit 130 performs various types of image processing in accordance with instructions from the game processing unit 110, for example, generates an image that can be seen from a virtual camera (viewpoint) in the object space, and outputs the generated image to the display unit 190. The image generation unit 130 functions as a rendering unit.
[0081]
The image generation unit 130 functions as a rendering unit that renders an image viewed from a virtual camera in which the first object and the second object in the object space are arranged at given positions.
[0082]
Further, it may function as a means for detecting the number of drawn pixels of the first object or the second object based on the rendering result.
[0083]
Further, an image viewed from a virtual camera in which the movement trajectory volume and the second object are arranged at given positions may be rendered.
[0084]
Furthermore, out of the polygons constituting the movement trajectory volume, a front surface polygon that faces the virtual camera and a back surface polygon that faces the virtual camera may be drawn.
[0085]
The sound generation unit 150 performs various types of sound processing in accordance with instructions from the game processing unit 110, generates a sound such as BGM, sound effect, or sound, and outputs the sound to the sound output unit 192.
[0086]
Note that all of the functions of the game processing unit 110, the intersection detection unit 120, the intersection region detection unit 122, the movement locus volume setting unit 124, the image generation unit 130, and the sound generation unit 150 may be realized by hardware. All of these may be realized by a program. Alternatively, it may be realized by both hardware and a program.
[0087]
The image generation unit 130 includes a geometry processing unit (three-dimensional calculation unit) 132 and a drawing unit (rendering unit) 140.
[0088]
Here, the geometry processing unit 132 performs various types of geometry processing (three-dimensional calculation) such as coordinate transformation, clipping processing, perspective transformation, or light source calculation. In this embodiment, the object data (after the perspective transformation) after the geometry processing (object vertex coordinates, vertex texture coordinates, luminance data, etc.) is stored in the main storage unit 172 of the storage unit 170 and saved. The
[0089]
The drawing unit 140 draws an object in the drawing buffer 174 based on the object data after geometry processing (after perspective transformation) and the texture stored in the storage unit 170. As a result, an image viewed from the virtual camera (viewpoint) is drawn (generated) in the object space in which the object moves.
[0090]
Note that the drawing unit 140 uses the model information of the contents changed by the intersection detection process for the intersection (overlapping part) with a given object set to be affected by the volume object, or the intersection The rendering process is performed by the rendering technique of the content changed by the partial detection process.
[0091]
Note that the image generation system of the present embodiment may be a system dedicated to the single player mode in which only one player can play, or not only the single player mode but also a multiplayer mode in which a plurality of players can play. The system may also be provided.
[0092]
Further, when a plurality of players play, game images and game sounds to be provided to the plurality of players may be generated using one terminal, or connected via a network (transmission line, communication line) or the like. Alternatively, it may be generated using a plurality of terminals.
[0093]
2. First embodiment
2A and 2B are diagrams for explaining the features of the first embodiment.
[0094]
For example, when considering a scene in which a bullet 320 (first object) is shot toward the ground 310 (second object), attention is paid to the viewpoint 330 from the back side of the ground 310 (second object). Once the ground 310 (second object) is drawn, the z-buffer is used to draw the bullet 320 (first object) and the number of pixels to be drawn is counted.
[0095]
For example, as shown in FIG. 2A, if the bullet 320 (first object) does not penetrate, rendering from the back side is not performed, so the number of drawing is zero. On the other hand, as shown in FIG. 2B, when a bullet is drawn (that is, when the number of pixels to be drawn is not 0), the bullet has penetrated, so that the bullet is exploded or a landing point is produced. Can be used as a trigger.
[0096]
Here, for example, the case where rendering is performed from the viewpoint 330 viewed from the back side of the ground 310 (second object) has been described as an example, but the present invention is not limited thereto.
[0097]
In addition, as for the part necessary for the intersection determination between the ground 310 (second object) and the bullet 320 (first object), it is only necessary to have correspondence with the rendering area of the drawn object, so the coordinates used for rendering It is not necessary to limit the transformation to projective projection, and it is also possible to determine the touched part through parallel projection, non-Euclidean coordinate transformation, and piecewise rendering.
[0098]
In recent image generation systems, hardware having a function of acquiring the number of drawn pixels of a rendered object at high speed is installed. For example, using this function, the drawing pixel number of the bullet 320 (first object) is acquired, and whether or not there is a collision is determined based on whether the acquired drawing number of the bullet 320 (first object) is 0 or 1 or more. I can do it.
[0099]
For example, if a threshold value of the number of drawn pixels serving as a reference for the presence / absence of a collision is determined, and there is a collision when the number of drawn pixels of the detected bullet 320 (first object) is equal to or greater than the threshold value, You may make it determine. In this case, for example, when the bullet 320 (first object) grazes the ground 310 (second object) or the like (in this case, the number of drawn pixels of the bullet 320 (first object) is 1 or more. Can be determined as no collision.
[0100]
As a result, it is possible to cause a game behavior or a state change regarding an object (for example, the bullet 320 or the ground 310) drawn.
[0101]
Next, a specific intersection determination process between the first object and the second object existing in the object space will be described.
[0102]
3A and 3B are diagrams for explaining a state in which the first object and the second object are not in contact with each other. FIG. 3A shows the state of the first object 210, the second object 220, and the virtual camera 230 in the three-dimensional space, and FIG. 3B shows the state from the virtual camera 230 arranged at a given position. It is a figure showing the rendering result 240 of the seen image.
[0103]
Here, the first object 220 is a moving object, and the second object 220 is a terrain object.
[0104]
As shown in FIG. 3A, the virtual camera 230 is arranged so as to capture a terrain object (second object 220) from below the ground. For this reason, when the moving object (first object 210) is behind the terrain object (second object 220) when viewed from the virtual camera 230, the moving object (first object 210) is removed from the virtual camera 230. Since it is not visible, it is not drawn. Therefore, when an image viewed from the virtual camera 230 in which the moving object (first object 210) and the terrain object (second object 220) are arranged at given positions is rendered, the moving object moves as shown in FIG. The object (first object 210) is not drawn. That is, the number of drawing pixels of the moving object (first object 210) is zero.
[0105]
4A and 4B are diagrams for explaining a state after the first object has penetrated the second object. FIG. 4A shows the state of the first object 210, the second object 220, and the virtual camera 230 in a three-dimensional space, and FIG. 4B shows the state from the virtual camera 230 arranged at a given position. It is a figure showing the rendering result of the seen image.
[0106]
As shown in FIG. 4A, the virtual camera 230 is arranged so as to catch a terrain object (second object 220) from under the ground. Therefore, when the moving object (first object 210) is in front of the terrain object (second object 220) when viewed from the virtual camera 230, the moving object (first object 210 ′) is the virtual camera 230. Because it can be seen from, it is drawn. Accordingly, when an image viewed from the virtual camera 230 in which the moving object (first object 210 ′) and the terrain object (second object 220) are arranged at a given position is rendered, it is indicated by 242 in FIG. 4B. Thus, the moving object (first object 210) is drawn. That is, the number of drawing pixels of the moving object (first object 210) is not 0 (or 1 or more).
[0107]
Accordingly, by obtaining the drawing pixel number of the moving object (first object 210), it is possible to determine the intersection of the moving object (first object 210) and the terrain object (second object 220).
[0108]
In the first embodiment, an image viewed from the virtual camera 230 in which the first object 210 and the second object 220 in the object space are arranged at given positions is rendered, and the first object 210 or the second object is rendered. Whether or not the first object 210 and the second object 220 intersect is detected based on whether or not the object 220 is drawn.
[0109]
As described with reference to FIGS. 3A and 3B and FIGS. 4A and 4B, the first object 210 (moving object) and the second object 220 (terrain object) are based on whether or not the moving object is drawn in each frame. ) Is detected.
[0110]
For example, when a moving object (first object 210) not drawn at a given time t is drawn at time t + Δt, the moving object (first object 210) and the terrain object (second object 220) are drawn. It may be determined that the two have crossed.
[0111]
For example, when the virtual camera is on the ground, the moving object (first object 210) drawn at a given time t is not drawn at the time t + Δt, and the moving object (first object 210) is drawn. It may be determined that the object 210) and the terrain object (second object 220) intersect.
[0112]
In the first embodiment, an image viewed from the virtual camera 230 in which the first object 210 and the second object 220 in the object space are arranged at given positions is rendered, and the drawn object (for example, the first object 210 The number of pixels of the second object 220) is detected, and the presence / absence of intersection of the first object 210 and the second object 220 is detected based on the detected number of pixels of the drawing object.
[0113]
As described in FIGS. 3A and 3B and FIGS. 4A and 4B, the drawing pixel number of the moving object (first object 210) in each frame is acquired, and crossing is performed based on the change in the drawing pixel number. Judgment can be made.
[0114]
For example, when the number of drawn pixels of a moving object (first object 210) that was 0 at a given time t becomes 1 or more at time t + Δt, the moving object (first object 210) and the terrain object ( It may be determined that the second object 220) intersects.
[0115]
For example, when the virtual camera is on the ground and the number of drawn pixels of the moving object (first object 210) that is 1 or more at a given time t becomes 0 at time t + Δt, It may be determined that the moving object (first object 210) and the terrain object (second object 220) intersect.
[0116]
Thus, based on the number of pixels of the drawing object detected at the given time t and the number of pixels of the drawing object detected at the given time t + Δt, drawing of at least one of the first object and the second object is performed. It is possible to detect the presence or absence of a pixel or a change in the number of drawn pixels, and to detect the presence or absence of an intersection between the first object and the second object based on the detection result.
[0117]
In the intersection determination process, the initial value set in relation to the number of drawing pixels of at least one of the first object and the second object is compared with the number of pixels of the detected drawing object, and the comparison result is obtained. Based on this, the presence / absence of an intersection between the first object and the second object may be detected.
[0118]
For example, as shown in FIGS. 3A, 3B, and 4A, 4B, when the virtual camera 230 is arranged so as to capture a terrain object (second object 220) from below the ground, If the initial value set in relation to the drawing pixel number of the moving object (first object 210) is set to 0 and the drawing object number of the moving object (first object 210) is not zero, there is an intersection. You may make it judge.
[0119]
FIG. 5 is a flowchart for explaining an example of processing according to the first embodiment.
[0120]
Here, in relation to the presence / absence of drawing of the first object (or the number of drawing pixels), the initial value is no drawing (or the number of drawing pixels is 0), and whether or not the first object is drawn (or the number of pixels) ), The initial value and the detection result are compared, and based on the comparison result, the flow of processing when detecting the presence or absence of the intersection of the first object and the second object will be described.
[0121]
In the first embodiment, the following processing is performed for each frame. Note that this need not always be performed, and may be performed only when intersection determination is necessary.
[0122]
The initial values of the coordinates and speed of the first object (for example, moving object) and the second object (for example, terrain object) are set (step S10). Since the speed may be set for a moving object, the speed is set for a first object (for example, a moving object).
[0123]
Next, the object is moved based on the set speed (step S12).
[0124]
Next, a virtual camera is installed on the back surface of the second object (for example, a terrain object) (step S20).
[0125]
Next, the “distance” such as the depth value of the second object is rendered in a depth buffer (eg, Z buffer) (step S30).
Next, the frame buffer is filled with an appropriate color such as black (step S40).
Next, the first object (for example, a moving object) is drawn in a color different from the color in which the frame buffer such as white is filled (step S50).
[0126]
Next, it is checked whether the color of the first object (for example, moving object) is painted on the frame buffer (step S60).
When the color of the first object (for example, moving object) is found, the processing when the first object (for example, moving object) is in front of the second object (for example, terrain object) (steps S70 and S80). )I do. The processing when the first object (for example, moving object) is in front of the second object (for example, terrain object) is, for example, that the first object (for example, moving object) is changed to the second object (for example, terrain object). This is a process in the case of a collision, for example, a game calculation (update of parameter or score or selection of a branch) due to a collision, generation of a collision image, or the like.
[0127]
If the color of the first object (for example, moving object) is not found, the process when the first object (for example, moving object) is behind the second object (for example, terrain object) (step S90). I do. The processing when the first object (for example, moving object) is in front of the second object (for example, terrain object) is, for example, that the first object (for example, moving object) is changed to the second object (for example, terrain object). This is a process in a state where there is no collision yet.
[0128]
When the intersection determination process is continued, the process returns to step S12 and is repeated (step S100).
[0129]
Note that the processing from step S10 to step S100 may be realized by software, hardware, or both software and hardware.
[0130]
For example, a hardware having a rendering function may be realized by setting parameters for specifying processing contents from software.
[0131]
FIG. 6 is a flowchart for explaining another example of the process according to the first embodiment.
[0132]
Here, a change in presence / absence of drawing of the first object at a given time t (or the number of drawing pixels) and change of presence / absence of drawing of the first object at time t + Δt (or the number of drawing pixels) may be detected. A flow of processing when detecting the presence or absence of the intersection of the first object and the second object based on the detection result will be described.
[0133]
In the first embodiment, the following processing is performed for each frame. Note that this need not always be performed, and may be performed only when intersection determination is necessary.
[0134]
The coordinates and speed of the first object (for example, moving object) and the second object (for example, terrain object) and the initial value of the current drawing information are set (step S110). Since the speed may be set for a moving object, the speed is set for a first object (for example, a moving object). The current drawing information is information regarding whether or not the first object has been drawn in the current frame. Here, in order to make the current drawing information different from the previous drawing information in the first comparison operation, the initial value of the current drawing information is the current drawing information when drawing is present and the current drawing information when there is no drawing. Set a different value.
[0135]
Next, the current drawing information is set to the previous drawing information (step S120). The previous drawing information is information regarding whether or not the first object has been drawn in the previous frame.
[0136]
Next, the object is moved based on the set speed (step S130).
[0137]
Next, a virtual camera is installed on the back surface of the second object (for example, a terrain object) (step S140).
[0138]
Next, the “distance” such as the depth value of the second object is rendered in a depth buffer (eg, Z buffer) (step S150).
Next, the frame buffer is filled with an appropriate color such as black (step S160). Next, the first object (for example, a moving object) is drawn with a color different from the color filled with the frame buffer such as white (step S170). .
[0139]
Next, it is checked whether the color of the first object (for example, moving object) is painted on the frame buffer (step S180).
If the color of the first object (for example, moving object) is found, information that the first object (for example, moving object) has been rendered is set in the current drawing information (steps S190 and S200).
[0140]
If the color of the first object (for example, moving object) is not found, information that the first object (for example, moving object) has not been rendered is set in the current drawing information (steps S190 and S210).
[0141]
Then, the current drawing information and the previous drawing information are compared, and if they are different, processing is performed when the first object (for example, a moving object) and the second object (for example, a terrain object) intersect (steps S220 and S230). ).
[0142]
If the current drawing information is the same as the previous drawing information, processing is performed when the first object (for example, a moving object) and the second object (for example, a terrain object) do not intersect (steps S220 and S240).
[0143]
When the intersection determination process is continued, the process returns to step S120 and is repeated (step S250).
[0144]
Note that the processing from step S110 to S250 may be realized by software, hardware, or both software and hardware.
[0145]
For example, a hardware having a rendering function may be realized by setting parameters for specifying processing contents from software.
[0146]
3. Second embodiment
FIG. 7 is a diagram for explaining the characteristics of the second embodiment.
[0147]
In the second embodiment, a movement trajectory volume 330 is generated based on the first object (moving object) 310 at time t and the first object (moving object) 310 ′ at time t + Δt. The intersection area 340 of the second object (terrain object) 320 is detected.
[0148]
The movement trajectory volume 330 connects the corresponding vertices of the first object (moving object) 310 at the time t in the object space and the first object (moving object) 310 ′ at the time t + Δt with a movement trajectory or a straight line to connect the outermost ridge line. It can be set as an object to be a contour.
[0149]
For example, if the vertices V1 to V8 of the first object (moving object) 310 at time t (before movement) change from V1 ′ to V8 ′ at time t + Δt (after movement), the movements corresponding to V1 to V8 respectively. A moving trajectory volume can be formed by connecting V8 ′ to the subsequent vertex V1 ′.
[0150]
If the first object (moving object) 310 and the second object (terrain object) 320 intersect from time t to t + Δt, the movement trajectory volume 330 and the second object intersect. Accordingly, when the intersection region 340 between the movement trajectory volume 330 and the second object (terrain object) 320 is detected, it is determined that the first object (moving object) 310 and the second object (terrain object) intersect. I can do it.
[0151]
The intersection position can be detected by taking the correspondence between the intersection area 340 drawn in the frame buffer 350 and the position of the second object (terrain object).
[0152]
Thus, according to the second embodiment, not only the intersection determination but also the intersection position can be detected.
[0153]
Next, a specific intersection area detection process for the first object and the second object existing in the object space will be described.
[0154]
FIGS. 8A to 8C are diagrams for explaining the movement track volume setting process.
[0155]
FIG. 8A shows a state where the first object 310 and the second object 320 are arranged in the object space before the movement (time t), and FIG. 8B shows the state after the movement (time This shows a state in which the first object 310 ′ and the second object 320 at (t + Δt) are arranged in the object space.
[0156]
FIG. 8C shows the movement trajectory volume 330 generated based on the first object 310 before the movement (time t) and the first object 310 ′ after the movement (time t + Δt).
[0157]
The movement trajectory volume is a space (volume (three-dimensional) including all three-dimensional movement trajectories) occupied by the first object before and after movement and during movement. For example, as described with reference to FIG. 7, the first object can be generated by connecting the vertices before and after the movement with a movement locus or a straight line.
[0158]
FIGS. 9A to 9C are diagrams for explaining the intersection area detection processing.
[0159]
In FIG. 9A, a surface object 332 and a second object (terrain object) 320 constituted by surface polygons whose surface faces the virtual camera among polygons constituting the movement trajectory volume are drawn in the frame buffer 350. FIG.
[0160]
In FIG. 9B, a back object 332 and a second object (terrain object) 320 composed of back polygons facing the virtual camera among the polygons constituting the movement trajectory volume are drawn in the frame buffer 350. FIG.
[0161]
Reference numeral 340 in FIG. 9C represents an area composed of pixels with different numbers of times of drawing of the front polygon and the back polygon, and this is an intersection area of the movement trajectory volume and the second object.
[0162]
In FIGS. 9A to 9C, the virtual camera is placed at a position where the first object and the movement trajectory volume are viewed obliquely from the side. Originally, FIGS. 3A, 3B, and 4A are used. As in (B), it is preferable to install the second object (terrain object) at a position viewed from below.
[0163]
Further, when rendering the front surface object, the back surface may be rendered.
[0164]
In the second embodiment, as shown in FIGS. 8A to 8C, a movement trajectory volume (a movement trajectory may be used based on the movement of the first object from a given time t to t + Δt, or a movement trajectory may be used. Is generated and placed in the object space, and the moving locus volume and the second object are rendered as an image viewed from a virtual camera placed at a given position, and the moving locus volume is rendered. Based on the drawing result of the second object, the intersection area of the movement trajectory volume and the second object is detected.
[0165]
Here, as shown in FIGS. 8A to 8C, a surface object 332 composed of front surface polygons that face the virtual camera among the polygons that form the movement trajectory volume, and the back surface faces the virtual camera. The back surface object 334 configured by the back surface polygons may be drawn, and an area composed of pixels having different numbers of times of the front surface object 332 and the back surface object 334 may be detected as the intersection region 340.
[0166]
FIG. 10 is a flowchart for explaining an example of processing according to the second embodiment.
[0167]
Here, a description will be given of the flow of processing in the case where a movement locus volume is generated based on the movement locus of the first object (moving object) and an intersection area between the movement locus volume and the second object (terrain object) is detected.
[0168]
In the second embodiment, the following processing is performed for each frame. Note that this need not always be performed, and may be performed only when it is necessary to detect an intersection region.
[0169]
The initial values of the coordinates and speed of the first object (for example, moving object) and the second object (for example, terrain object) are set (step S310). Since the speed may be set for a moving object, the speed is set for a first object (for example, a moving object).
[0170]
Next, the object is moved based on the set speed, and the coordinate value is updated (step S320).
[0171]
For the first object (for example, a moving object), a movement trajectory volume is created from the previous position and the current position coordinates (step S330).
Next, a virtual camera is installed on the back surface of the second object (for example, a terrain object) (step S340).
[0172]
Next, the “distance” such as the depth value of the second object is rendered in a depth buffer (for example, Z buffer) (step S350).
[0173]
Next, the frame buffer is filled with an appropriate color such as black (step S360).
[0174]
Next, the movement trajectory volume of the first object (for example, moving object) is drawn only with respect to the surface polygon when viewed from the virtual camera, in a color different from the color in which the frame buffer such as white is filled (step S370).
Next, the moving trajectory volume of the first object (for example, moving object) is drawn with the same color as the color with which the frame buffer is filled only for the polygon on the back as viewed from the virtual camera (step S380).
Next, it is checked whether the color of the first object (for example, moving object) is painted in the frame buffer (step S390).
If the color of the first object (for example, moving object) is found, processing is performed when the first object (for example, moving object) intersects the second object (for example, terrain object) (step S400, S410).
[0175]
If the color of the first object (for example, moving object) is not found, processing is performed when the first object (for example, moving object) does not intersect the second object (for example, terrain object) ( Steps S400 and S420).
[0176]
If the intersection area detection process is to be continued, the process returns to step S320 to repeat the process (step S430).
[0177]
Note that the processing from step S310 to S430 may be realized by software, hardware, or both software and hardware.
[0178]
For example, a hardware having a rendering function may be realized by setting parameters for specifying processing contents from software.
An example of processing when objects intersect (object B is reflected by object A).
[0179]
FIG. 11 is a diagram for describing an example of processing when the first object and the second object intersect.
[0180]
First, a process for creating a position map of a second object (for example, a terrain object) is performed (step S510). The position map of the second object (for example, a terrain object) is created by converting the coordinate value of the corresponding world coordinate system into a color value by the following formula for each pixel on the frame buffer of the second object.
[0181]
Red = kx * x component of world coordinates + bx
Green = ky * world component y component + by
Blue = kz * z component of world coordinates + bz
Here, kx, ky, kz and bx, by, bz are counts for adjusting the world coordinates to fall within the color range. Then, the obtained color value is rendered on a texture (position map). As the screen coordinates to be rendered, for example, the coordinate values of the decal texture for applying a pattern to the object may be calculated as x = U coordinates and y = V coordinates (step S510).
[0182]
Next, a process for creating a normal map of the second object (for example, a terrain object) is performed (step S520). The normal map of the second object (for example, a terrain object) is created by converting the xyz component of the corresponding normal vector into a color value by the following formula for each pixel on the frame buffer of the second object.
[0183]
Red = x component of normal vector / 2 + 0.5
Green = y component of normal vector / 2 + 0.5
Blue = z component of normal vector / 2 + 0.5
Then, the obtained color value is rendered on a texture (normal map). The re-screen coordinate to render uses the same value as the position map.
[0184]
Next, a virtual camera is installed on the back surface of the second object (for example, a terrain object) (step S530).
Next, a process for creating a texture coordinate map is performed (step S540). The texture coordinates when creating the normal map are red = U coordinates and green = V coordinates, the texture coordinates are converted into colors, and the second object is rendered on another texture (texture coordinate map).
[0185]
Next, with respect to the texture obtained as a result of the collision determination, the number of pixels of the collision part (the part corresponding to the intersection determination region) is counted (step S550).
[0186]
Next, with respect to the texture coordinate map, the color of the texture pixel is added to the part obtained from the collision judgment (the part corresponding to the intersection judgment area), and divided by the number of pixels that collided last. Obtain the average (step S560)
Next, the obtained texture coordinates are returned to numerical values with U coordinates = red and V coordinates = green. (Step S570).
[0187]
Next, the value of the position map is sampled from the obtained texture coordinates (step S580).
[0188]
Next, the color of the sampled position map is returned to a vector value by the following equation (step S590).
[0189]
X component of vector = (red−bx) / kx
Y component of vector = (green-by) / ky
Z component of vector = (blue-bz) / kz
Next, the position of the first object (for example, a moving object) is moved to the coordinate value obtained from the position map (or the position obtained by calculation therefrom) (step S600).
[0190]
Next, the normal map value is sampled from the obtained texture coordinates (step S610).
[0191]
Next, the color of the sampled normal map is returned to the vector value by the following equation (step S620).
[0192]
X component of normal vector = 2 * red-1
Y component of normal vector = 2 * green-1
Z component of normal vector = 2 * blue-1
Next, a reflection vector r is obtained from the obtained normal vector and the velocity vector of the object B according to the following formula (step S630).
[0193]
r = 2 * (normal vector, velocity vector) * normal vector-velocity vector
Next, the velocity vector of the first object (for example, a moving object) is replaced with a reflection vector (step S640).
[0194]
In this way, by configuring so that normal information can be acquired according to the collision position, the behavior of the object can be adjusted using a response from the ground.
[0195]
Further, by configuring so that the ground height information can be acquired according to the collision position, the behavior of the object may be adjusted using a response from the ground.
[0196]
4). Hardware configuration
Next, an example of a hardware configuration capable of realizing the present embodiment will be described with reference to FIG.
[0197]
The main processor 900 operates based on a program stored in the CD 982 (information storage medium), a program transferred via the communication interface 990, or a program stored in the ROM 950 (one of information storage media). Various processes such as processing, image processing, and sound processing are executed.
[0198]
The coprocessor 902 assists the processing of the main processor 900, has a product-sum calculator and a divider capable of high-speed parallel calculation, and executes matrix calculation (vector calculation) at high speed. For example, if a physical simulation for moving or moving an object requires processing such as matrix operation, a program operating on the main processor 900 instructs (requests) the processing to the coprocessor 902. )
[0199]
The geometry processor 904 performs geometry processing such as coordinate transformation, perspective transformation, light source calculation, and curved surface generation, has a product-sum calculator and a divider capable of high-speed parallel computation, and performs matrix computation (vector computation). Run fast. For example, when processing such as coordinate transformation, perspective transformation, and light source calculation is performed, a program operating on the main processor 900 instructs the geometry processor 904 to perform the processing.
[0200]
The data decompression processor 906 performs a decoding process for decompressing the compressed image data and sound data, and a process for accelerating the decoding process of the main processor 900. As a result, a moving image compressed by the MPEG method or the like can be displayed on the opening screen, the intermission screen, the ending screen, or the game screen. Note that the image data and sound data to be decoded are stored in the ROM 950 and the CD 982 or transferred from the outside via the communication interface 990.
[0201]
The drawing processor 910 performs drawing (rendering) processing of an object composed of primitives (primitive surfaces) such as polygons and curved surfaces at high speed. When drawing an object, the main processor 900 uses the function of the DMA controller 970 to pass the object data to the drawing processor 910 and transfer the texture to the texture storage unit 924 if necessary. Then, the drawing processor 910 draws the object in the frame buffer 922 at high speed while performing hidden surface removal using a Z buffer or the like based on the object data and texture. The drawing processor 910 can also perform α blending (translucent processing), depth cueing, mip mapping, fog processing, bilinear filtering, trilinear filtering, anti-aliasing, shading processing, and the like. When an image for one frame is written in the frame buffer 922, the image is displayed on the display 912.
[0202]
The sound processor 930 includes a multi-channel ADPCM sound source and the like, and generates high-quality game sounds such as BGM, sound effects, and sounds. The generated game sound is output from the speaker 932.
[0203]
Operation data from the game controller 942 (lever, button, chassis, pad type controller, gun type controller, etc.), save data from the memory card 944, and personal data are transferred via the serial interface 940.
[0204]
The ROM 950 stores system programs and the like. In the case of an arcade game system, the ROM 950 functions as an information storage medium, and various programs are stored in the ROM 950. A hard disk may be used instead of the ROM 950.
[0205]
The RAM 960 is used as a work area for various processors.
[0206]
The DMA controller 970 controls DMA transfer between the processor and memory (RAM, VRAM, ROM, etc.).
[0207]
The CD drive 980 drives a CD 982 (information storage medium) in which programs, image data, sound data, and the like are stored, and enables access to these programs and data.
[0208]
The communication interface 990 is an interface for transferring data to and from the outside via a network. In this case, as a network connected to the communication interface 990, a communication line (analog telephone line, ISDN), a high-speed serial bus, or the like can be considered. By using a communication line, data transfer via the Internet becomes possible. Further, by using the high-speed serial bus, data transfer with other image generation systems becomes possible.
[0209]
All of the means of the present invention may be realized (executed) only by hardware, or only by a program stored in an information storage medium or a program distributed via a communication interface. Also good. Alternatively, it may be realized by both hardware and a program.
[0210]
When each means of the present invention is realized by both hardware and a program, the information storage medium stores a program for realizing each means of the present invention using hardware. Become. More specifically, the program instructs each processor 902, 904, 906, 910, 930, etc., which is hardware, and passes data if necessary. Each of the processors 902, 904, 906, 910, 930 and the like implements each unit of the present invention based on the instruction and the passed data.
[0211]
FIG. 13A shows an example when the present embodiment is applied to an arcade game system. The player enjoys the game by operating the lever 1102, the button 1104, and the like while viewing the game image displayed on the display 1100. Various processors and various memories are mounted on the built-in system board (circuit board) 1106. Information (program or data) for executing each means of the present invention is stored in a memory 1108 which is an information storage medium on the system board 1106. Hereinafter, this information is referred to as storage information.
[0212]
FIG. 13B shows an example in which this embodiment is applied to a home game system. The player enjoys the game by operating the game controllers 1202 and 1204 while viewing the game image displayed on the display 1200. In this case, the stored information is stored in the CD 1206, which is an information storage medium that is detachable from the main system, or in the memory cards 1208, 1209, and the like.
[0213]
FIG. 13C shows a host device 1300 and terminals 1304-1 to 1304-n connected to the host device 1300 via a network 1302 (a small-scale network such as a LAN or a wide area network such as the Internet). An example of applying this embodiment to a system including In this case, the stored information is stored in an information storage medium 1306 such as a magnetic disk device, a magnetic tape device, or a memory that can be controlled by the host device 1300, for example. When the terminals 1304-1 to 1304-n can generate game images and game sounds stand-alone, the host device 1300 receives a game program and the like for generating game images and game sounds from the terminal 1304-. 1 to 1304-n. On the other hand, if it cannot be generated stand-alone, the host device 1300 generates a game image and a game sound, which is transmitted to the terminals 1304-1 to 1304-n and output at the terminal.
[0214]
In the case of the configuration shown in FIG. 13C, each unit of the present invention may be executed in a distributed manner between the host device (server) and the terminal. Further, the storage information for executing each means of the present invention may be distributed and stored in the information storage medium of the host device (server) and the information storage medium of the terminal.
[0215]
The terminal connected to the network may be a home game system or an arcade game system. A portable information storage device capable of exchanging information with the arcade game system and exchanging information with the arcade game system when the arcade game system is connected to the network. It is desirable to use (memory card, portable game device).
[0216]
The present invention is not limited to that described in the above embodiment, and various modifications can be made.
[0217]
In the invention according to the dependent claims of the present invention, a part of the constituent features of the dependent claims can be omitted. Moreover, the principal part of the invention according to one independent claim of the present invention can be made dependent on another independent claim.
[0218]
For example, in the present embodiment, the case where the first object is a moving object and the second object is a terrain object has been described as an example, but the present invention is not limited thereto. It may be a case where both the first object and the second object are moving objects.
[0219]
In the present embodiment, the case where the virtual camera captures a terrain object or a moving object from below the terrain object (second object) has been described as an example. However, the position of the virtual camera is not limited to this. For example, it may exist inside any object. Here, a virtual camera may be arranged inside the moving object, and the viewing direction of the virtual camera may be directed to the moving direction.
[0220]
In the present embodiment, the case where the intersection determination is used for the hit check, or the case where the intersection area is detected and the reflection vector of the moving object after the collision is calculated is described as an example.
[0221]
For example, the processing content may be determined according to the “area” of the intersection region, or the processing content may be changed.
[0222]
For example, since only a part is rendered while passing through the wall, the number of pixels on the screen decreases. You may make it produce | generate the image which switches the effect in the middle of a bullet breaking according to the state of this reduction in steps.
[0223]
The present invention can also be applied to various games (such as fighting games, shooting games, robot battle games, sports games, competitive games, role playing games, music playing games, dance games, etc.).
[0224]
The present invention is also applicable to various image generation systems (game systems) such as a business game system, a home game system, a large attraction system in which a large number of players participate, a simulator, a multimedia terminal, and a system board for generating game images. Applicable.
[Brief description of the drawings]
FIG. 1 is an example of a functional block diagram of an image generation system (for example, a game system) of the present embodiment.
FIGS. 2A and 2B are diagrams for explaining the characteristics of the first embodiment; FIG.
FIGS. 3A and 3B are diagrams for explaining a state in which the first object and the second object are not in contact with each other.
FIGS. 4A and 4B are diagrams for explaining a state after the first object has penetrated the second object. FIGS.
FIG. 5 is a flowchart for explaining an example of processing according to the first embodiment;
FIG. 6 is a flowchart for explaining another example of the process according to the first embodiment;
FIG. 7 is a diagram for explaining features of the second embodiment;
FIGS. 8A to 8C are diagrams for explaining setting processing of a movement trajectory volume.
FIGS. 9A to 9C are diagrams for explaining intersection area detection processing;
FIG. 10 is a flowchart for explaining an example of processing according to the second embodiment;
FIG. 11 is a diagram for explaining an example of processing when a first object and a second object intersect.
FIG. 12 is a diagram illustrating an example of a hardware configuration capable of realizing the present embodiment.
FIGS. 13A, 13B, and 13C are diagrams illustrating examples of various types of systems to which the present embodiment is applied.
[Explanation of symbols]
100 processor
110 Game processor
120 Intersection detection unit
122 Intersection area detector
124 Movement locus volume setting section
130 Image generator
132 Geometry processing part
140 Drawing part
150 sound generator
160 Operation unit
170 Storage unit
172 Main memory (main memory)
174 Frame buffer (drawing buffer)
180 Information storage medium
190 Display
192 sound output section
194 Portable information storage device
196 Communication Department

Claims (3)

画像生成を行う画像生成システムであって、
所与の時刻tからt+Δtにおける第1のオブジェクトの移動に基づき移動軌跡ボリュームを生成しオブジェクト空間に配置する移動軌跡ボリューム設定手段と、
移動軌跡ボリュームと第2のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングするレンダリング手段と、
移動軌跡ボリュームの描画領域に基づき、移動軌跡ボリュームと第2のオブジェクトの交差領域を検出する交差領域検出手段とを含み、
前記レンダリング手段は、
移動軌跡ボリュームを構成するポリゴンのうち仮想カメラに表面が向いている表面ポリゴンと、仮想カメラに裏面が向いている裏面ポリゴンを描画し、
前記交差領域検出手段は、
表面ポリゴンと裏面ポリゴンの描画された回数の異なる画素で構成される領域を交差領域として検出することを特徴とする画像生成装置。
An image generation system for generating an image,
A movement trajectory volume setting means for generating a movement trajectory volume based on the movement of the first object from a given time t to t + Δt and arranging the movement trajectory volume in the object space;
Rendering means for rendering an image viewed from a virtual camera in which a movement trajectory volume and a second object are arranged at given positions;
Based on the drawing area of the movement trajectory volume, viewed contains a cross-area detecting means for detecting a movement trajectory volume and intersections of the second object,
The rendering means includes
Of the polygons that make up the movement trajectory volume, draw the front polygon that faces the virtual camera and the back polygon that faces the virtual camera,
The intersecting area detecting means includes
An image generating apparatus that detects an area composed of pixels with different numbers of times of drawing a front polygon and a back polygon as an intersection area .
コンピュータが実行可能なプログラムであって、
所与の時刻tからt+Δtにおける第1のオブジェクトの移動に基づき移動軌跡ボリュームを生成しオブジェクト空間に配置する移動軌跡ボリューム設定手段と、
移動軌跡ボリュームと第2のオブジェクトを所与の位置に配置された仮想カメラから見た画像をレンダリングするレンダリング手段と、
移動軌跡ボリュームの描画領域に基づき、移動軌跡ボリュームと第2のオブジェクトの交差領域を検出する交差領域検出手段としてコンピュータを機能させ
前記レンダリング手段は、
移動軌跡ボリュームを構成するポリゴンのうち仮想カメラに表面が向いている表面ポリゴンと、仮想カメラに裏面が向いている裏面ポリゴンを描画し、
前記交差領域検出手段は、
表面ポリゴンと裏面ポリゴンの描画された回数の異なる画素で構成される領域を交差領域として検出することを特徴とするプログラム。
A computer executable program,
A movement trajectory volume setting means for generating a movement trajectory volume based on the movement of the first object from a given time t to t + Δt and arranging the movement trajectory volume in the object space;
Rendering means for rendering an image viewed from a virtual camera in which a movement trajectory volume and a second object are arranged at given positions;
Based on the drawing area of the movement trajectory volume, it causes the computer to function as the intersection area detecting means for detecting a movement trajectory volume and intersections of the second object,
The rendering means includes
Of the polygons that make up the movement trajectory volume, draw the front polygon that faces the virtual camera and the back polygon that faces the virtual camera,
The intersecting area detecting means includes
A program characterized by detecting an area composed of pixels with different numbers of times of drawing a front polygon and a back polygon as an intersection area .
コンピュータにより読みとり可能な情報記憶媒体であって、請求項に記載のプログラムを記憶することを特徴とする情報記憶媒体。An information storage medium readable by a computer, wherein the program according to claim 2 is stored.
JP2003096809A 2003-03-31 2003-03-31 Image generation system, program, and information storage medium Expired - Fee Related JP4266121B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003096809A JP4266121B2 (en) 2003-03-31 2003-03-31 Image generation system, program, and information storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003096809A JP4266121B2 (en) 2003-03-31 2003-03-31 Image generation system, program, and information storage medium

Publications (2)

Publication Number Publication Date
JP2004303034A JP2004303034A (en) 2004-10-28
JP4266121B2 true JP4266121B2 (en) 2009-05-20

Family

ID=33408757

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003096809A Expired - Fee Related JP4266121B2 (en) 2003-03-31 2003-03-31 Image generation system, program, and information storage medium

Country Status (1)

Country Link
JP (1) JP4266121B2 (en)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4739091B2 (en) * 2006-01-24 2011-08-03 株式会社ユニバーサルエンターテインメント Game machine and simulation program
JP4754385B2 (en) * 2006-03-30 2011-08-24 株式会社バンダイナムコゲームス Program, information recording medium, and image generation system
JP4754384B2 (en) * 2006-03-30 2011-08-24 株式会社バンダイナムコゲームス Program, information recording medium, and image generation system
JP5708196B2 (en) 2011-04-21 2015-04-30 セイコーエプソン株式会社 Collision detection system, robot system, collision detection method and program
JP5874326B2 (en) * 2011-11-04 2016-03-02 セイコーエプソン株式会社 Collision detection system, robot system, collision detection method and program
JP2015127977A (en) * 2015-03-05 2015-07-09 セイコーエプソン株式会社 Collision detection system, robot system and collision detection method

Also Published As

Publication number Publication date
JP2004303034A (en) 2004-10-28

Similar Documents

Publication Publication Date Title
JP3990252B2 (en) GAME SYSTEM, PROGRAM, AND INFORMATION STORAGE MEDIUM
JP3747050B1 (en) Program, information storage medium, and image generation system
JP4535604B2 (en) Game system and program
JP2001070633A (en) Image forming system and information recording medium
JP4266121B2 (en) Image generation system, program, and information storage medium
JP2007105499A (en) Game system, program and information storage medium
JP3280355B2 (en) Image generation system and information storage medium
JP2005246071A (en) Image forming system and information storage medium
JP4167358B2 (en) Image generation system and information storage medium
JP3442344B2 (en) GAME SYSTEM AND INFORMATION STORAGE MEDIUM
JP4651204B2 (en) Image generation system, program, and information storage medium
JP2004073241A (en) Game system, program, and information storage medium
JP4303395B2 (en) GAME DEVICE AND INFORMATION STORAGE MEDIUM
JP3297410B2 (en) Image generation system and information storage medium
JP4367810B2 (en) Image generation system and information storage medium
JP2003210837A (en) Image-generating system, program, and information- storage medium
JP2005209217A (en) Game system and information storage medium
JP4245356B2 (en) GAME SYSTEM AND INFORMATION STORAGE MEDIUM
JP4544555B2 (en) GAME SYSTEM AND INFORMATION STORAGE MEDIUM
JP4574058B2 (en) Image generation system, program, and information storage medium
JP4229318B2 (en) Image generation system, program, and information storage medium
JP4632521B2 (en) GAME SYSTEM AND INFORMATION STORAGE MEDIUM
JP4803909B2 (en) Image generation system, program, and information storage medium
JP4827217B2 (en) Image generation system, program, and information storage medium
JP4475763B2 (en) GAME SYSTEM AND INFORMATION STORAGE MEDIUM

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060227

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080818

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080827

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081126

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090120

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090210

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090213

R150 Certificate of patent or registration of utility model

Ref document number: 4266121

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120227

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130227

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140227

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees