説明

可視衝突検出回路

【課題】CGの物体間の衝突検出回路に関し、レンダラー側に衝突検出回路を設けてハードウエアにより衝突を検出し、アプリケーションプロセッサの軽減と描画の高速化を図る。
【解決手段】物体間の衝突を検出する手段として、対象映像表示空間を取り囲む6面体を定義し、それぞれの面の外部から空間内部を見た空間内部の静止物体を6面のそれぞれに投影し、投影された物体の有無フラグ、識別子、Z値、法線を6面分生成・記憶する手段と、レンダリング段階において、動体の内挿補間時にレンダリング点を6面それぞれの座標系に変換し、前記6面内の静体のフラグ、識別子、Z値、法線を読み出し、内挿補間点のオーバラップの有無、その点での静止物体の識別子、Z値から内挿補間点の衝突を判定する手段と、動く物体の方向や法線、衝突される物体の法線から、衝突する物体の衝突後の動きを求めるための情報をアプリケーションプロセッサに出力する手段からなる。

【発明の詳細な説明】
【技術分野】
【001】
この発明は コンピュータグラフィックス技術において物体間の衝突を検出するための手段と、それを実現するための回路の実装に関する。
【背景技術】
【002】
コンピュータグラフィックスのアプリケーションには、物体同士の衝突を含むアニメーションが多く制作されている。従来から衝突検出は、アプリケーションプロセッサ(以下APという)側のプログラミングによるバウンダリーボックスや物体のツリー構造法に基づき高速処理が図られてきた。実時間描画が必要なゲーム等のアニメーションでは、これら衝突検出の計算負荷は極めて大きい。このためCG映像の現実感や実時間描画を得るためには、描画量の増加と物理モデル等の複雑系処理等が必須であり、APの負荷は今後一層深刻となる。正確な衝突検出をAP側のソフトウエアで対応する限り、高速化とデータ量削減との相反する問題を解決しなければならない問題をこれまでに抱えていた。
【発明の開示】
【発明が解決しようとする課題】
【003】
本発明はAPに実装されるプログラムを用いて物体間の衝突を検出するのではなく、ピクセルシェーダーあるいはラスタライザーと言われるレンダラー側のハードウエアで衝突を検出する。AP側から衝突検出処理を無くし、APは一般描画と同じ物体プリミティブ(ポリゴン)をレンダラーに出力するのみとし、ハードウエアによって衝突検出を行うことでAPの負荷の軽減と描画の高速化を図ることが本発明の課題である。
【課題を解決するための手段】
【004】
レンダラーには通常、ポリゴン描画、テキスチャマッピング、環境マッピング、照明のためのシェーダー等がハードウエア実装されている。本発明はこれらグラフィックスプロセッサが具備する既存の機能群と同化した構造で物体間衝突検出回路を導入する。
【005】
視覚的に物体が衝突しているか否かは、衝突箇所に遮蔽物体がなければ複数の視角から物体を眺めることで認知できる。このアルゴリズムとして描画空間全体を取り囲む6面体(立方体あるいは直方体のいずれかで、以下Cubeという)を設定し、これら6面からCube内部を見て、動く物体(以下動体という)と他の物体(以下静体という)との接触の可否を検査することで衝突が認知できる。このため描画空間全体を仮想的にCubeで囲み、Cubeのそれぞれの面にはCube外部から内部を投影した画像を写像し、この6面分の写像図をCubeパターンとして保存する。衝突箇所が完全に遮蔽された空間内でない限り、複数の面から見て、動体と静体とが重なり合っていれば衝突と見なすことができる。これは人間が視覚的に物体衝突を認知するプロセスと同じである。
【006】
前記Cubeそれぞれの6面にCube内部の映像を投影する手段として本発明では、6面それぞれに直交する座標軸上から並行投影でCube内部画像を、隠面消去法を用い6面それぞれに描画する。投影中心がCubeの内部と外部、あるいは透視投影と並行投影の違いを除くと、この方法はレンダリング前に予め作成される環境マッピング技術の環境Cube生成法と類似する。
【007】
環境マッピング同様に動く物体が生じれば、その都度Cubeパターンは再生成しなければならない。これは6面分の描画となり負荷が大きい。本発明ではこれを避けるため全ての描画物体を、動体と静体とにそれぞれ分け、静体のみをCube6面それぞれに予めパターンとして作成する。画像表示段階では、静体を先に、次に動体をレンダリングする。動体のポリゴンを内挿補間する段階で、補間点が静体と交差するか否かを、Cube6面それぞれのパターン(以下画像情報という)と比較し判定する。この判定には動体の内挿補間点を6面それぞれの座標系に変換し、面の画像と内挿補間点がオーバーラップするか否かのテストを行う。
【008】
遮蔽物体がなければCube画像情報と内挿補間点とのxy座標の重なりテストのみであり、画像情報として記憶する情報は、環境マッピングのような色情報は必要ない。記憶される情報は画素あたり1ビットの画像の有無を示すフラグと静体の識別子のみとなる。衝突が検出された場合APに戻す値は、動体と静体それぞれの識別子と、衝突点の3次元座標値となる。これにより、衝突物体名と位置がAP側で判断できる。動体と静体とを分離することによって、大半を占める静体のCubeへの書き込みは前処理1回のみとなる。
【009】
動体が複数存在した場合、動体間の衝突の検出も必要となる。本発明は複数の動体がある場合、動体専用の6面Cubeを別途用意し、内挿補間時に衝突検出処理と並行してこのCubeに描画する。静体と動体Cubeそれぞれをテストすることで静体の再描画を不要とする。
【010】
動体のCubeを定義する場合、複数の動体を纏めて1組のCubeに書くか、動体毎にそれぞれ専用のCubeを作成するかは同時に動く物体数あるいはハードウエア・コストに関係する。動体数が多く、一時的に動くものと、常時動くものがある場合には、それぞれの物体毎にCubeを作成することによって効率を図ることができる。この場合は動体のためのCubeは動体を取り囲む空間サイズでよい。
【011】
静体Cube画像情報を前処理で求めておくことは本発明の高速化の条件である。表示(レンダリング)段階では静体、動体のいずれの描画順でもよいが、静体を描画した後に動体を描画し、この動体描画時にのみ衝突検出処理を行うことで高速化が可能となる。実時間アニメーションでは1/30秒あるいは1/60秒以内で1フレームを描画するため、フレーム内で検出が可能となればよい。本発明では映像の描画中に、内挿補間処理の一つとして衝突を検出し、これをAPに戻すため(衝突が生じてから)1フレーム分の遅れをもって、APは次の映像を決定することになる。
【012】
レンダリング時の座標系は任意の視野方向をもつ視点座標系である。内挿補間点のCube6面の画像情報とのオーバーラップ・テストは、内挿補間点座標値をCube面それぞれの座標系に変換する。視点方向が任意角の場合は3次元回転が必要となる。内挿補間点毎の回転計算の負荷を避けるため、本発明ではCubeをワールド座標で定義しCubeの6面はそれぞれxy、yz、xz面と平行とすることで回転計算を削減する。
【013】
また本発明では、動体のポリゴン頂点に視点系座標値と共に、ワールド座標値を付加し、これを同時にレンダリングし、視点座標値は描画に、一方ワールド座標値はCube座標との衝突検出に用いることで面毎の回転計算処理を省き置換処理で対応する。
【014】
6面のいずれから見ても視点との間に遮蔽物がない場合は、互いに直交するCube3面以上で交差していれば衝突の検出ができる。遮蔽物がある場合は追加情報が必要となる。本発明では複雑な形状同士の衝突を検出する手段として、静体のZ値(Cube面からの距離)、静体の識別子および静体画像の有無を示すフラグをそれぞれCube画像情報として記憶する。衝突判定は内挿補間点が、全てのCube面で同一の識別子である静体とオーバーラップしている場合はその静体と衝突となる。また対面する面同士で動体が同一の識別子をもつ静体とオーバーラップし、いずれもZ値比較において静体の後方に位置する場合も衝突と見なすことができる。Cube面によっては複数の物体が遮蔽する場合があり、内挿補間点でCube面のそれぞれの識別子が異なる場合がある。この場合は動体のZ値とオーバーラップする静体のZ値と比較し、動体が静体に対してCube面(手前)側に位置する場合は、静体とは衝突がないとする。一方、動体のZ値が静体の内側(遠方)に位置するCube面とそれぞれ直交する他のCube4面でも動体が同一識別子(これを識別子Aとする)をもつ物体の遠方でオーバーラップしている場合は衝突。さらに、多数の面で同一識別子Aと遠方でオーバーラップするものの識別子の異なる物体(以下遮蔽体という)ともCube面のいずれかでオーバーラップしていた場合、動体と遮蔽体とのそれぞれのZ値を比較し、動体のZ値が遮蔽体よりCube面から遠方にある場合は、識別子Aの物体とは衝突、手前にある場合は衝突していないものとする。
【015】
動体描画のリフレッショは映像表示のための走査フレーム単位で行われる。動体が静体(描画が終了した動体も静体と定義する)と衝突する場合は、Cube面から見て動体の一部が静体と交差した状態となる。動体が極めて高速に移動し1/60秒以内で静体を通り抜ける場合は通常衝突検出不能となるが、互いの物体が交差状態にあれば動体と静体のZ値とを動体の内挿補間時で画素毎に差分すれば、ある箇所で差分符号は背後から手前あるいはその逆に変化する。この変化時を捕えて衝突と見なすことができる。このために、動体の内挿補間段階で前記静体のZ値および識別子を読み出し、内挿補間Z値と前記読み出したZ値をそれぞれ比較する。
【016】
衝突検出によるAPへの戻し情報として[008]では、レンダラーは衝突それぞれの物体識別子と衝突位置を返すものとした。一方、衝突によって跳ね返りや静体が衝突によって移動する場合には、動体の動き方向、動体および静体それぞれの衝突点の面法線、質量や弾性等の物体の属性が必要となる。物体の速度や属性は識別子によってそれを所有し、制御しているAP側で高速に判断できるが、衝突時点の動き方向や面法線はレンダラー側あるいはグラフィックス・エンジン内の中間処理段階で時系列的変化を伴って生成されている場合があり、これをAP側で求めようとすると、衝突点から形状モデルの幾何学的展開が必要となる。この負荷は極めて大きい。本発明では、識別子や衝突位置に加えて、衝突点の動体および静体の面法線および動体の進行方向ベクトルをAPに返す。
【017】
前記手段として、動体の面法線は通常のシステムで多角形頂点データあるいは法線マップとして内挿補間処理に含まれており衝突検出段階で衝突点での面法線を得ることができる。また動体の動き方向は、これに基づきエンジン側で動体の次の座標値が決定されており、フレームサイクル毎のアップデートな情報として、レンダラーに動きベクトルを出力すれば、これをレンダラー側からAPに返すことができる。一方、静体の衝突点の面法線は、予め静体を記憶したCube面情報として追加記憶する。以上から本発明ではCube画像情報としてフラグ、識別子、z座標値、面法線を記憶する手段をもつ。
【018】
静体の面法線は衝突の際にのみ必要であることから、Cube画像情報のような高速読み出しに2次元メモリ構造は必要がなく、低速1次元バッファでもよい。さらにLOD(Level of Detail)については、衝突箇所を厳密に1画素単位で検出が必要であるかどうかの問題がある。本発明でもアプリケーションに対応した解像度対コストの最適化を考慮すると、Cube面静体情報としてはパターンサイズを表示解像度の1/4から1/16程度とすることで、Cube面情報のメモリコストは大幅に削減可能となる。
【019】
以上から本発明は、物体間の衝突を検出する手段として、検出対象となる映像表示空間を取り囲む6面体を定義し、それぞれの面の外部から空間内部を見た空間内部の静止物体を6面のそれぞれに投影し、投影された物体の有無フラグ、識別子、Z値、法線をそれぞれ画像情報として6面分レンダリング前に生成・記憶する手段と、映像を表示するレンダリング段階において、動体の内挿補間時に内挿補間点を6面それぞれの座標系に変換して、前記6面内にある静体のフラグ、識別子、Z値、法線を読み出し、内挿補間点のオーバラップの有無や、その点での静止物体の識別子やZ値から内挿補間点の衝突を判定する手段と、動く物体の方向や法線、また衝突される物体のそれぞれの法線から、衝突するそれぞれの物体の衝突後の動きを求めるための情報をAPに出力する手段のそれぞれからなる可視化衝突検出回路となる。
【発明の効果】
【020】
本発明により、コンピュータグラフィックスにおける物体間の衝突を、アプリケーションプロセッサ側のソフトウエアではなく、レンダラーのハードウエアあるいは組込ソフトウエアにより検出することで、アプリケーションプロセッサの演算負荷が低減し、描画の高速化が可能となり、実時間描画システムに有効となる。
【発明を実施するための最良の形態】
【021】
本発明の回路はグラフィックスLSIに実装するか、IP(Intelligent Property)としての形態で実施される。
【実施例】
【022】
以下、本発明の実施例を説明する。図1に本発明に係わるCubeを示す。図1AではCubeの6面をそれぞれ前面、後面、右面、左面、上面、下面と定義する。Cube面に投影される画像は、それぞれの面の外側から矢印で示す方向に内部を見た内部物体の画像であり、これら画像情報をそれぞれ記憶する。この画像は面に垂直な並行投影図とし、それぞれの面に最も近い物体の画素を隠面消去で描画する。またCubeのそれぞれの面を平面上に展開すると図1Bの関係となる。本発明では、画像情報は色情報ではなく投影された物体の有無フラグ、識別子、Z値、法線となる。
【023】
図2は本発明に係わる静止物体と動く物体との、Cube面20における位置関係(6面図)を示したものである。図2Aで灰色の球体21は、すでにCubeに記憶された静体、黒い小球体22は動体を示す。球体22はCube面に描画した図形ではなく、レンダリング時の内挿点位置を示す。Cube上面の白い小球体は球体22が物体(図では21)の背後に位置することを示す。また図2Aでは、静止物体21と動体22以外には物体がない状態となる。図2Aにおいて全ての面で静止物体21と動体22の一部がオーバーラップしている。オーバーラップとはxy座標軸上の重なりを意味するものとする。本発明の衝突の検出手順は以下となる。
動体22の内挿補間毎に補間点をCube6面の座標系に変換し、それぞれの面から静体の有無を示すフラグおよび識別子を読む。全ての面の識別子が同一で且つ、全ての面で動体22がオーバーラップしていれば動体22は静体21と衝突しているとする。内挿点がワールド座標系で与えられている場合は、Cube6面の座標変換は簡素化される。
【024】
一つの面、例えばCube下面において直交する4面、すなわち上面を除く全ての面で物体22の内挿点が同じ識別子を持つ静体とそれぞれオーバーラップしている場合も衝突と見なすことが出来る。
一方、それぞれの対面する面(上下面、左右面あるいは前後面のいずれか)に対し、動体の内挿点のZ値と、静体のZ値とを比較する。対面する面の双方で物体22の内挿点が、同一識別子となる静体21で共に後方に位置した場合は内挿点は物体21の内部の点と見なすことができ、衝突状態と判断される。
図2Bは物体22と物体21の別の関係図を示す。前記衝突判断の方法の一つとして、Z値を用いない方法によれば衝突に該当しない。Z値を用いる方法では、図2Bにおいて対面するZ値の比較結果で物体22が物体21の遠方に共に位置しない。例えば後面では物体22は物体21の背後に位置するが、後面に対面する前面において物体22は物体21の前方に位置し、条件を満たさない。他の面では物体21と物体22とはオーバーラップをしている物体がない。この結果動体22は衝突していないと判断できる。
【025】
図3は本発明に係わる遮蔽物体がある場合の関係を示す。図3AにおいてCube面30に記憶された静体は灰色球体31と3角平面体33で、動体(黒丸)を32とする。動体32の図形は前記同様に、Cube面に記憶されているのではなく静体との位置関係を示す。図3Aにおいて、それぞれの物体はCube前面を基準に調べれば、最も手前に3角形体33があり、その背後に動く物体32が、さらにその後方に球体31がある。動体32は静体33とオーバーラップする。前面と直交する他の4面を調べると、上下、左右面ではいずれも3角形体33と同一識別子をもつ物体とのオーバーラップがない。よって静体33とは衝突はないものと判断される。また対面に位置する後面では、動体32は3角形体33とオーバーラップしている。しかしここではZ値比較の結果、3角形体33の手前に位置し衝突の条件を満たさない。
さらに後面では、動体32は静体31とオーバーラップする点があり、この点での識別子は31となる。後面と直交する4面は左右、上下であるが、これらには31と同一識別子でオーバーラップする面はない。よって動体32は衝突する物体はないと判断される。
【026】
一方、図3Bでは図3Aと同様に動体32はCube前面で、静体33とオーバーラップしており、動体32は33の背後に位置する。読みだされる識別子は3角形体33となる。次にこの面と直交する4面とテストすると、3角形体33の識別子をもつ物体とのオーバーラップは他に検出されない。一方、Cube後面では静体31とオーバーラップし、静体31に対してCube後面に直交する4面をテストする。動く物体32の内挿点がこれら4面にある物体31とすべてオーバーラップしていることが判定でき動体32は、静体31と衝突していると判断できる。これは左右あるいは上下のCube対面でのテスト(それぞれの面で同一識別子をもち、且つ動体は背後に位置する)によっても検出できる。
【027】
図4は本発明に係る遮蔽物体に囲まれた場合のCube面40を示す。遮蔽物体41は底面と前面のない立方体形状とする。遮蔽物体41と、灰色球体42は静体とし、動体43が内挿補間されている。前面で動体43は静体42とオーバーラップしている。前面と直交する4面を調べると、動体43は上面、左右面はいずれもCube前面とは異なる識別子をもつ静体41とのオーバーラップであり、静体42の識別子と同じものは下面のみとなる。しかし動体43は、上面、左右面でオーバーラップする静体41に対し全て背後となる。Z値との比較により、動体とオーバーラップする同一識別子をもつものが2つ以上あり、その位置はその識別子の物体の背後に位置し(図では42)、且つ、それ以外の識別子をもつ物体(図では41)とのオーバーラップにおいて、それらとは全て背後に位置している場合は衝突と見なす。一方、静体41と動体43との関係で、Cube後面を基にテストをした場合、動体43は静体41の背面にあり、それと対面するCube前面、あるいはCube後面に直交する4面に対してZ値テストを行うと、動体43はいずれか(前面あるいは下面)で静体41の前方となり、衝突の条件を満たさない。一つでも同一識別子をもつ静止物体上で動体のZ値が手前にあるとすれば、その識別子をもつ物体との衝突と見なさない。
【028】
本発明では、動体とオーバーラップする物体全てが同一識別子をもっており、また動体が全て、その背後に位置する場合、すなわち静止物体の内部に動体が位置する場合は衝突と見なしている。よって内部が空洞で動体がその中に浮かんで位置する場合は、衝突が内部で生じていなくても衝突と見なされる。このような幾何学的関係においては可視化方式であるかぎり対応はできない。一方、図4において静体41は底面もあるとするとCube下面の動体は静体41の背後となり動体43の黒丸は白丸となる。よって静体42と動体43の関係を示す面情報はCube前面のみとなる。ここで動体43を内挿補間する過程で動体43のZ値が最も手前に位置(可視化可能な位置)する一部の画素を有し、また一部の画素が物体42の背後に移動する関係(あるいはその逆でも同じ)となった場合は、動体43の一部が静体42にのめり入り込んでいることを意味する。この結果物体42と43は衝突と見なすことができる。
【029】
図5は本発明の衝突検出システム図を示す。Cubeそれぞれの面から見た静止物体の投影画像情報は2次元のパターンとしてメモリ52の0−5に予め記憶される。これら情報は、面に最も近い物体の識別子ID0−5、Z値Zd0−5、面法線Nd0−5および静止物体有無フラグfd0−5のそれぞれである。但し、面法線は2次元パターンでなくてもよい。
物体は通常、多数のポリゴンで構成されている。またポリゴンは頂点座標値列でデータ化されている。このポリゴン列から物体の映像を描画するために、まずポリゴン内部を塗りつぶすための内挿補間回路50にポリゴン頂点列を与える。内挿補間回路50ではポリゴン内部の内挿点座標値Xs,Ys,Zsおよび面法線を順次、またIDsは物体あるいはポリゴン毎に1度出力する。この座標値は視点座標系で求められており、この位置をCube6面座標系のそれぞれへ座標変換回路51で座標変換する。回路51ではメモリ52の6面のそれぞれのXYアドレスXd0−5,Yd0−5を出力する。これらのアドレスでメモリ52からは、メモリに記憶されている前記識別子IDd0−5、Z値Zd0−5、面法線Nd0−5および静止物体有無フラグfd0−5を読みだす。ポリゴンの頂点座標値が視点座標系だけでなく、ワールド座標系の両方で定義し両者を同時に回路50で内挿補間すれば座標変換回路51ではCube6面座標系変換は極めて簡素化される。これら情報は次に衝突検出回路53に加わる。回路53には座標変換回路51で求めた内挿補間点のCubeそれぞれの面に対応するZ値Z0−5も与えられる。衝突検出回路ではこれらの情報を基に[023]から[028]までの条件に対応した衝突の検出処理を行う。
【030】
前記図5の衝突検出回路53の内部構成を図6に示す。前記図5のメモリ52から読みだされたそれぞれ6組の識別子IDd0−5、Z値Zd0−5、面法線Nd0−5および静止物体有無フラグfd0−5の内、有無フラグfd0−5と識別子IDd0−5は、有無フラグ・識別子選択回路60に加えられる。ここでは有無フラグが立っている、すなわち静体が存在するメモリ52の面0−5の識別子IDd0−5をそれぞれ選択する。回路60では0−5面それぞれに対応するレジスタを設け、ここに識別子と有効ビットを記憶する。有無フラグがなければレジスタには無効ビットがセットされる。前記図5において内挿点から6面座標に変換した座標値のうちZ値Z0−5と、メモリ52から読みだしたZ値Zd0−5はZ値比較回路61に与えられる。ここではZ0−5がZd0−5の手前にあるか、背後にあるかの差分符号をそれぞれ求め、その結果を衝突ID検出回路62に出力する。回路62では、前記選択回路60での結果を受けて、有効ビットが立っている識別子のみを選択し、同一識別子同士で、また回路61からのZ値比較結果と合せて、衝突の有無を前記[024]から[028]のそれぞれの条件に沿って判定する。この判定には同一識別子が存在する面番号と、その面に対応するZ値比較符号を判定テーブルに加える等の手段で容易に判断できる。すなわち、最大取りうる組み合わせとして、面情報が6ビット(このうち有効で且つ同一識別子のある面を1ビットとする)であり、またZ値比較結果は6ビットであるため、組み合わせとして合計12ビットとなる。テーブルは4096のアドレスと1ビットの衝突を示す出力をもつ容量でよい。この出力でテスト中の識別子を回路62から出力する。同時にマルチプレクサ回路63では、テスト中の識別子をもつ面番号の一つを回路62から受け、それぞれの面の6種類の静止物体の衝突点の面法線から、所定の面の面法線Ndを選択する。また内挿点の座標値XYZ、面法線Ns、物体の動き方向ベクトルMsを、マルチプレクサ回路を通して出力する。回路62において、複数の識別子が存在した場合は、逐次それぞれの識別子毎に6面分を走査し、同一識別子を検出して、その面のフラグを立て、前記同様にテーブルに加えることで対応できる。
【031】
一方、識別子とZ値判定からだけでは衝突の検出ができない場合がある。前記[015]の条件においては、動く物体を内挿補間している1画素前の情報(識別子とZの差分結果)を6面それぞれに対応したバッファを用いて記憶し、Z値が同一識別子上で前面から背後に変化した時点を検出する。図6の履歴回路64では静止物体有無フラグ、識別子、Z差分結果情報を受ける回路62から、内挿補間毎に6面それぞれの静止物体有無フラグ、Z値差分符号と、識別子を記憶し、新しく補間されて回路62に入力し、さらに回路64に送出される前記情報を比較し、動く物体の画素点が同一静止物体の前面から内部に移った場合を衝突として回路62に信号を送り、その時点での前記[029]に記載の識別子や法線等を出力する。
【032】
一方、静止物体は予め表示のための描画を行う前に画像情報として記憶したが、動く物体が複数存在する場合は、表示描画段階で静止物体同様の6面Cubeを別途作成し、ここに動体をそれぞれの面に投影して記憶する。このため本発明では動体の6面Cube画像情報は静止物体の情報とは異なりフレーム毎にリフレッシュし再描画する。回路としては図5のメモリ52にテンポラリなメモリが増設されることになり、衝突検出回路への出力信号も増加するが、衝突検出方式は静止物体との衝突と変わらず、何れか一方、あるいは双方で衝突が検出されれば、所定の情報を出力する。
以上のそれぞれの手段とから、本発明では物体間を6面から視覚的に捉え衝突の検出が可能な範囲で、衝突を検出するハードウエア化に適した方式となる。
【産業上の利用可能性】
【033】
本発明の回路はIP(Intelligent property)として提供したり、グラフィックスプロセッサLSIに実装されることで、CG映像製作やアムーズメントシステムに利用される。
【図面の簡単な説明】
【034】
【図1】「本発明に係わる6面立方体Aとその平面展開図Bを示す。」
【図2】「本発明に係わる静止物体と動体との衝突A・非衝突Bの幾何学的関係を示す。」
【図3】「本発明に係わる複数の静止物体間での非衝突A・衝突Bの幾何学的関係を示す。」
【図4】「本発明に係わる遮蔽物体内での衝突の幾何学的関係を示す。」
【図5】「本発明の衝突検出システムの回路構成を示す。」
【図6】「本発明の衝突検出回路を示す。」
【符号の説明】
図1
10 立方体
11 立方体平面展開図
図2
20 立方体平面展開図
21 静止球状物体
22 動体
図3
30 立方体平面展開図
31 静止球状物体
32 動体
33 静止3角形状物体
図4
40 立方体平面展開図
41 遮蔽物体
42 静止球状物体
43 動体
図5
50 内挿補間回路
51 座標変換回路
52 立方体6面画像情報メモリ
53 衝突検出回路
図6
60 有効フラグ・識別子選択回路
61 Z値比較回路
62 衝突識別子検出回路
63 マルチプレクサ
64 履歴回路

【特許請求の範囲】
【請求項1】
コンピュータグラフィックスシステムにおける表示物体の衝突検出回路に関し、図形表示空間を囲む仮想6面体を定義し、前記6面体の外部を視点として前記表示空間内に含まれる静止物体を前記6面体のそれぞれの面に投影する手段と、投影した画像情報には、静止物体の有無フラグ、識別子、面法線、面からの距離のそれぞれとして、これらを予めメモリに記憶する手段と、映像表示のために視点座標系で全ての物体を描画する段階において、静止物体から動きのある物体の順序で描画する手段と、前記動く物体を描画する際に、物体の座標値を視点座標系から前記6面体のそれぞれの面座標系に変換して、前記予め記憶された画像情報のそれぞれを前記メモリから読み出し、動く物体と静止物体との重なり状態を6面体の複数の面で検査して、物体間の重なり条件を基に動く物体と静止物体との衝突の有無を決定する衝突検出回路。
【請求項2】
請求項1の回路において、6面体はワールド座標系で、動く物体のポリゴン頂点列は視点座標値とワールド座標値の両方で定義し、前記ポリゴン頂点列からの内挿補間では前記視点座標値とワールド座標値を共に内挿補間して、内挿補間点のワールド座標値を用いて6面体のそれぞれの面座標系への変換処理を簡素化する手段をもつ衝突検出回路。
【請求項3】
請求項1の回路において、動く物体が複数ある場合、静止物体を記憶したメモリに加えて、動く物体を囲む6面体のメモリを複数組設け、6面それぞれの面を外部から見た、面に投影される動く物体の画像情報を、内挿補間段階で前記複数組からなるそれぞれのメモリに記憶する手段と、前記動く物体の画像情報を物体の有無フラグ、識別子、面法線、面からの距離のそれぞれとする手段と、予め記憶された請求項1の静止物体の画像情報と、前記動く物体の画像情報とを同時に読みだして、それぞれの情報を基に静止物体および動く物体それぞれとの衝突を検出する回路。
【請求項4】
請求項1および3の回路において、動く物体のポリゴンの描画段階において、ポリゴンの識別子を保有し、またポリゴンの表示段階では内挿点毎の座標値と共に面法線を求め、衝突が検出された場合、アプリケーションプロセッサには、衝突検出点座標値、静止物体画像情報から読みだされた識別子と面法線、また動く物体の前記保有する識別子と面法線のそれぞれを出力して、衝突した物体それぞれの識別子、衝突点座標値、および衝突面の面法線をアプリケーションプロセッサに知らせる衝突検出回路。
【請求項5】
請求項1から4までに記載のそれぞれの手段用いたコンピュータグラフィック画像装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2009−146368(P2009−146368A)
【公開日】平成21年7月2日(2009.7.2)
【国際特許分類】
【出願番号】特願2007−341766(P2007−341766)
【出願日】平成19年12月13日(2007.12.13)
【出願人】(595061875)
【Fターム(参考)】