JP2019086876A - 画像処理装置、画像処理方法およびプログラム - Google Patents

画像処理装置、画像処理方法およびプログラム Download PDF

Info

Publication number
JP2019086876A
JP2019086876A JP2017212536A JP2017212536A JP2019086876A JP 2019086876 A JP2019086876 A JP 2019086876A JP 2017212536 A JP2017212536 A JP 2017212536A JP 2017212536 A JP2017212536 A JP 2017212536A JP 2019086876 A JP2019086876 A JP 2019086876A
Authority
JP
Japan
Prior art keywords
tetrahedron
image processing
contact point
apex
calculated
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.)
Granted
Application number
JP2017212536A
Other languages
English (en)
Other versions
JP6636001B2 (ja
Inventor
心 渡部
Kokoro Watabe
心 渡部
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.)
Sony Interactive Entertainment LLC
Original Assignee
Sony Interactive Entertainment LLC
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 Sony Interactive Entertainment LLC filed Critical Sony Interactive Entertainment LLC
Priority to JP2017212536A priority Critical patent/JP6636001B2/ja
Priority to US16/155,003 priority patent/US10896510B2/en
Publication of JP2019086876A publication Critical patent/JP2019086876A/ja
Application granted granted Critical
Publication of JP6636001B2 publication Critical patent/JP6636001B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/149Segmentation; Edge detection involving deformable models, e.g. active contour models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/12Edge-based segmentation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/00127Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture
    • H04N1/00204Connection or combination of a still picture apparatus with another apparatus, e.g. for storage, processing or transmission of still picture signals or of information associated with a still picture with a digital computer or a digital computer system, e.g. an internet server
    • H04N1/00209Transmitting or receiving image data, e.g. facsimile data, via a computer, e.g. using e-mail, a computer network, the internet, I-fax
    • H04N1/00222Transmitting or receiving image data, e.g. facsimile data, via a computer, e.g. using e-mail, a computer network, the internet, I-fax details of image data generation or reproduction, e.g. scan-to-email or network printing
    • H04N1/00225Transmitting or receiving image data, e.g. facsimile data, via a computer, e.g. using e-mail, a computer network, the internet, I-fax details of image data generation or reproduction, e.g. scan-to-email or network printing details of image data generation, e.g. scan-to-email or network scanners
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/32Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device
    • H04N1/32358Circuits or arrangements for control or supervision between transmitter and receiver or between image input and image output device, e.g. between a still-image camera and its memory or between a still-image camera and a printer device using picture signal storage, e.g. at transmitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/46Colour picture communication systems
    • H04N1/56Processing of colour picture signals
    • H04N1/60Colour correction or control
    • H04N1/603Colour correction or control controlled by characteristics of the picture signal generator or the picture reproducer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Mathematical Physics (AREA)
  • Geometry (AREA)
  • Data Mining & Analysis (AREA)
  • Signal Processing (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Evolutionary Computation (AREA)
  • Pure & Applied Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computing Systems (AREA)
  • Processing Or Creating Images (AREA)

Abstract

【課題】四面体どうしの接触点を高速に算出すること【解決手段】画像処理装置は、仮想空間における第1の四面体および第2の四面体の位置を取得し、第1の四面体から第2の四面体への向きに延伸する分離軸を取得し、前記第1の四面体の頂点と前記第2の四面体の頂点とを前記分離軸に投影し、前記投影される第1の四面体の頂点と第2の四面体の頂点とが前記分離軸に並ぶ順序に基づいて、接触点の算出手法を選択し、前記選択された算出手法により前記第1の四面体と前記第2の四面体との間の1または複数の接触点を算出し、前記算出された接触点に基づいて画像を描画する。【選択図】図7

Description

本発明は画像処理装置、画像処理方法およびプログラムに関する。
例えばゲームなどで、物理シミュレーションに基づく3次元画像を表示することが一般化している。物理シミュレーションの一部として、多面体どうしの衝突判定の処理が行われる。
非特許文献1には、2つの四面体どうしの衝突を高速に判定する手法が開示されている。
Fabio Ganovelli , Federico Ponchio and Claudio Rocchini, "Fast Tetrahedron-Tetrahedron Overlap Algorithm", Journal of Graphics Tools Volume 7, 2002
衝突後の物体の挙動をシミュレーションするために、衝突の有無の判定だけでなく接触点を求めることが必要である。一方、任意の多面体どうしの衝突における接触点の算出は、計算が非常に複雑になる。そこで、発明者は多面体の少なくとも表面に近い領域を四面体に分割し、四面体どうしの衝突を判定することを検討している。
四面体どうしの接触点の算出では、一般的に、2つの四面体の衝突をそれらの四面体を構成する面と面との衝突に分解し、その分解された衝突について接触点を算出することが考えられる。しかし、この方法では、接触点を算出する処理の計算量が多くなり、高速化に限界があった。
本発明は上記課題を鑑みてなされたものであって、その目的は、四面体どうしの接触点を高速に算出する技術を提供することにある。
上記課題を解決するために、本発明にかかる画像処理装置は、仮想空間における第1の四面体および第2の四面体の位置を取得する位置取得手段と、第1の四面体から第2の四面体への向きに延伸する分離軸を取得する分離軸取得手段と、前記第1の四面体の頂点と前記第2の四面体の頂点とを前記分離軸に投影し、前記投影される第1の四面体の頂点と第2の四面体の頂点とが前記分離軸に並ぶ順序に基づいて、接触点の算出手法を選択する手法選択手段と、前記選択された算出手法により前記第1の四面体と前記第2の四面体との間の1または複数の接触点を算出する接触点算出手段と、前記算出された接触点に基づいて画像を描画する画像描画手段と、を含む。
また、本発明にかかる画像処理方法は、仮想空間における第1の四面体および第2の四面体の位置を取得するステップと、第1の四面体から第2の四面体への向きに延伸する分離軸を取得するステップと、前記第1の四面体の頂点と前記第2の四面体の頂点とを前記分離軸に投影し、前記投影される第1の四面体の頂点と第2の四面体の頂点とが前記分離軸に並ぶ順序に基づいて、接触点の算出手法を選択するステップと、前記選択された算出手法により前記第1の四面体と前記第2の四面体との間の1または複数の接触点を算出するステップと、前記算出された接触点に基づいて画像を描画するステップと、を含む。
また、本発明にかかるプログラムは、仮想空間における第1の四面体および第2の四面体の位置を取得する位置取得手段、第1の四面体から第2の四面体への向きに延伸する分離軸を取得する分離軸取得手段、前記第1の四面体の頂点と前記第2の四面体の頂点とを前記分離軸に投影し、前記投影される第1の四面体の頂点と第2の四面体の頂点とが前記分離軸に並ぶ順序に基づいて、接触点の算出手法を選択する手法選択手段、前記選択された算出手法により前記第1の四面体と前記第2の四面体との間の1または複数の接触点を算出する接触点算出手段、および、前記算出された接触点に基づいて画像を描画する画像描画手段、としてコンピュータを機能させる。
本発明によれば、四面体どうしの接触点を高速に算出することができる。
本発明の一形態では、前記複数の算出手法により、算出される接触点の数が異なってもよい。
本発明の一形態では、前記複数の算出手法のうち1つでは、前記第1の四面体および前記第2の四面体のうち一方に含まれる頂点と他方に含まれる面との衝突について1つの接触点が算出されてもよい。
本発明の一形態では、前記複数の算出手法のうち1つでは、前記第1の四面体および前記第2の四面体のうち一方に含まれる辺と他方に含まれる面との衝突について2つの接触点が算出されてもよい。
本発明の一形態では、前記分離軸取得手段は、前記第1の四面体および前記第2の四面体の形状から幾何的に求められる複数の候補から分離軸を選択してもよい。
本発明の一形態では、前記複数の候補は、前記第1の四面体および前記第2の四面体を構成する面の法線の向きの軸を含んでもよい。
本発明の一形態では、前記複数の候補は、前記第1の四面体の辺と第2の四面体の辺とに垂直な向きの軸を含んでもよい。
本発明の一形態では、前記第1の四面体は、第1の物体の一部を構成し、前記第2の四面体は、第2の物体の一部を構成し、前記画像処理装置は、前記算出された接触点に基づいて、前記第1の物体および前記第2の物体の動きを算出する動き算出手段をさらに含み、前記画像描画手段は、前記第1の物体および前記第2の物体の算出された動きに基づいて、前記第1の物体および前記第2の物体の画像を描画してもよい。
本発明の実施形態にかかる画像処理装置のハードウェア構成の一例を示す図である。 画像処理装置が実現する機能を示すブロック図である。 画像処理装置が実行する処理を概略的に示すフロー図である。 衝突判定の対象となるオブジェクトの一例を示す図である。 互いに衝突するオブジェクトの一例を示す図である。 接触判定用の四面体を示す図である。 四面体の衝突を判定する処理を示すフロー図である。 2つの四面体の頂点と分離軸との関係および分離軸上の頂点の並びを示すビットパターンを示す図である。 衝突の種類を示す図である。 衝突の種類を示す図である。 衝突の種類を示す図である。 衝突の種類を示す図である。 ビットパターンの他の一例を示す図である。 ビットパターンと衝突の種類との対応を示す図である。 接触点の算出手法の例を説明する図である。
以下では、本発明の実施形態について図面に基づいて説明する。出現する構成要素のうち同一機能を有するものには同じ符号を付し、その説明を省略する。
図1は、本発明の実施形態にかかる画像処理装置1のハードウェア構成の一例を示す図である。画像処理装置1は、パーソナルコンピュータや家庭用ゲーム機、またはモバイル端末である。画像処理装置1は、プロセッサ11、記憶部12、通信部13、入力部14、表示制御部15を含む。
本実施形態にかかる画像処理装置1は、仮想空間内において、多面体からなる物体(オブジェクト)どうしの衝突の有無を判定し、衝突がある場合に接触点を算出する。また、画像処理装置1は、算出された接触点において、衝突にかかる拘束を解決し、物体の動きを決定する。決定された動きに基づいて、物体の画像が描画される。
プロセッサ11は、記憶部12に格納されているプログラムに従って動作し、通信部13や入力部14、表示制御部15等を制御する。プロセッサ11は、いわゆるCPU(Central Processing Unit)だけでなく、GPU(Graphic Processing Unit)も含む。なお、上記プログラムは、フラッシュメモリ等のコンピュータで読み取り可能な記憶媒体に格納されて提供されるものであってもよいし、インターネット等のネットワークを介して提供されるものであってもよい。
記憶部12は、DRAMやフラッシュメモリ等のメモリ素子によって構成されている。記憶部12は、上記プログラムを格納する。また、記憶部12は、プロセッサ11や通信部13等から入力される情報や演算結果を格納する。なお、記憶部12は、さらにハードディスクといった記憶装置によっても構成されてよい。
通信部13は有線LANや無線LANを構成する集積回路やコネクタ、アンテナなどにより構成されている。通信部13は、ネットワークを介して他の装置と通信する機能を有する。通信部13は、プロセッサ11の制御に基づいて、他の装置から受信した情報をプロセッサ11や記憶部12に入力し、他の装置に情報を送信する。
入力部14は、ユーザの操作を検出するハードウェアからの入力を取得する回路である。入力部14は、キーボードやコントローラ等の入力デバイスから入力信号を取得し、その入力信号が変換された情報をプロセッサ11や記憶部12に入力する。
表示制御部15はディスプレイ装置やヘッドマウントディスプレイ等の表示出力デバイスを制御する回路を含んでいる。表示制御部15は、プロセッサ11の制御に基づいて、表示出力デバイスに画像を表示させる。
次に画像処理装置1が実現する機能および処理を説明する。図2は、画像処理装置1が実現する機能を示すブロック図である。画像処理装置1は機能的に、物体位置決定部51、衝突判定部52、移動計算部58、画像描画部59を含む。衝突判定部52は、機能的に、物体ペア探索部53、四面体決定部54、分離軸取得部55、算出手法選択部56、接触点算出部57を含む。
物体位置決定部51は、主に、プロセッサ11が記憶部12に記憶されるプログラムを実行し、入力部14を介してユーザの操作を取得し、その情報を処理し、処理結果を記憶部12に格納することにより実現される。衝突判定部52、移動計算部58、主に、プロセッサ11が記憶部12に記憶されるプログラムを実行し、記憶部12等に格納された情報を処理し、処理結果を記憶部12に格納することにより実現される。画像描画部59は、主に、プロセッサ11が記憶部12に記憶されるプログラムを実行し、記憶部12等に格納された情報を処理し、表示出力デバイスが画像を表示するよう表示制御部15を制御することにより実現される。
物体位置決定部51は、入力部14を介して取得される入力デバイスからの信号を取得し、その取得された信号と、前回のフレームにおける仮想空間内の複数の物体(オブジェクト)の位置および動きに基づいて、今回のフレームにおける仮想空間における複数の物体の位置を算出する。
衝突判定部52は、仮の位置が算出された複数の物体が衝突するか否かを判定し、互いに衝突する2つの物体の接触点を算出する。
物体ペア探索部53は、仮想空間内に配置された複数の物体のそれぞれについて算出された仮の位置に基づいて、互いに衝突する可能性がある第1の物体31と第2の物体32との組を探索する(図4参照)。探索された物体の組は、四面体決定部54、分離軸取得部55、算出手法選択部56、接触点算出部57、移動計算部58の処理対象となる。
四面体決定部54は、探索された組を構成する第1の物体31および第2の物体32のそれぞれについて、後続の処理の対象とする四面体を決定する。ここで、物体のそれぞれは、外形を構成する複数のポリゴンを有するが、さらに接触判定用の複数の四面体を含む。接触判定用の複数の四面体は、少なくとも物体の表面を構成するように設けられており、物体の内部に四面体が設けられない空間が存在してもよい。また物体は剛体であってよい。
より具体的には、四面体決定部54は、第1の物体31および第2の物体32を構成する複数の四面体のうちから、衝突の可能性がある第1の四面体41と第2の四面体42とを決定する(図6参照)。ここで、四面体決定部54は、第1の物体31を構成する複数の四面体から第1の四面体41を選択し、第2の物体32を構成する複数の四面体から第2の四面体42を選択する。
分離軸取得部55は、第1の四面体41および第2の四面体42が衝突するか否かを判定する。また、分離軸取得部55は、分離軸Asを取得する。分離軸Asは、衝突判定においてその分離軸Asに第1の四面体41および第2の四面体42を投影することにより、第1の四面体41と第2の四面体42とが衝突しているかの判定が可能となる方向の軸であり、第1の四面体41から第2の四面体42への向きに延伸している。
算出手法選択部56は、第1の四面体41の頂点と第2の四面体42の頂点とを分離軸Asに投影し、第1の四面体41の投影された頂点と第2の四面体42の投影された頂点とが分離軸Asに並ぶ順序に基づいて、接触点の算出手法を選択する。ここで、接触点の算出手法により、算出される接触点の数が異なる。中には第1の四面体41および第2の四面体42のうち一方について算出される接触点の数が1である算出手法もあり、算出される接触点の数が3以上である算出手法もある。接触点の算出手法の詳細については後述する。
接触点算出部57は、選択された算出手法により第1の四面体41と第2の四面体42との間の1または複数の接触点を算出する。
移動計算部58は、算出された接触点に基づいて、互いに衝突する物体を含む物体の動きを算出し、今回のフレームにおける物体の位置および姿勢を決定する。移動計算部58は、互いに衝突する第1の物体31および第2の物体32については、算出された接触点のそれぞれに衝突にかかる拘束条件を設定し、その拘束条件を解決することで第1の物体31および第2の物体32の動きを算出する。
画像描画部59は、それぞれの物体について算出された動きに基づいて、それらの物体の画像を描画する。
図3は、画像処理装置1が実行する処理を概略的に示すフロー図である。図3に示す処理は、フレーム(そのフレームの期間が経過する)ごとに繰り返し実行される。以下では処理のフローとともに各機能の処理の詳細について説明する。以下の処理は、CPUとGPUとが協調して動作することにより実行されてよい。
はじめに、物体位置決定部51は、入力デバイスからの信号と、前回のフレームにおける仮想空間内の複数の物体の位置、姿勢および動きに基づいて、今回のフレームにおける仮想空間における複数の物体の位置および姿勢を取得する(ステップS101)。そして、物体ペア探索部53は、衝突の可能性のある物体の組を探索する(ステップS102)。
図4は、衝突判定の対象となる物体の一例を示す図である。物体ペア探索部53は、例えば、仮想空間において、各物体(第1の物体31、第2の物体32、第3の物体33)のそれぞれを内包する判定ボックス34,35,36を生成し、判定ボックス34,35,36が重複するか否かを判定することにより、衝突の可能性のある物体の組を見つける。この判定ボックス34,35,36は、一般的にはAABB(Axis-Aligned Bounding Box)と呼ばれており、判定ボックス34,35,36どうしの重複の有無は簡単な計算で算出される。
次に、四面体決定部54は、探索により見つかった組に属するオブジェクトを構成する四面体のうち、衝突の可能性がある四面体を選択する(ステップS103)。例えば、四面体決定部54は、第1の物体31および第2の物体32の判定ボックス34,35がさらに細かく分割されたAABBをBVH(Bounding Volume Hierarchy)の木構造として作成し、そのBVHのうち衝突に直接かかわるAABBと重なる四面体を選択してもよい。また、四面体決定部54は、物体ペア探索部53の処理と、四面体を選択する処理を一連の処理として実行してもよい。
図5は、互いに衝突するオブジェクトの一例を示す図である。図6は、接触判定用の四面体の一例を示す図である。図5,図6は説明の容易のため、物体を2次元で記載しているが、実際は物体および四面体は3次元の形状を有する。第1の物体31と第2の物体32とが衝突する場合の衝突法線Nc、第1の物体31の表面上に設定される接触点P1,P2,P3、第2の物体32の表面上に設定される接触点Q1,Q2,Q3、貫通深度Dpは、第1の四面体41と第2の四面体42とが衝突する場合も同じものとなる。これにより、後述する移動計算部58の処理では、第1の四面体41と第2の四面体42との間で算出された接触点を、第1の物体31と第2の物体32との接触点として扱って第1の物体31と第2の物体32との衝突を解決する条件(拘束条件)として設定している。
衝突の可能性のある四面体の組が選択されると、衝突判定部52は、選択された四面体(第1の四面体41および第2の四面体42)の衝突の有無を判定し、これらが衝突する場合は接触点を算出する(ステップS104)。ステップS104の処理は、分離軸取得部55、算出手法選択部56、接触点算出部57により行われる。処理の詳細については後述する。
接触点が算出されると、移動計算部58は、接触点においてその衝突を解決するための拘束条件を解くことにより、接触点における第1の物体31および第2の物体32の速度変化を算出する(ステップS105)。そして、移動計算部58は、算出された速度変化に応じたオブジェクトの位置および姿勢(向き)を算出する(ステップS106)。なお、移動計算部58が行う処理は、いわゆる物理計算であり、衝突しない物体の動き、位置及び姿勢についても、物理法則にしたがって計算される。
オブジェクトの位置及び姿勢が算出されると、画像描画部59は、算出された位置及び姿勢に基づいて、オブジェクトの画像を描画する(ステップS107)。
次にステップS104における、四面体の衝突有無の判定および接触点の算出の処理について説明する。図7は、四面体の衝突を判定する処理を示すフロー図である。
はじめに、分離軸取得部55は、ステップS103において衝突の可能性のある四面体の組から、実際に互いに接触する四面体の組をみつける(ステップS201)。四面体はいわゆる凸包であるので、分離軸取得部55は、例えば、ミンコフスキー差を用いた凸包の内外判定アルゴリズムを用いることにより、組に属する四面体が互いに衝突するかを判定する。四面体の衝突を判定する処理は公知であるので詳細の説明は省略する。
次に、分離軸取得部55は、候補となる軸から、互いに接触する四面体の組の分離軸Asを選択する(ステップS202)。分離軸Asの候補となる軸は、第1の四面体41および第2の四面体42の形状から幾何的に求められる軸である。例えば、候補の軸は、第1の四面体41および第2の四面体42を構成する面の法線の向きの軸を含み、また、第1の四面体41を構成する辺と第2の四面体42を構成する辺とに垂直な向きの軸を含む。第1の四面体41を構成する辺と第2の四面体42を構成する辺とに垂直な向きの軸は、第1の四面体41を構成する辺と第2の四面体42を構成する辺との外積により求められる。
より具体的には、分離軸取得部55は、これらの候補の軸のうち、その軸にそった第1の四面体41と第2の四面体42との重複の長さが最も小さくなる軸を分離軸Asとして選択する。言い換えると、分離軸取得部55は、最も少ない移動により衝突が解消する軸を分離軸Asとして選択する。図5の例では、分離軸Asは衝突法線Ncであり、その移動量は貫通深度Dpである。
なお、分離軸取得部55は、他の方法で分離軸Asを取得してもよい。その場合、分離軸取得部55はこの段階で接触の有無を判定しなくてもよい。
次に、算出手法選択部56は、組に属する第1の四面体41の頂点と、第2の四面体42の頂点とを分離軸Asに投影し(ステップS203)、投影された第1の四面体41の頂点と第2の四面体42の頂点とが分離軸Asに並ぶ順序を取得する(ステップS204)。
図8は、2つの四面体の頂点と分離軸Asとの関係および分離軸As上の頂点の並びを示すビットパターンを示す図である。図8の例では、第1の四面体41の頂点が分離軸As上に点A1〜A4として投影されており、第2の四面体42の頂点が分離軸As上に点B1〜B4として投影されている。図8は、第2の四面体42の左側の面の法線を分離軸Asとする場合の例であるため、点B1〜B3は同じ位置に投影される。
より具体的には、算出手法選択部56は、分離軸As上に配置される頂点に対応する符号が並び、その頂点が分離軸As上に並ぶ順序を示すパターンを作成する。以下の処理では頂点が第1の四面体41に属するか、第2の四面体42に属するかのみが問題となるため、この符号のパターンでは、符号そのものは、その符号に対応する頂点が第1の四面体41に属するか第2の四面体42に属するかを示し、符号の順序は、その符号に対応する頂点が分離軸As上に配置される順序に対応する。ここで、算出手法選択部56は、符号として、投影され第1の四面体41に属する頂点を1、投影され第2の四面体42に属する頂点を0としてパターンを作成するので、以下ではこの符号のパターンをビットパターンと記載する。図8の例では、2進数で「11100010」というビットパターンが生成される。なお、投影され第1の四面体41に属する頂点を0、投影され第2の四面体42に属する頂点を1としてパターンを作成してもよい。
そして、算出手法選択部56は、投影された頂点が分離軸Asに並ぶ順序に基づいて、接触点の算出手法を選択する(ステップS205)。より具体的には、算出手法選択部56は、符号のパターンに基づいて衝突の種類を判定し、判定された衝突の種類に応じて接触点の算出手法を選択する。
図9Aから図9Dは、衝突の種類を示す図である。本実施形態において分類される衝突の種類は、衝突種別VF、衝突種別EE、衝突種別EF、衝突種別FF、衝突種別VV、総突種別VEである。衝突種別VFは図9Aに示され、ある四面体の頂点(Vertex)と他の四面体の面(Face)とが衝突する場合である。衝突種別EEは、図9Bに示され、ある四面体の辺(Edge)と他の四面体の辺とが衝突する場合である。衝突種別EFは図9Cに示され、ある四面体の辺と他の四面体の面とが衝突する場合である。衝突種別FFは図9Dに示され、ある四面体の面と他の四面体の面とが衝突する場合である。衝突種別VVは、図示しないが、ある四面体の頂点と他の四面体の頂点とが衝突する場合である。衝突種別VEは、図示しないが、ある四面体の頂点と他の四面体の辺とが衝突する場合である。
接触点の算出手法および算出される接触点の数は、衝突の種類によって異なる。衝突種別VF、衝突種別VV、総突種別VEに応じて選択される算出手法で算出される接触点の数は1であり、衝突種別EEに応じて選択される算出手法で算出される接触点の数は1であり、衝突種別EFに応じて選択される算出手法で算出される接触点の数は2であり、衝突種別FFに応じて選択される算出手法で算出される接触点の数は3から6である。
衝突の種類とビットパターンとの関係についてさらに説明する。図10は、ビットパターンの他の一例を示す図である。図10の(a)の例では、ビットパターンの内側に、1つのビット「1」と連続する2つのビット「0」が存在する。これは、第1の四面体41の1つの頂点と、第2の四面体42の2つの頂点のグループとが交差していることを示している。このことから、算出手法選択部56は、(a)の例を衝突種別VEと判定する。一方、図10の(b)の例では、ビットパターンの内側をみても双方の頂点が繰り返し登場しており関係が分かりにくい。しかし、(b)の例でのビットパターンのもっとも外側に、ビット「1」と2つのビット「0」とが存在する。これは、外側には第1の四面体41の頂点と、第2の四面体42の辺とが存在すると考えてよい。反対に内側には第1の四面体41の面と第2の四面体42の辺とが存在すると考えてよい。このことから、算出手法選択部56は、(b)の例を衝突種別EFと判定する。
実際の処理では、あらかじめビットパターンと衝突の種類との対応を示すテーブルが作成されており、算出手法選択部56はテーブルを用いてビットパターンに対応する衝突の種類を判定し算出手法を選択する。
図11は、ビットパターンと衝突の種類との対応を示す図である。図11の左側にはビットパターンが記載されており、右側には衝突の種類が記載されている。ビットパターン「11110000」は衝突が発生しない特別なパターンである。図7のフローにしたがって処理がされる場合にはこのビットパターンが生成されることはない。図11の右側に記載される衝突の種類の記載における、「A vs B」のAの記載は第1の四面体41の衝突する部分を示し、Bの記載は第2の四面体42の衝突する部分を示す。例えば、「Vertex vs Edge」「Edge vs Vertex」は衝突種別VEであり、「Vertex vs Vertex」は衝突種別VVである。
接触点の算出手法が選択されると、接触点算出部57は選択された算出手法により接触点を算出する(ステップS206)。例えば衝突種別VFについては、頂点が衝突する四面体の頂点と、衝突法線Ncとから公知の手法で接触点を算出することができる。衝突種別EEについても、同様に公知の手法を用いて接触点を算出することができる。
以下では、衝突種別FFの場合の接触点の算出手法について説明する。図12は、接触点の算出手法の例を説明する図である。衝突手法FFでは、(a)示されるように四面体の面と面とが衝突している。接触点算出部57は、衝突にかかる第1の四面体41の面と第2の四面体42の面とのそれぞれを、分離軸Asに垂直な面(分離平面)に投影する(P1)。接触点算出部57は分離平面上で投影された面の辺が交差する点(交差点)を重心座標の形式で求める(b)。そして、接触点算出部57は求められた交差点を3次元の面に再投影し(P2)、再投影された点を接触点として算出する。
他の衝突の種類においても、上記手法と類似の手法、または公知の手法により接触点を算出することができる。
このように、衝突の種類を分類し、分類された衝突の種類に応じた接触点の算出手法を適用することで、全体でみて算出する接触点の数および接触点の算出における計算量を削減することができる。また、求められる接触点の数が削減されることで、物体の衝突にかかる拘束を解決する際の計算量も削減することができる。なお、一般的な多面体における衝突の有無の判定および接触点の算出に比べると処理の分岐が少ないので、仮に多面体に比べて計算量そのものが多くても、GPUのような並列計算が得意なプロセッサにより非常に高速に計算することができる。
1 画像処理装置、11 プロセッサ、12 記憶部、13 通信部、14 入力部、15 表示制御部、31 第1の物体、32 第2の物体、33 第3の物体、34,35,36 判定ボックス、41 第1の四面体、42 第2の四面体、51 物体位置決定部、52 衝突判定部、53 物体ペア探索部、54 四面体決定部、55 分離軸取得部、56 算出手法選択部、57 接触点算出部、58 移動計算部、59 画像描画部、As 分離軸、Dp 貫通深度、Nc 衝突法線。

Claims (10)

  1. 仮想空間における第1の四面体および第2の四面体の位置を取得する位置取得手段と、
    第1の四面体から第2の四面体への向きに延伸する分離軸を取得する分離軸取得手段と、
    前記第1の四面体の頂点と前記第2の四面体の頂点とを前記分離軸に投影し、前記投影される第1の四面体の頂点と第2の四面体の頂点とが前記分離軸に並ぶ順序に基づいて、接触点の算出手法を選択する手法選択手段と、
    前記選択された算出手法により前記第1の四面体と前記第2の四面体との間の1または複数の接触点を算出する接触点算出手段と、
    前記算出された接触点に基づいて画像を描画する画像描画手段と、
    を含む画像処理装置。
  2. 請求項1に記載の画像処理装置において、
    前記複数の算出手法により、算出される接触点の数が異なる、
    画像処理装置。
  3. 請求項1または2に記載の画像処理装置において、
    前記複数の算出手法のうち1つでは、前記第1の四面体および前記第2の四面体のうち一方に含まれる頂点と他方に含まれる面との衝突について1つの接触点が算出される、
    画像処理装置。
  4. 請求項1または2に記載の画像処理装置において、
    前記複数の算出手法のうち1つでは、前記第1の四面体および前記第2の四面体のうち一方に含まれる辺と他方に含まれる面との衝突について2つの接触点が算出される、
    画像処理装置。
  5. 請求項1から4のいずれかに記載の画像処理装置において、
    前記分離軸取得手段は、前記第1の四面体および前記第2の四面体の形状から幾何的に求められる複数の候補から分離軸を選択する、
    画像処理装置。
  6. 請求項5に記載の画像処理装置において、
    前記複数の候補は、前記第1の四面体および前記第2の四面体を構成する面の法線の向きの軸を含む、
    画像処理装置。
  7. 請求項5または6に記載の画像処理装置において、
    前記複数の候補は、前記第1の四面体の辺と第2の四面体の辺とに垂直な向きの軸を含む、
    画像処理装置。
  8. 請求項1から7のいずれかに記載の画像処理装置において、
    前記第1の四面体は、第1の物体の一部を構成し、
    前記第2の四面体は、第2の物体の一部を構成し、
    前記算出された接触点に基づいて、前記第1の物体および前記第2の物体の動きを算出する動き算出手段をさらに含み、
    前記画像描画手段は、前記第1の物体および前記第2の物体の算出された動きに基づいて、前記第1の物体および前記第2の物体の画像を描画する、
    画像処理装置。
  9. 仮想空間における第1の四面体および第2の四面体の位置を取得するステップと、
    第1の四面体から第2の四面体への向きに延伸する分離軸を取得するステップと、
    前記第1の四面体の頂点と前記第2の四面体の頂点とを前記分離軸に投影し、前記投影される第1の四面体の頂点と第2の四面体の頂点とが前記分離軸に並ぶ順序に基づいて、接触点の算出手法を選択するステップと、
    前記選択された算出手法により前記第1の四面体と前記第2の四面体との間の1または複数の接触点を算出するステップと、
    前記算出された接触点に基づいて画像を描画するステップと、
    を含む画像処理方法。
  10. 仮想空間における第1の四面体および第2の四面体の位置を取得する位置取得手段、
    第1の四面体から第2の四面体への向きに延伸する分離軸を取得する分離軸取得手段、
    前記第1の四面体の頂点と前記第2の四面体の頂点とを前記分離軸に投影し、前記投影される第1の四面体の頂点と第2の四面体の頂点とが前記分離軸に並ぶ順序に基づいて、接触点の算出手法を選択する手法選択手段、
    前記選択された算出手法により前記第1の四面体と前記第2の四面体との間の1または複数の接触点を算出する接触点算出手段、および、
    前記算出された接触点に基づいて画像を描画する画像描画手段、
    としてコンピュータを機能させるためのプログラム。


JP2017212536A 2017-11-02 2017-11-02 画像処理装置、画像処理方法およびプログラム Active JP6636001B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017212536A JP6636001B2 (ja) 2017-11-02 2017-11-02 画像処理装置、画像処理方法およびプログラム
US16/155,003 US10896510B2 (en) 2017-11-02 2018-10-09 Image processing apparatus, image processing method, and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017212536A JP6636001B2 (ja) 2017-11-02 2017-11-02 画像処理装置、画像処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2019086876A true JP2019086876A (ja) 2019-06-06
JP6636001B2 JP6636001B2 (ja) 2020-01-29

Family

ID=66245557

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017212536A Active JP6636001B2 (ja) 2017-11-02 2017-11-02 画像処理装置、画像処理方法およびプログラム

Country Status (2)

Country Link
US (1) US10896510B2 (ja)
JP (1) JP6636001B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11580685B2 (en) * 2020-12-08 2023-02-14 Microsoft Technology Licensing, Llc Physics engine with collision detection neighbor welding

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8416245B2 (en) * 2008-01-15 2013-04-09 Microsoft Corporation Creation of motion blur in image processing
US9171390B2 (en) * 2010-01-19 2015-10-27 Disney Enterprises, Inc. Automatic and semi-automatic generation of image features suggestive of motion for computer-generated images and video

Also Published As

Publication number Publication date
JP6636001B2 (ja) 2020-01-29
US20190130577A1 (en) 2019-05-02
US10896510B2 (en) 2021-01-19

Similar Documents

Publication Publication Date Title
CN111360824B (zh) 一种双臂自碰撞检测方法和计算机可读存储介质
JP6787661B2 (ja) 工作物の機械加工のシミュレート
Larsson et al. Collision detection for continuously deforming bodies.
JP6282798B2 (ja) 工作物の機械加工のシミュレーション
US10430999B2 (en) Computer-implemented method for designing an avatar with at least one garment
US8154544B1 (en) User specified contact deformations for computer graphics
US20080034023A1 (en) Contact geometry calculation device, contact geometry calculation method, and computer program product
JP2010026818A (ja) 画像処理プログラム、画像処理装置及び画像処理方法
US10452788B2 (en) Modeling a three-dimensional object having multiple materials
US9519988B2 (en) Subspace clothing simulation using adaptive bases
KR101798132B1 (ko) 로봇의 충돌 검출 고속화를 위한 작업 환경 모델링 장치 및 방법
CN111581776B (zh) 一种基于几何重建模型的等几何分析方法
CN103236079A (zh) 一种基于三维模型体素化的内部球改进构造方法
Aras et al. Extracting cutter/workpiece engagements in five-axis milling using solid modeler
JP2022075560A (ja) 開表面を用いた現実のシーンの構造の3d再構成
US20210406432A1 (en) Calculation method, medium and system for real-time physical engine enhancement based on neural network
JP6636001B2 (ja) 画像処理装置、画像処理方法およびプログラム
US8497875B2 (en) System, method, and computer program product for determining a translation vector
Kawachi et al. Distance computation between non-convex polyhedra at short range based on discrete Voronoi regions
Mezger et al. Improved collision detection and response techniques for cloth animation
JP2005310021A (ja) 衝突検出方法及び衝突検出システム
Zhang et al. Haptic interaction with a polygon mesh reconstructed from images
CN112486319A (zh) 基于触觉渲染设备的vr交互方法、装置、设备及介质
JP5290138B2 (ja) メッシュ変更装置、メッシュ変更方法、およびプログラム
US20200074727A1 (en) Generating 3D Models

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20191111

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191217

R150 Certificate of patent or registration of utility model

Ref document number: 6636001

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150