JP4842379B2 - キューブ・マップを使うリアルタイム多重解像度3d衝突検出 - Google Patents

キューブ・マップを使うリアルタイム多重解像度3d衝突検出 Download PDF

Info

Publication number
JP4842379B2
JP4842379B2 JP2009521893A JP2009521893A JP4842379B2 JP 4842379 B2 JP4842379 B2 JP 4842379B2 JP 2009521893 A JP2009521893 A JP 2009521893A JP 2009521893 A JP2009521893 A JP 2009521893A JP 4842379 B2 JP4842379 B2 JP 4842379B2
Authority
JP
Japan
Prior art keywords
polygon
distance
origin
determining
cube map
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
JP2009521893A
Other languages
English (en)
Other versions
JP2009545075A (ja
Inventor
ピー. サテ,ラフール
ティー. レイク,アダム
Original Assignee
インテル コーポレイション
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 インテル コーポレイション filed Critical インテル コーポレイション
Publication of JP2009545075A publication Critical patent/JP2009545075A/ja
Application granted granted Critical
Publication of JP4842379B2 publication Critical patent/JP4842379B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/20Finite element generation, e.g. wire-frame surface description, tesselation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S345/00Computer graphics processing and selective visual display systems
    • Y10S345/949Animation processing method
    • Y10S345/958Collision avoidance

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Processing Or Creating Images (AREA)

Description

本発明は、三次元(3D)グラフィックスにおける衝突検出(collision detection)に関する。
三次元(3D)グラフィックスにおける衝突検出(collision detection)は、二つのオブジェクト、典型的にはリンクされた、三角形のようなポリゴンからなる剛体が互いに接しているかどうかを判別する過程である。通例、これはあるオブジェクトの三角形が別のオブジェクトの三角形と空間的にかちあうかどうかを計算するアルゴリズムを実装するプロセッサをもつことによって行われる。この問題へは多様なアプローチがあるが、あらゆる標準的な解決策では、前記プロセッサを使って実行する計算は、八分木(octree)のような空間的データ構造を使ってオブジェクトからオブジェクトへの衝突について試験し、交差候補であると示されている包摂ボリューム(bounding volume)をもつオブジェクトについてポリゴンからポリゴンへの衝突を評価するために一連の幾何学的計算を執り行うことを含む。
中央処理ユニット(CPU)のようなプロセッサにおいて実装されるとき、衝突検出へのこれらの伝統的なアプローチはかなりのコンピューティング資源を占有することがありうる。そうしたコンピューティング資源は、特に3Dゲームのコンテキストでは、物理計算のようなCPU固有のタスクを執り行うこと、あるいは人工知能ルーチンを実装することに費やされるほうがよいかもしれないものである。さらに、グラフィカル処理ユニット(GPU: graphical processing unit)のような専用のグラフィック・プロセッサではなくCPU内で衝突検出を実装することによって、伝統的なアプローチは、現代のグラフィック・テクスチャー・サンプリング・ハードウェアによってサポートされるハードウェア・プリミティブを活用し損なっている。
本願明細書に組み込まれ、本願明細書の一部をなす付属の図面は、本発明の原理と整合する一つまたは複数の実装を例解し、本発明の記載とともにそのような実装を説明する。図面は必ずしも縮尺通りではなく、本発明の原理を例解することに力点が置かれている。
本発明のいくつかの実装に基づく3Dレンダリング・エンジンまたは装置の諸部分を示す図である。 本発明のいくつかの実装に基づくプロセスを示すフローチャートである。 本発明のいくつかの実装に基づくプロセスを示すフローチャートである。 図2および図3のプロセスを論じるのに有用な例示的なスキームを示す図である。 図2および図3のプロセスを論じるのに有用な例示的なスキームを示す図である。 図2および図3のプロセスを論じるのに有用な例示的なスキームを示す図である。 図2および図3のプロセスを論じるのに有用な例示的なスキームを示す図である。 本発明のいくつかの実装に基づくシステムを示す図である。
以下の記述は付属の図面を参照する。さまざまな図面の間で、同じまたは類似の要素を特定するために同じ参照符号が使われることがある。以下の記述は、特定の構造、アーキテクチャ、インターフェース、技法などといった個別的な詳細を述べることによって、特許請求される発明のさまざまな側面の十全な理解を提供するものであるが、そのような詳細は説明のために与えられるのであり、限定するものと見なされるべきではない。さらに、当業者は、本開示に照らして、特許請求される本発明のさまざまな側面が、これらの個別的詳細から外れる他の例または実装において実施されてもよいことを理解するであろう。以下の開示においてある種の局面では、無用な詳細で本発明の記述を曇らせることを避けるため、よく知られた装置、回路および方法の記述は省略してある。
図1は、特許請求される発明のいくつかの実装に基づく、3Dレンダリング・エンジン100の諸部分の簡略化されたブロック図である。エンジン100は、衝突検出アルゴリズム102、テクスチャー・サンプリング器104およびテクスチャー・メモリ106を含む。当業者は、3Dレンダリング・エンジンが、本発明の実装を埋没させないよう図1からは除外されている他の構成要素(たとえば、テセレーション・ユニット(tessellation unit)、頂点陰影付け器(vertex shader)など)を有していてもよいことを認識するであろう。さらに、本発明はこの点に関し限定されるものではないが、図1は、アルゴリズム102をテクスチャー・サンプリング器104に結合させるために使用されうるピクセル陰影付け器(pixel shader)108を含んでいる。さらに、図1は一つのテクスチャー・サンプリング器104を示しているが、当業者は、特許請求される本発明の範囲および精神から外れることなく衝突検出アルゴリズム102および/またはメモリ106に二つ以上のテクスチャー・サンプリング器が実装および/または結合されてもよいことを認識するであろう。
衝突検出アルゴリズム102は、オブジェクト間の衝突を検出するために使用されうるソフトウェアおよび/またはファームウェアの任意の組み合わせを含む検出ルーチンを有しうる。その目的に向け、アルゴリズム102は、テクスチャー・サンプリング器104に一つまたは複数の検索〔ルックアップ〕インデックスを提供しうる。あるいはまた、アルゴリズム102は一つまたは複数の検索インデックスを陰影付け器108に提供してもよく、陰影付け器108がそれらのインデックスをテクスチャー・サンプリング器104に伝達してもよい。サンプリング器104は次いでそれらのインデックスを使って、のちにより詳細に説明するようにテクスチャー・メモリ106に保持または記憶されているテクスチャー・マップの対応するテクスチャー・アドレスに記憶されている距離データにアクセスしうる。当業者は、アルゴリズム102は、エンジン100をサポートするコンピューティング・システム上で実行される3Dグラフィック・アプリケーション(図示せず)によって派生された(spawned)衝突検出カーネルを有していてもよいことを認識するであろう。あるいはまた、アルゴリズム102は、ピクセル陰影付け器108によって派生された(spawned)衝突検出カーネルを有していてもよい。当業者はさらに、オブジェクト、幾何形状、ポリゴン、物体および多面体といった用語が交換可能に使用されうることを認識するであろう。
テクスチャー・サンプリング器104は、アルゴリズム102によって与えられる一つまたは複数の検索インデックスに応答してメモリ106内のテクスチャー・データにアクセスすることができるハードウェア、ソフトウェアおよび/またはファームウェアのいかなる組み合わせを有するいかなるテクスチャー・サンプリング論理であってもよい。本発明の諸実装によれば、メモリ106に記憶され、サンプリング器104によってアクセスされるテクスチャー・データは、のちにより詳細に説明するように距離値を記憶するピクセル(または「テクセル」)の配列〔アレイ〕を有する、キューブ・マップ(cube map)のようなテクスチャー・マップを含みうる。サンプリング器104は次いでアルゴリズム102によって提供されるインデックスを使用して関連するテクスチャー・アドレスを決定しうる。このテクスチャー・アドレスが、メモリ106に記憶および/または保持されている対応する距離値にアクセスするために使われるものである。サンプリング器104は次いで、のちにより詳細に説明するように、それらの距離値を使って補間された距離値を生成し、それらの補間された距離値をアルゴリズム102に提供しうる。あるいはまた、サンプリング器104はそれらの距離値を陰影付け器108に提供してもよく、陰影付け器108が補間された距離値を生成し、それらの補間された距離値をアルゴリズム102に提供してもよい。
テクスチャー・メモリ106は、距離値のようなテクセル・データを指定する、一つまたは複数のキューブ・マップのような一つまたは複数のテクスチャー・マップを記憶および/または保持するために好適ないかなるメモリ・デバイスまたは機構を有していてもよい。メモリ106はランダム・アクセス・メモリ(RAM)型のメモリまたはフラッシュメモリといったいかなる揮発性または不揮発性メモリ技術を含んでいてもよいが、本発明は決してメモリ106として使うために採用されるメモリの型によって限定されることはない。
図2は、本発明のいくつかの実装に基づくプロセス200を例解するフローチャートである。説明の簡単のため、プロセス200は図1のエンジン100に関して記述されることがあるが、特許請求される発明はこの点に関して限定されるものではなく、特許請求される発明に基づく適切な装置によってサポートされる他のプロセスまたはスキームも可能である。
プロセス200は、第一のポリゴンの受領[工程202]および第二のポリゴンの受領[工程204]をもって始まりうる。いくつかの実装によれば、工程202および204は、たとえば、衝突検出アルゴリズム102が第一および第二の三角形の頂点座標を受領することを含みうる。ここで、前記座標はたとえば、3Dグラフィック・アプリケーション(図示せず)によって実装されうるモデル座標系に関して定義される。そのような3Dグラフィック・アプリケーションは派生(spawn)アルゴリズム102であってもよく、三角形のような幾何学的プリミティブをアルゴリズム102に供給してもよい。
当業者は、全体的な衝突検出プロセスの一環として、アルゴリズム102が、工程202および204に先立って、3Dグラフィック・オブジェクトを八分木またはkd木のような空間的データ構造を使って単純な拒否段階にすでにかけていてもよいことを認識するであろう。そうする際、アルゴリズム102は、一方が工程202の第一のポリゴンを含み他方が工程204の第二のポリゴンを含む二つのオブジェクトがこの単純な拒否段階を通過しており、さらなる衝突検出試験のための候補であることを判別し終わっていることがありうる。衝突検出プロセスの前記単純な拒否段階を執り行うさまざまな方法についての詳細は、特許請求される本発明の範囲外であり、当技術分野においてよく知られている。
プロセス200は、距離値を記憶するテクスチャー・マップの生成をも含みうる[工程206]。本発明のいくつかの実装によれば、工程206は、プロセス200の他のいかなるステップにも先立って行われる前処理段階においてアプリケーション・ソフトウェアによって執り行われうる。本発明の他の実装では、工程206は、プロセス200の他の工程と並行してランタイムでアプリケーション・ソフトウェアによって執り行われうる。いずれにせよ、本発明は工程206がいつ執り行われるかによって限定されるものではない。
図3は、本発明のいくつかの実装に基づき、プロセス200の工程206に基づいて距離値を記憶するテクスチャー・マップを生成するために執り行われうるプロセス300を例解するフローチャートである。説明の簡単のため、プロセス300は図1のエンジン100に関して記載されうるが、特許請求される発明はこの点に関して限定されるものではなく、特許請求される本発明に基づく適切な装置によってサポートされる他のプロセスまたはスキームも可能である。
図4は、代表的なキューブ・マップ・ラベル付け方式400を例解している。これは、プロセス300および/または関係したプロセスの議論を助けるものの、いかなる仕方であれ特許請求される本発明を限定するものと解釈すべきではない。スキーム400は、3Dキューブ・マップ・プリミティブ402を示している。これは、当業者は認識するであろうが、たとえばDirectXのようなよく知られた3Dグラフィック・アプリケーションによって定義されるような標準的なキューブ・マップ・プリミティブに対応しうる。ただし、本発明は、特定のキューブ・マップ・プリミティブに限定されない。マップ402は、立方体の面として配置された6つの二次元(2D)テクスチャー・マップ404〜409からなっていてもよい。ここで、マップ404〜409の各マップは8×8のピクセルの配列を有していてもよく、マップ404〜409の各ピクセルは浮動小数点の距離値を記憶することができてもよい。これについてはのちにより詳細に説明する。しかしながら、本発明は、マップ404〜409の特定の解像度に限定されるものではなく、また本発明はマップ404〜409内のピクセル位置に記憶される前記データ型に限定されるものでもない。さらに、当業者は、3Dキューブ・マップ402のマップ404〜409の各マップが、マップ404〜409の特定のピクセルを指定するインデックスを使うことによってアクセスされうる値の検索テーブルとして扱われてもよいことを認識するであろう。
当業者は認識するであろうように、2Dマップ404〜409の各ピクセルについての座標は、キューブ・マップ402の原点412を起点とする3D方向ベクトル410によってインデックスされてもよい。本発明のいくつかの実装では、原点412は、のちにさらに詳細に説明するように、ポリゴンのようなオブジェクトの重心(centroid)に対応してもよい。しかしながら、本発明は、原点412を定義する仕方に限定されるものではなく、よって、たとえば原点412はオブジェクトの外心(circumcenter)であってもよい。当業者はさらに、一セットのベクトルの各ベクトルが2Dマップ404〜409のうちのあるマップの対応するピクセルを通過するよう、一セットの一意的な方向ベクトルが定義されうることを認識するであろう。たとえば、ベクトル410はマップ408のピクセル414を通過する。ここで、マップ408はキューブ・マップ402の+X面に対応するものであり、ピクセル414はマップ402の特定の(u,v)テクスチャー座標対に対応する。こうして、ベクトル410は、原点412と、ピクセル414に対応するテクスチャー座標対とによって定義されうる。
本発明のいくつかの実装によれば、原点412は、オブジェクトの重心またはオブジェクトの外心であってもよい。しかしながら、本発明はこの点に関して限定されるものではなく、原点412はオブジェクト内にあるいかなる点であってもよい。さらに、プロセス200および300において用いられるテクスチャー・プリミティブはキューブ・マップ・プリミティブを含みうるが、本発明はこの点に関して限定されるものではなく、よって、たとえばプロセス200および300は、6つを超える2D面を用いるテクスチャー・プリミティブ、あるいはたとえば放物面もしくは球面状のテクスチャー・プリミティブといった他の3Dテクスチャー・プリミティブを使って執り行われてもよい。
プロセス300は、前記第一のポリゴンの原点の決定をもって始まりうる。ここで、そのポリゴンはプロセス200の工程202で受領されたのと同じポリゴンである。当業者は、工程302に基づいてポリゴンの原点を決定する一つの方法として、ポリゴンの包摂球(bounding sphere)を決定するよく知られた技法を認識するであろう。議論のために、図5は、工程302のいくつかの実装に基づいて包摂球を決定するスキーム500を例解している。図解の目的のため、図5は包摂球502および関連するポリゴン504を2Dで示しているが、工程302の実装は3Dポリゴン上で執り行われ、結果として3Dの包摂球を与えてもよい。
当業者は、包摂球502は、球502のスカラー半径505が球の中心506からポリゴン504の任意の点までの最大距離を定義するようなポリゴン504を包含する仮想の球面を表していることを認識するであろう。そのように定義されるとき、球502の中心506はポリゴン504の重心を表す。よって、工程302の結果として、前記第一のポリゴンの重心のような原点が決定されうる。しかしながら、上記のように、本発明はオブジェクトの原点が決定または定義される仕方には限定されない。こうして、本発明によれば、プロセス300によって処理されるべき3Dオブジェクトの原点を決定するために任意の手段が使用できる。
プロセス300は、キューブ・マップ・プリミティブの受領に続きうる[工程304]。ここで、そのプリミティブは、テクスチャー・ピクセルの6つの2D配列を含む。上で論じたように、キューブ・マップはよく知られた型の3Dグラフィック・プリミティブである。プロセス300は次いで、前記原点に発してキューブ・マップのピクセルを通る方向沿いでの、前記第一のポリゴンの原点から前記第一のポリゴンの面との交差点までの距離値の決定に続きうる[工程306]。
図6は、工程306のいくつかの実装に基づく距離値を決定するスキーム600を例解している。図6は、ポリゴン602およびキューブ・マップ604の2D断面を示している。例解の目的のため、図6はポリゴン602およびマップ604の2D断面を示しているが、工程306の実装は、3Dキューブ・マップに関して距離値の決定につながる3Dポリゴン上で執り行われてもよい。図6は、マップ604の一つの面608のピクセルP1〜P7の一つの行606を示している。ここで、工程306のいくつかの実装によれば、距離値は、8つの一意的な方向612に沿って決定されうる。ここで、方向612のそれぞれは、ポリゴン602の原点614に始まり、ピクセル606のうち別個のものを通る。こうして、たとえば、ピクセルP7を通る方向616はポリゴン602の面との交差618をもち、原点614とピクセルP7の位置との間のテクスチャー空間単位での距離として定義される距離値620をもつ。同様にして、工程306に基づく距離値が図6のすべての方向612について、またキューブ・マップ604の残りのピクセルについての他のすべての方向(図示せず)について、決定されうる。
図6が断面を示すキューブ・マップ604は、マップ604の各面が8×8のピクセルの配列を有してもよくキューブ・マップ604が全部で144個のピクセルを含みうるようなものだが、本発明はプロセス200および300において用いられるキューブ・マップの特定の解像度には限定されない。よって、たとえば、工程306は、プロセス300において処理された各ポリゴンについて異なる解像度のキューブ・マップをもって執り行われてもよい。たとえば、工程302で受領されたキューブ・マップは、6つの2Dの16×16のピクセル配列を含んでいて、プロセス200および300で用いられるキューブ・マップは全部で1536個のピクセルを含んでいてもよい。あるいはまた、工程302で受領されるキューブ・マップは6つの2Dの4×4のピクセル配列を含んでいて、プロセス200および300で用いられるキューブ・マップは全部で96個のピクセルを含んでいてもよい。さらに、当業者は、工程306が、あるサブセットの諸方向のみ(たとえば方向612のあるサブセットのみ)に沿っての距離値を決定することによって執り行われてもよく、残りの距離値は工程306で決定された距離値の対の間の線形補間によって決定されてもよいことを認識するであろう。
プロセス300は、距離値をキューブ・マップのピクセル値として記憶することに続きうる[工程308]。本発明のいくつかの実装によれば、工程308は、工程306において決定された各距離値を、その距離値に関連付けられた方向上に載っているピクセルのピクセル値として記憶することを含みうる。たとえば、工程306が方向616に関連付けられた距離値620を決定することを含む場合、工程308は、距離値620を、方向616上にあるピクセルP7のピクセル値として記憶することを含みうる。本発明のいくつかの実装では、工程306で決定され工程308で記憶されるそれらの距離値は、浮動小数点値であってもよい。ただし、本発明の特定のデータ・フォーマットをもつ距離値に限定されるものではない。
さらに、本稿で与えられる詳細な記述はポリゴン504またはポリゴン602のような凸ポリゴンを参照しているが、本発明はこの点に関して限定されるものではなく、プロセス200/300において凹ポリゴンが用いられてもよい。当業者は、凸ポリゴンとは、当該オブジェクトの任意の二つの点を結ぶ任意の線分全体が当該オブジェクト内に完全に含まれるオブジェクトとして定義でき、一方、凹ポリゴンとは、オブジェクトの二つの点を結ぶ線分であって当該オブジェクトに完全に含まれないものが見出されてもよいオブジェクトとして定義できることを認識するであろう。
プロセス200/300において凹ポリゴンを用いるためには、凹ポリゴンの凸包に対応する包摂ボリュームが決定されうる。ここで、前記凸包包摂ボリュームは、前記オブジェクトのある原点と前記オブジェクトの任意の点との間の最大距離値に対応するスカラー半径をもつ。そのような凸包包摂ボリュームが次いで工程302で用いられうる。あるいはまた、凸分解(convex decomposition)技法を使用して凹幾何形状をより小さな凸幾何形状に細分してもよい。次いで、プロセス200/300はそれらの凸サブ幾何形状の間の衝突を検出するために使用されうる。凸包包摂ボリュームおよび凸分解技法はいずれも当技術分野においてよく知られたものであり、本稿ではこれ以上詳細に論じることはしない。
再びプロセス200を参照すると、本発明のいくつかの実装では、3Dグラフィック・アプリケーションのようなアプリケーションは、前処理段において(すなわち、プロセス200が執り行われる前に)プロセス300のすべての工程を執り行って、結果として得られるテクスチャー・マップを工程206でアルゴリズム102に供給してもよい。あるいはまた、本発明の他の実装では、アルゴリズム102は、エンジン100によって実装される3Dレンダリングの間に起こる各衝突検出イベントに応答して、動的な仕方でプロセス300を執り行ってもよい。さらに、工程202で受領される各ポリゴンについて、そのポリゴンについての距離値を記憶する関連付けられたキューブ・マップがプロセス300で作成され(すなわち工程206で生成され)終わっていて、プロセス300のさらなる諸工程で使用されてもよい。これについてはのちにより詳細に説明する。本発明のいくつかの実装によれば、プロセス300は、メモリ106内で保持または記憶されるキューブ・マップであって特定のポリゴンについての諸距離値を記憶するキューブ・マップを結果として与えてもよい。
プロセス200は、前記第一のポリゴンのある原点から前記第二のポリゴンのある頂点への第一の距離値を決定することに続きうる[工程208]。ここで、前記第一の距離は、前記第一のポリゴンの前記原点から前記第二のポリゴンのある頂点まで延びる方向ベクトル沿いにある距離である。図7は、工程208のいくつかの実装に基づく第一の距離値を決定するスキーム700を例解している。
図7は、第一のポリゴン702および第二のポリゴン704を示している。ここで、工程208のいくつかの実装によれば、第一の距離値705は、ポリゴン702の原点706とポリゴン704の頂点708との間で、原点706に発して頂点708を通る方向ベクトル710沿いで決定されうる。同様に、たとえば工程208は、原点706とポリゴン704の頂点714の間の第一の距離値712を原点706に発して頂点714を通る方向ベクトル715沿いで決定することを含みうる。例示の目的のため、図7はポリゴン702および704の2D断面を示しているが、工程208の実装は3Dポリゴンに関して執り行われ、3D座標によって定義される方向ベクトル沿いの第一の距離値の決定を結果として与えてもよい。本発明のいくつかの実装では、工程208は、前記第一および第二のポリゴンをそれぞれ工程202および204において受領した後に、アルゴリズム102によって執り行われてもよい。
プロセス200は次いで、テクスチャー・マップの一つまたは複数回の検索を実行することによって、前記第一のポリゴンの原点から前記第一のポリゴンのある面への、ある方向ベクトルに沿った第二の距離の決定に続きうる[工程210]。本発明のいくつかの実装では、再び図7を参照すると、工程210は、たとえば方向ベクトル710に沿っての原点706からポリゴン702の面722までの第二の距離720を決定することを含みうる。この例において、第二の距離720を決定することは、工程206で生成されたテクスチャー・マップのピクセル725および726に記憶された(すなわち工程308において)距離値(すなわち306で決定されたもの)を検索し、次いでそれらの距離値の間を線形補間して工程210で第二の距離720を得ることを含みうる。
同様に、たとえば工程210は、方向ベクトル715に沿っての原点706からポリゴン702の面722への第二の距離724を決定することを含みうる。その際、この例において、第二の距離724を決定することは、工程206で生成されたテクスチャー・マップのピクセル727および728に記憶されている距離値を検索し、それらの距離値の間を線形補間して工程210で第二の距離724を得ることを含みうる。本発明のいくつかの実装では、工程210は、アルゴリズム102が前記諸ピクセル(たとえばピクセル725および726またはピクセル727および728)に関連付けられた検索インデックスをテクスチャー・サンプリング器104に提供することを含みうる。サンプリング器104は次いでそれらのインデックスを使って、メモリ106に記憶されているキューブ・マップの対応するピクセルについての距離値にアクセスするための対応するメモリ・アドレスを生成する。サンプリング器104は次いでそれらの距離値の間を線形補間して、結果としての補間された距離値をアルゴリズム102に提供しうる。あるいはまた、サンプリング器104が前記距離値をアルゴリズム102に提供し、アルゴリズム102がそれらの値の間を線形補間して工程210で第二の距離を決定してもよい。
方向ベクトル710および715のそれぞれは、図7では、それぞれピクセル725と726の間およびピクセル727と728の間にあるテクスチャー座標対を通るまたは指定するものとして示されているが、本発明は図7に示される2D表現に限定されるものではない。こうして、たとえば、方向ベクトル710および715のいずれも、キューブ・マップのある面の二つのピクセル行またはピクセル列の間にあるテクスチャー座標対を通るまたは指定することができる。こうして、工程210は、そのテクスチャー座標対を囲む4つのピクセルに記憶された距離値にアクセスするために4つの検索インデックスを使い、それら4つの距離値の間で双線形補間して第二の距離値を得ることを含みうる。しかしながら、本発明は、線形補間(双線形、三重線形または他のものであれ)に限定されるものではない。こうして、たとえば、工程210は、テクスチャー・マップから得られた距離値の最近接点サンプリングを使って執り行われてもよい。
本発明の他の実装では、工程210は、アルゴリズム102がピクセル陰影付け器108に前記諸ピクセル(たとえばピクセル725および726またはピクセル727および728)に関連付けられた検索インデックスを提供することを含んでいてもよく、陰影付け器108はこれらのインデックスをテクスチャー・サンプリング器104に伝達してもよい。サンプリング器104は次いでそれらのインデックスを使ってメモリ106に記憶されているキューブ・マップの対応するピクセルについての距離値にアクセスするための対応するメモリ・アドレスを生成し、それらの距離値を陰影付け器108に提供してもよい。陰影付け器108は次いでそれらの距離値の間を線形補間して、結果として得られる補間された距離値をアルゴリズム102に与えてもよい。あるいはまた、陰影付け器108は距離値をアルゴリズム102に与え、アルゴリズム102がそれらの値の間を線形補間して工程210において第二の距離を決定してもよい。
プロセス200は次いで、前記第一の距離値を前記第二の距離値と比べ[工程212]、前記第二の距離が前記第一の距離以上であれば、前記第一および第二のポリゴンの間の衝突を検出する[工程216]ことに続きうる。再び図7を参照すると、工程212は、たとえば、第一の距離705を方向ベクトル710に沿った第二の距離720に比較することを含みうる。この場合、第一の距離705のほうが第二の距離720より大きく、衝突は検出されない。しかしながら、工程212は、別の例については、第一の距離712を方向ベクトル715に沿った前記第二の距離724と比較することを含みうる。この場合、第二の距離724のほうが第一の距離712より大きく、よって工程216で衝突が検出されうる。本発明のいくつかの実装では、アルゴリズム102は工程212の比較を執り行い、第二の距離が第一の距離以上であれば工程216で衝突が起こったことを決定しうる。
上記の工程208および210はそれぞれ第一および第二の距離を決定することに言及し、工程212はこれら二つの距離を互いと比較することに言及しているが、本発明の他の実装では、プロセス200は、それらの距離の平方を決定し、次いでそれらの平方距離値を互いと比較する工程を工程212に含んでいてもよい。こうして、これらの実装では、工程214は、第二の距離の平方が第一の距離の平方以上であるかどうかを判定することを含みうる。しかしながら、本発明は、工程212において距離または距離の平方を比較することに限定されるものではない。よって、たとえば、プロセス200は、それらの距離の平方根を決定し、それらの平方根距離値を互いと比較することを工程212において含んでいてもよい。
図2および図3に示された諸工程は示された順序で実装される必要はないし、必ずしも全部の工程が実行される必要はない。また、他の工程に依存しない工程は該他の工程と並列に実行されてもよい。たとえば、工程202および204は並列に執り行われてもよい。あるいはまた、工程202および204は単一の動作に組み合わされてもよい。換言すれば、第一および第二のポリゴンの受領は単一の動作で行われてもよい。さらに、上記したように、工程206、キューブ・マップの生成は、本発明のいくつかの実装によれば、プロセス200の他のすべての工程に先立って行われてもよいし、あるいはまた工程206は工程202もしくは204の後にまたは工程202もしくは204と並列に行われてもよい。さらに、この図における工程の少なくともいくつかは、機械可読媒体に具現された命令または命令の群として実装されてもよい。
本発明のいくつかの実装では、プロセス200および/または300において用いられるアルゴリズム102は次の擬似コードを含んでいてもよい。
Figure 0004842379
本発明の他の実装では、プロセス200および/または300において用いられるアルゴリズム102は、エンジン100のピクセル陰影付け器108によって派生され(spawned)あるいはエンジン100のピクセル陰影付け器108と関連付けられてもよく、次の高レベル陰影付け言語(HLSL: high level shading language)ピクセル陰影付け器コードを含んでいてもよい。
Figure 0004842379
Figure 0004842379
Figure 0004842379
Figure 0004842379
図8は、本発明のいくつかの実装に基づく例示的なシステム800を示す。システム500は二つ以上の処理コア803を有するホスト・プロセッサ802、グラフィック・プロセッサ804、メモリ806および808(たとえば、動的ランダム・アクセス・メモリ(DRAM)、静的ランダム・アクセス・メモリ(SRAM)、不揮発性メモリなど)、バスもしくは通信路(単数または複数)810、ネットワーク・インターフェース814(たとえば有線および/または無線の構内ネットワーク(LAN)および/または広域ネットワーク(WAN)および/またはパーソナル・エリア・ネットワーク(PAN)および/または他の有線および/または無線のネットワーク・インターフェース)ならびにディスプレイ・プロセッサおよび/またはコントローラ816を含んでいてもよい。システム800はまた、ネットワーク・インターフェース814に結合されたアンテナ815(たとえば、ダイポール・アンテナ、狭帯域蛇行線アンテナ(MLA: Meander Line Antenna)、広帯域MLA、逆「F」型アンテナ、平面状逆「F」型アンテナ、グーバー(Goubau)アンテナ、パッチ・アンテナなど)をも含んでいてもよい。システム800は、3Dグラフィック・データを処理してそのデータを表示装置(図示せず)上での呈示に好適なラスタ化されたフォーマットで提供するのに好適ないかなるシステムであってもよい。表示装置は、若干の例を挙げれば、液晶ディスプレイ(LCD)または陰極線管(CRT)ディスプレイといったものである。
システム800は、多様な物理的実装形態をとりうる。たとえば、システム800は、パーソナル・コンピュータ(PC)、ネットワーク接続されたPC、サーバー・コンピューティング・システム、ハンドヘルド型コンピューティング・プラットフォーム(たとえば携帯情報端末(PDA))、ゲーム・システム(携帯型であってもなくてもよい)、3D対応携帯電話端末機などにおいて実装されてもよい。さらに、システム800の全コンポーネントは、システム・オン・チップ(SOC: system-on-a-chip)集積回路(IC)のような単一のデバイス内に実装されてもよいが、システム800のコンポーネントは複数のICまたはデバイスにまたがって分散されてもよい。たとえば、ホスト・プロセッサ802はコンポーネント806および814とともに、単一のPCに含まれる複数のICとして実装されてもよく、一方でグラフィック・プロセッサ804ならびにコンポーネント808および816はホスト・プロセッサ802およびコンポーネント806および814に通信路810を通じて結合された、テレビまたは他のディスプレイといった別個の装置内に実装されてもよい。
ホスト・プロセッサ802は、グラフィック・プロセッサ504に3Dグラフィック・データおよび/または命令を提供できるいかなる制御および/または処理論理、ハードウェア、ソフトウェアおよび/またはファームウェアを含む特殊目的または汎用のプロセッサを含んでいてもよい。プロセッサ802は、3D座標変換などといった多様な3Dグラフィック計算を実行しうる。その結果は、バス810を通じてグラフィック・プロセッサ804に提供されてもよく、および/またはそれはプロセッサ804による最終的な使用のためにメモリ806および/または808内に記憶されてもよい。本発明のいくつかの実装では、ホスト・プロセッサ802は中央処理ユニット(CPU)であってもよい。
ある実装では、ホスト・プロセッサ802は、キューブ・マップを使ったリアルタイムの多重解像度の(multi-resolution)3D衝突検出をサポートするまたは可能にするいくつかのタスクの任意のものを実行することができてもよい。サポート・タスクはたとえば、本発明がこの点に関して限定されるものではないが、3Dグラフィック・データをグラフィック・プロセッサ804に提供すること、キューブ・マップのような一つまたは複数のテクスチャー・マップをメモリ808に入れること、マイクロコードを(アンテナ815およびインターフェース814を介して)プロセッサ804にダウンロードすること、プロセッサ804内のレジスタを初期化および/または設定すること、割り込みサービスならびに3Dグラフィック・データのアップロードおよび/またはダウンロードのためのバス・インターフェースを設けることを含みうる。代替的な諸実装では、これらの機能の一部または全部はグラフィック・プロセッサ804によって実行されてもよい。図5はホスト・プロセッサ802およびグラフィック・プロセッサ804を相異なるコンポーネントとして示しているが、本発明はこの点に関して限定されるものではない。当業者はプロセッサ802および804に可能性としてはシステム800の他のコンポーネントも加えて、単一のIC内に実装されてもよいことを認識するであろう。
本発明のいくつかの実装によれば、コア803のそれぞれが、並列に、衝突検出アルゴリズム102の別個の実装を使ってポリゴンの別々の対についてプロセス200/300を並列して実行してもよい。あるいはまた、そのような並列処理方式はグラフィック・プロセッサ804によって実装されてもよい。
グラフィック・プロセッサ804は、グラフィック・データを処理する機能をもついかなる処理論理、ハードウェア、ソフトウェアおよび/またはファームウェアを有していてもよい。ある実装では、グラフィック・プロセッサ804は、一つまたは複数の標準化されたレンダリング用アプリケーション・プログラミング・インターフェース(API)に従ってグラフィック・データを処理する機能のある3Dグラフィック・アーキテクチャを実装してもよい。そのようなAPIは、若干の名前を挙げれば、OpenGL2.0(商標)(「The OpenGL Graphics System: A Specification」)(バージョン2.0、2004年10月22日)およびDirectX9.0(商標)(バージョン9.0c、2004年8月8日)といったものである。ただし、本発明はこの点に関して限定されるものではない。グラフィック・プロセッサ804はホスト・プロセッサ802によって提供される、メモリ806および/または808内に保持もしくは記憶されている、および/またはシステム800の外部のソースによって提供され、バス810を通じてインターフェース814から得られる3Dグラフィック・データを処理しうる。
グラフィック・プロセッサ804は3Dシーン・データの形で3Dグラフィック・データを受領し、そのデータを処理して画像データを、ディスプレイ・プロセッサ816によるディスプレイ固有データへの変換のために好適なフォーマットで提供しうる。さらに、グラフィック・プロセッサ804は、テクスチャー・サンプリング器104と同様の一つまたは複数のテクスチャー・サンプリング器に加えて、ラスタ化器段など、多様な3Dグラフィック処理コンポーネントおよび/または段(図示せず)を実装しうる。グラフィック・プロセッサ804によって実装されるテクスチャー・サンプリング器は、メモリ806および808の一方または両方においてキューブ・マップの形で記憶または保持されているテクスチャー・データを取ってくるまたはこれにアクセスすることができる。さらに、本発明のいくつかの実装によれば、グラフィック・プロセッサ804は、並列的な仕方でポリゴンの複数の対について衝突検出を執り行うために一つまたは複数のキューブ・マップに記憶されている距離値を使うことができる二つ以上のテクスチャー・サンプリング器を実装してもよい。
バスまたは通信路(単数または複数)810は、システム800の要素のうちの任意のものの間で情報(たとえばグラフィック・データ、命令など)を伝達するためのいかなる機構を有していてもよい。たとえば、本発明はこの点に関して限定されるものではないが、通信路(単数または複数)810は、プロセッサ802とプロセッサ804の間でたとえば命令(たとえばマクロコード)を伝達することができる多目的バスを有していてもよい。あるいはまた、経路(単数または複数)810は無線通信路を有していてもよい。
ディスプレイ・プロセッサ816は、グラフィック・プロセッサ804によって供給されるラスタ化された画像データをディスプレイを駆動するために好適なフォーマット(すなわちディスプレイ固有データ)に変換する機能のあるいかなる処理論理、ハードウェア、ソフトウェアおよび/またはファームウェアを有していてもよい。たとえば、本発明はこの点に関して限定されるものではないが、プロセッサ804は、画像データをプロセッサ816に、特定の色データ・フォーマットで、たとえば圧縮された赤・緑・青(RGB)フォーマットで、提供してもよく、プロセッサ816はそのようなRGBデータを、たとえば対応するLCD駆動データ・レベルを生成することなどによって処理してもよい。図8は、プロセッサ804および816を相異なるコンポーネントとして示しているが、本発明はこの点に関して限定されるものではない。当業者は、たとえば、ディスプレイ・プロセッサ816の機能のすべてとは言わないまでも一部が、グラフィック・プロセッサ804および/またはホスト・プロセッサ802によって実行されてもよいことを認識するであろう。
こうして、キューブ・マップのようなハードウェア・プリミティブを利用することによって、本発明に基づく衝突検出アルゴリズムは、プロセッサ804のようなグラフィック・プロセッサ上で完全に実行されうる。例外は、可能性としては、各ポリゴンについて一度実装され、プロセス200の前に行われうるプロセス300の前処理である。さらに、本発明に基づく衝突検出アルゴリズムは、オブジェクト‐オブジェクト検出を最小にするために高レベルの八分木構造をレバレッジすることができ、八分木構造によって候補として識別されるオブジェクト‐オブジェクト相互作用についてキューブ・マップに依拠してもよい。このように、衝突検出アルゴリズムをグラフィック・プロセッサ(たとえばプロセッサ804)に移すことによって、CPU(たとえばホスト・プロセッサ802)は他のタスクを執り行うために解放されうる。ただし、本発明に基づく衝突検出アルゴリズムはCPU上でも実行されうる。さらに、キューブ・マップのようなハードウェア・プリミティブを使って衝突を検出することは、衝突当たりの算術演算の著しい減少(可能性としては3分の1への減少)につながることがありえ、完全に独立な衝突検出試験を実行する機能のため、多数処理コア実装(たとえば、複数のコア803を使った実装)になじみやすい。
特許請求される発明と整合する一つまたは複数の具現についての以上の記載は本発明の例解および記述を与えるものながら、網羅的であることは意図されていないし、開示されている個別的な実装に本発明の範囲を限定することも意図されていない。明らかに、修正および変形が上記の教示に照らして可能であり、本発明のさまざまな実装の実践から取得されることもありうる。たとえば、図1および対応する本文は単一のテクスチャー・メモリ106に結合された単一のテクスチャー・サンプリング器104を図示し、記述しているかもしれないが、当業者は、本発明に基づくデータ・プロセッサが、一つまたは複数のテクスチャー・メモリに結合された、それぞれが本発明に従って動作する複数のテクスチャー・サンプリング器を用いるレンダリング・エンジンを含んでいてもよいことを認識するであろう。明らかに、本発明に基づくキューブ・マップを使ったリアルタイムの多重解像度の3D衝突検出を提供するためには、多くの他の実装が用いられうる。
本願の本記載において述べられているいかなる装置、要素、工程、データ型、命令等も、明示的にそう記載されているのでない限り、本発明にとって決定的または本質的であると解釈されるべきではない。また、ここでの用法では、単数形の表現は一つまたは複数の項目を含むことが意図されている。さらに、本稿または付属の請求項で「結合された」または「応答する」または「通信している」といった用語または句が使用されるときは、これらの用語は広義に解釈されることが意図されている。たとえば、「結合された」という句は、その句が使われている前後関係に適切なように、通信上結合されている、電気的に結合されている、および/または動作上結合されていることを指しうる。特許請求される発明の上記の実施形態に対して、本発明の精神および原理から実質的に外れることなく、変形および修正をなしうる。そのようなすべての修正および変形は、本開示の範囲内に含められ、付属の請求項によって保護されることが意図されている。

Claims (15)

  1. コンピュータによって実行される方法であって、
    第一のポリゴンの原点から第二のポリゴンの頂点への距離に対応する第一の距離を決定手段によって決定する段階であって、ここで、前記第一のポリゴンの前記原点および前記第二のポリゴンの前記頂点は方向ベクトルを画定する、段階と;
    メモリに記憶されている前記第一のポリゴンについてのキューブ・マップを用いることによって、前記方向ベクトルに沿って、前記第一のポリゴンの前記原点から前記第一のポリゴンの面までの距離に対応する第二の距離を決定手段によって決定する段階であって、前記キューブ・マップは、6個の正方形のテクスチャーとして記憶されている6個の面をもち、前記6個の正方形のテクスチャー上の各要素には距離値が含まれ、正方形のテクスチャーのある要素における距離値は、前記第一のポリゴンの前記原点から、前記第一のポリゴンの前記原点に発し前記正方形のテクスチャーのその要素を通るベクトルに沿った、前記第一のポリゴンの面までの距離を表す、段階と;
    比較手段によって前記第一の距離を前記第二の距離と比較する段階と;
    検出手段によって、前記第二の距離が前記第一の距離以上である場合に前記第一のポリゴンと前記第二のポリゴンの間の衝突を検出する段階とを有する、
    方法。
  2. 前記キューブ・マップが、前記第一のポリゴンの前記原点と前記第一のポリゴンのすべての面との間の距離を記憶する、請求項1記載の方法。
  3. 前記第一のポリゴンの前記原点が、前記第一のポリゴンの包摂球面の重心または前記第一のポリゴンの外心の一方である、請求項1または2記載の方法。
  4. キューブ・マップを用いることによって前記第一のポリゴンの前記原点から前記第一のポリゴンの面までの距離に対応する第二の距離を決定する前記段階が、前記第二の距離を得るために前記6個の正方形のテクスチャー上の少なくとも二つの要素についての距離値を補間することを含む、請求項1ないし3のうちいずれか一項記載の方法。
  5. 前記第一の距離を前記第二の距離と比較する段階が前記第一の距離の平方を前記第二の距離の平方と比較することを含む、請求項記載の方法。
  6. 前記第一のポリゴンの前記原点を前記第一のポリゴンの重心として決定し;
    前記重心から前記第一のポリゴンのすべての面までの複数の距離を決定し、ここで、前記複数の距離の各距離は複数のベクトルのうちの対応するベクトルに沿って決定されるものであり、前記複数のベクトルの各ベクトルは前記重心に発して前記キューブ・マップの正方形のテクスチャーの対応する要素を通るものであり;
    前記複数の距離の各距離を、前記キューブ・マップの正方形のテクスチャーの対応する要素の値として記憶することによって、
    前記キューブ・マップを生成する段階をさらに有する、
    請求項1記載の方法。
  7. 命令が記憶された機械アクセス可能媒体であって、前記命令は、機械によって実行されたときに前記機械に:
    第一のポリゴンの原点から第二のポリゴンの頂点への距離に対応する第一の距離を決定手段によって決定する段階であって、ここで、前記第一のポリゴンの前記原点および前記第二のポリゴンの前記頂点は方向ベクトルを画定する、段階と;
    メモリに記憶されている前記第一のポリゴンについてのキューブ・マップを用いることによって、前記方向ベクトルに沿って、前記第一のポリゴンの前記原点から前記第一のポリゴンの面までの距離に対応する第二の距離を決定手段によって決定する段階であって、前記キューブ・マップは、6個の正方形のテクスチャーとして記憶されている6個の面をもち、前記6個の正方形のテクスチャー上の各要素には距離値が含まれ、正方形のテクスチャーのある要素における距離値は、前記第一のポリゴンの前記原点から、前記第一のポリゴンの前記原点に発し前記正方形のテクスチャーのその要素を通るベクトルに沿った、前記第一のポリゴンの面までの距離を表す、段階と;
    比較手段によって前記第一の距離を前記第二の距離と比較する段階と;
    検出手段によって、前記第二の距離が前記第一の距離以上である場合に前記第一のポリゴンと前記第二のポリゴンの間の衝突を検出する段階とを実行させる、
    機械アクセス可能媒体
  8. 前記キューブ・マップが、前記第一のポリゴンの前記原点と前記第一のポリゴンのすべての面との間の距離を記憶する、請求項記載の機械アクセス可能媒体
  9. 前記第一のポリゴンの前記原点が、前記第一のポリゴンの包摂球面の重心または前記第一のポリゴンの外心の一方である、請求項7または8記載の機械アクセス可能媒体
  10. キューブ・マップを用いることによって前記第一のポリゴンの前記原点から前記第一のポリゴンの面までの距離に対応する第二の距離を決定する前記段階が、前記第二の距離を得るために前記6個の正方形のテクスチャー上の少なくとも二つの要素についての距離値を補間することを含む、請求項7ないし9のうちいずれか一項記載の機械アクセス可能媒体。
  11. 機械によって実行されたときに、前記機械に:
    前記第一のポリゴンの前記原点を前記第一のポリゴンの重心として決定し;
    前記重心から前記第一のポリゴンのすべての面までの複数の距離を決定し、ここで、前記複数の距離の各距離は複数のベクトルのうちの対応するベクトルに沿って決定されるものであり、前記複数のベクトルの各ベクトルは前記重心に発して前記キューブ・マップの正方形のテクスチャーの対応する要素を通るものであり;
    前記複数の距離の各距離を、前記キューブ・マップの正方形のテクスチャーの対応する要素の値として記憶することによって、
    前記キューブ・マップを生成する段階を実行させる命令さらに記憶されている、
    請求項記載の機械アクセス可能媒体
  12. キューブ・マップを記憶するメモリであって、前記キューブ・マップは、6個の正方形のテクスチャーとして記憶されている6個の面をもち、前記6個の正方形のテクスチャー上の各要素には距離値が含まれ、正方形のテクスチャーのある要素における距離値は、ポリゴンの原点から、前記ポリゴンの前記原点に発し前記正方形のテクスチャーのその要素を通るベクトルに沿った、前記ポリゴンの面までの距離を表す、メモリと;
    第一のポリゴンの原点から第二のポリゴンの頂点への距離に対応する第一の距離を決定する手段であって、ここで、前記第一のポリゴンの前記原点および前記第二のポリゴンの前記頂点は方向ベクトルを画定する、手段と;
    前記メモリに記憶されている前記第一のポリゴンについてのキューブ・マップを用いることによって、前記方向ベクトルに沿って、前記第一のポリゴンの前記原点から前記第一のポリゴンの面までの距離に対応する第二の距離を決定する手段と;
    前記第一の距離を前記第二の距離と比較する手段と;
    前記第二の距離が前記第一の距離以上である場合に前記第一のポリゴンと前記第二のポリゴンの間の衝突を検出する手段とを有する、
    装置。
  13. 前記メモリが、動的ランダム・アクセス・メモリ(DRAM)、静的ランダム・アクセス・メモリ(SRAM)または不揮発性メモリのうちの一つを含む、請求項12記載の装置。
  14. 少なくとも前記比較する手段および前記検出する手段としてはたらく衝突検出アルゴリズムを受信するアンテナをさらに有する、請求項13記載の装置。
  15. 前記アンテナが、ダイポール・アンテナ、狭帯域蛇行線アンテナ(MLA)、広帯域MLA、逆「F」型アンテナ、平面状逆「F」型アンテナ、グーバー・アンテナまたはパッチ・アンテナのうちの一つを含む、請求項14記載の装置。
JP2009521893A 2006-07-28 2007-07-12 キューブ・マップを使うリアルタイム多重解像度3d衝突検出 Expired - Fee Related JP4842379B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/495,366 US7928993B2 (en) 2006-07-28 2006-07-28 Real-time multi-resolution 3D collision detection using cube-maps
US11/495,366 2006-07-28
PCT/US2007/073381 WO2008014127A1 (en) 2006-07-28 2007-07-12 Real-time multi-resolution 3d collision detection using cube-maps

Publications (2)

Publication Number Publication Date
JP2009545075A JP2009545075A (ja) 2009-12-17
JP4842379B2 true JP4842379B2 (ja) 2011-12-21

Family

ID=38981790

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009521893A Expired - Fee Related JP4842379B2 (ja) 2006-07-28 2007-07-12 キューブ・マップを使うリアルタイム多重解像度3d衝突検出

Country Status (5)

Country Link
US (1) US7928993B2 (ja)
EP (1) EP2047430A4 (ja)
JP (1) JP4842379B2 (ja)
CN (1) CN101496067B (ja)
WO (1) WO2008014127A1 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7859548B1 (en) * 2006-10-19 2010-12-28 Nvidia Corporation Offloading cube map calculations to a shader
US8252807B2 (en) * 2007-03-02 2012-08-28 Board Of Regents, The University Of Texas System Methods of inhibiting the interaction between S100 and the receptor for advanced glycation end-products
US20090160869A1 (en) * 2007-12-21 2009-06-25 Mikhail Smelyanskiy Extended texture mapping unit
US8200041B2 (en) * 2008-12-18 2012-06-12 Intel Corporation Hardware accelerated silhouette detection
US8275805B2 (en) * 2010-03-26 2012-09-25 Intel Corporation Method of decreasing a total computation time for a visual simulation loop in a virtual world application
JP5708196B2 (ja) 2011-04-21 2015-04-30 セイコーエプソン株式会社 衝突検出システム、ロボットシステム、衝突検出方法及びプログラム
JP5874326B2 (ja) * 2011-11-04 2016-03-02 セイコーエプソン株式会社 衝突検出システム、ロボットシステム、衝突検出方法及びプログラム
CN103177135A (zh) * 2011-12-23 2013-06-26 鸿富锦精密工业(深圳)有限公司 三次元坐标系图形化创建系统及方法
US9196083B2 (en) * 2012-01-16 2015-11-24 Intel Corporation Time-continuous collision detection using 3D rasterization
FR2988502A1 (fr) * 2012-03-26 2013-09-27 Thomson Licensing Procede pour representer un milieu participant dans une scene et dispositif correspondant
JP6069923B2 (ja) * 2012-07-20 2017-02-01 セイコーエプソン株式会社 ロボットシステム、ロボット、ロボット制御装置
US9082204B2 (en) 2012-08-30 2015-07-14 Qualcomm Incorporated Storage structures for stitching primitives in graphics processing
US9076260B2 (en) * 2012-08-30 2015-07-07 Qualcomm Incorporated Stitching for primitives in graphics processing
US9142060B2 (en) 2012-08-30 2015-09-22 Qualcomm Incorporated Computation reduced tessellation
KR101500814B1 (ko) * 2012-12-27 2015-03-10 이화여자대학교 산학협력단 구들의 교집합을 이용한 바운딩 볼륨 생성 장치 및 방법
EP2801954A1 (en) * 2013-05-07 2014-11-12 Thomson Licensing Method and device for visualizing contact(s) between objects of a virtual scene
GB2528655B (en) 2014-07-24 2020-10-07 Advanced Risc Mach Ltd Graphics Processing Systems
US10614619B2 (en) 2015-02-27 2020-04-07 Arm Limited Graphics processing systems
GB2541928B (en) 2015-09-04 2018-01-31 Advanced Risc Mach Ltd Graphics processing systems
GB2543766B (en) 2015-10-26 2018-02-14 Advanced Risc Mach Ltd Graphics processing systems
CN105427236A (zh) * 2015-12-18 2016-03-23 魅族科技(中国)有限公司 一种图像渲染方法及装置
CN113001551B (zh) * 2021-03-18 2022-09-23 青岛九维华盾科技研究院有限公司 基于八叉树结构分割的快速碰撞检测方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08185545A (ja) * 1994-12-28 1996-07-16 Nippon Steel Corp 画像生成方法及び装置
JPH10105734A (ja) * 1996-08-30 1998-04-24 Internatl Business Mach Corp <Ibm> 鏡面レンダリング方法及び装置
JP2002200357A (ja) * 2000-11-01 2002-07-16 Sony Computer Entertainment Inc ゲーム用のステージ形成方法、ゲーム用のステージ形成方法プログラム、ゲーム用のステージ形成方法プログラムが記憶された記憶媒体、端末装置、及びネットゲームシステム
JP2004227095A (ja) * 2003-01-20 2004-08-12 Nhk Engineering Services Inc テクスチャマップ作成方法、テクスチャマップ作成用プログラムおよびテクスチャマップ作成装置
JP2004334802A (ja) * 2003-05-12 2004-11-25 Namco Ltd 画像生成システム、プログラム及び情報記憶媒体

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6986062B2 (en) * 1998-04-09 2006-01-10 Microsoft Corporation Set top box object security system
US6498607B1 (en) 1999-01-29 2002-12-24 Mitsubishi Electric Research Laboratories, Inc. Method for generating graphical object represented as surface elements
US6396492B1 (en) * 1999-08-06 2002-05-28 Mitsubishi Electric Research Laboratories, Inc Detail-directed hierarchical distance fields
US6714213B1 (en) * 1999-10-08 2004-03-30 General Electric Company System and method for providing interactive haptic collision detection
US6559853B1 (en) 2000-02-16 2003-05-06 Enroute, Inc. Environment map creation using texture projections with polygonal curved surfaces
US7065242B2 (en) 2000-03-28 2006-06-20 Viewpoint Corporation System and method of three-dimensional image capture and modeling
US20020060685A1 (en) * 2000-04-28 2002-05-23 Malcolm Handley Method, system, and computer program product for managing terrain rendering information
JP2002007409A (ja) * 2000-06-20 2002-01-11 Infoteria Corp 識別子管理システムおよびそのアクセス管理方法ならびに記憶媒体
US6798415B2 (en) 2001-06-21 2004-09-28 Intel Corporation Rendering collisions of three-dimensional models
JP4700900B2 (ja) * 2002-06-28 2011-06-15 キヤノン株式会社 画像表示装置
US7129942B2 (en) 2002-12-10 2006-10-31 International Business Machines Corporation System and method for performing domain decomposition for multiresolution surface analysis
WO2007054755A2 (en) * 2004-12-03 2007-05-18 Telekinesys Research Limited Physics simulation apparatus and method
US7623900B2 (en) * 2005-09-02 2009-11-24 Toshiba Medical Visualization Systems Europe, Ltd. Method for navigating a virtual camera along a biological object with a lumen

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08185545A (ja) * 1994-12-28 1996-07-16 Nippon Steel Corp 画像生成方法及び装置
JPH10105734A (ja) * 1996-08-30 1998-04-24 Internatl Business Mach Corp <Ibm> 鏡面レンダリング方法及び装置
JP2002200357A (ja) * 2000-11-01 2002-07-16 Sony Computer Entertainment Inc ゲーム用のステージ形成方法、ゲーム用のステージ形成方法プログラム、ゲーム用のステージ形成方法プログラムが記憶された記憶媒体、端末装置、及びネットゲームシステム
JP2004227095A (ja) * 2003-01-20 2004-08-12 Nhk Engineering Services Inc テクスチャマップ作成方法、テクスチャマップ作成用プログラムおよびテクスチャマップ作成装置
JP2004334802A (ja) * 2003-05-12 2004-11-25 Namco Ltd 画像生成システム、プログラム及び情報記憶媒体

Also Published As

Publication number Publication date
JP2009545075A (ja) 2009-12-17
EP2047430A1 (en) 2009-04-15
US7928993B2 (en) 2011-04-19
CN101496067B (zh) 2013-11-13
US20080024491A1 (en) 2008-01-31
CN101496067A (zh) 2009-07-29
EP2047430A4 (en) 2012-11-21
WO2008014127A1 (en) 2008-01-31

Similar Documents

Publication Publication Date Title
JP4842379B2 (ja) キューブ・マップを使うリアルタイム多重解像度3d衝突検出
US7580035B2 (en) Real-time collision detection using clipping
US9754407B2 (en) System, method, and computer program product for shading using a dynamic object-space grid
US9747718B2 (en) System, method, and computer program product for performing object-space shading
US7423644B2 (en) Method and apparatus for dual pass adaptive tessellation
US9177351B2 (en) Multi-primitive graphics rendering pipeline
US10984587B2 (en) Virtual photogrammetry
US7408553B1 (en) Inside testing for paths
US7684641B1 (en) Inside testing for paths using a derivative mask
US20230078932A1 (en) Displaced Micro-meshes for Ray and Path Tracing
US7737997B2 (en) Collision detection of concave bodies using art gallery problem and cube maps
JP2010507175A (ja) 共有算術演算処理ユニットを使用するグラフィックス・プロセッシング・ユニット
KR20110016938A (ko) 기하 셰이더를 사용하는 테셀레이션 엔진을 위한 시스템, 방법, 및 컴퓨터 프로그램 제품
US20090295799A1 (en) Optimized Frustum Clipping Via Cached Clip Vertices
US9401046B2 (en) Micropolygon splatting
WO2013101167A1 (en) Five-dimensional rasterization with conservative bounds
US10192348B2 (en) Method and apparatus for processing texture
US20170061682A1 (en) Rendering method and apparatus
US7593018B1 (en) Method and apparatus for providing explicit weights for texture filtering
JPH08249491A (ja) 奥行き情報を含むテクスチャ・イメージを用いる3dグラフィック装置
US7492373B2 (en) Reducing memory bandwidth to texture samplers via re-interpolation of texture coordinates
US7884830B1 (en) Apparatus, system, and method for indexing an array of cube map textures
US8207978B2 (en) Simplification of 3D texture address computation based on aligned, non-perspective objects
Schilling Antialiasing of environment maps

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110412

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110510

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110803

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: 20110906

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: 20111005

R150 Certificate of patent or registration of utility model

Ref document number: 4842379

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: 20141014

Year of fee payment: 3

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

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