JP2016045945A - オブジェクトをモデリングする方法及び装置 - Google Patents

オブジェクトをモデリングする方法及び装置 Download PDF

Info

Publication number
JP2016045945A
JP2016045945A JP2015153329A JP2015153329A JP2016045945A JP 2016045945 A JP2016045945 A JP 2016045945A JP 2015153329 A JP2015153329 A JP 2015153329A JP 2015153329 A JP2015153329 A JP 2015153329A JP 2016045945 A JP2016045945 A JP 2016045945A
Authority
JP
Japan
Prior art keywords
particles
modeling
fluid
lattice
particle
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
JP2015153329A
Other languages
English (en)
Other versions
JP6663183B2 (ja
Inventor
▲な▼ ▲ひょっぷ▼ 姜
Na Hyup Kang
▲な▼ ▲ひょっぷ▼ 姜
知 ▲妍▼ 金
Ji Yeon Kim
知 ▲妍▼ 金
炯 旭 李
Hyung Wook Lee
炯 旭 李
暉 龍 鄭
Hwi Ryong Jung
暉 龍 鄭
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2016045945A publication Critical patent/JP2016045945A/ja
Application granted granted Critical
Publication of JP6663183B2 publication Critical patent/JP6663183B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T90/00Enabling technologies or technologies with a potential or indirect contribution to GHG emissions mitigation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)

Abstract

【課題】流体及び流体と混合した個体を写実的にモデリングする方法及び装置を提供する。【解決手段】粒子からモデリングされた第1オブジェクトと粒子からモデリングされた第2オブジェクトとの間の隣接領域を検出し、隣接領域に対して定義した格子の格子点に格納された情報を用いて隣接領域における第1オブジェクトと第2オブジェクトとの間の作用力を算出し、作用力に基づいて第1オブジェクトと第2オブジェクトをモデリングする。【選択図】図2

Description

本発明は、オブジェクトをモデリングする方法及び装置に関する。
コンピュータグラフィックス(Computer Graphics;CG)分野、特に、視覚効果(Visual Effects;VFX)分野の流体シミュレーションに関して、流体の流動を数値的に解決しようとする研究が続けて行われている。ナビエ-ストークス方程式(Navier−Stokes Equation)は流体を極めて小さい粒子の和として見て、それぞれの粒子が相互にどのように作用して動くかを示すものである。ナビエ−ストークス方程式は理想的な状況を仮定する場合、より簡単なベルヌーイ定理(Bernoulli’s principle)に変わることがある。ナビエ−ストークス方程式に基づいた流体モデリングの現実的な再現のためには、非圧縮性条件を満足しなければならない。
また、変形体に対するシミュレーションは、モデルの反応がリアルタイムに行われると同時に、目で観測するのに自然な程度の算出に関する正確性が保証されなければならない。そのために変形体の物理的特性、境界条件、外部で作用する力などを考慮したモデルが主に利用されている。
コンピュータグラフィックス分野で流体に対するシミュレーション及び変形体に対するシミュレーションがそれぞれ個別的になされているが、流体及び変形体が混在して互いに影響を及ぼす環境が一般的である。
本発明の目的は、異種の特性を有するオブジェクト間に隣接する領域に対して格子を活用することで、固体シミュレーションと流体シミュレーションとを分離し、固体及び流体それぞれのモデリング時に求められる体積保存などのような制約条件を個別的に達成することである。
本発明の他の目的は、相対モデリングモジュールが背景格子に格納した情報を用いて自身のモデリング時に反映することで、固体及び流体間の相互作用をリアルタイム処理し、流体及び流体と混合した固体を写実的にモデリングすることである。
一実施形態によると、オブジェクトをモデリングする方法は、粒子からモデリングされた第1オブジェクトと粒子からモデリングされた第2オブジェクトとの間の隣接領域を検出するステップと、前記隣接領域に対して格子を定義するステップと、前記格子の格子点に格納された情報を用いて、前記隣接領域における前記第1オブジェクトと前記第2オブジェクトとの間の作用力を算出するステップと、前記作用力に基づいて前記第1オブジェクトと前記第2オブジェクトをモデリングするステップとを含む。
前記格子を定義するステップは、前記隣接領域で前記第1オブジェクト又は前記第2オブジェクトの輪郭と前記輪郭に隣接する前記格子の格子点との距離値を抽出するステップと、前記抽出された距離値を前記格子点に格納するステップとを含んでもよい。
前記作用力を算出するステップは、前記隣接領域で前記第1オブジェクトの粒子と前記第2オブジェクトの粒子との間に衝突が発生したか否かを判断するステップと、前記判断結果に基づいて、前記第1オブジェクトの粒子と前記第2オブジェクトの粒子との間の作用力を算出するステップとを含んでもよい。
前記衝突が発生したか否かを判断するステップは、前記第1オブジェクトの粒子の位置に隣接する格子点に格納された距離値を用いて前記衝突が発生したか否かを判断するステップを含んでもよい。
前記衝突が発生したか否かを判断するステップは、前記第1オブジェクトの粒子が体積保存条件を満足するか否かをさらに考慮してもよい。
前記作用力を算出するステップは、前記衝突が発生したと判断される場合、前記隣接領域で前記第1オブジェクトの粒子と前記第2オブジェクトの粒子のうち衝突が発生した第1オブジェクトの粒子を検出するステップと、前記検出された第1オブジェクトの粒子の位置を再定義するステップと、前記第1オブジェクトの粒子の再定義された位置に基づいて、前記衝突によって前記第2オブジェクトに及ぼす作用力を算出するステップとを含んでもよい。
前記検出された第1オブジェクトの粒子の位置を再定義するステップは、前記検出された第1オブジェクトの粒子の位置を前記第2オブジェクトを貫通しない位置に再定義するステップを含んでもよい。
前記検出された第1オブジェクトの粒子の位置を再定義するステップは、前記検出された第1オブジェクトの粒子を含むセルに該当する格子点に格納された距離値及び傾斜度を用いて、前記第2オブジェクトを貫通しない前記第1オブジェクトの粒子の移動方向及び最短移動距離を算出するステップと、前記算出された移動方向及び最短移動距離により前記第1オブジェクトの粒子の位置を移動させるステップとを含んでもよい。
前記格子点に格納された距離値及び前記算出された最短移動距離を用いて前記第1オブジェクトの粒子の移動速度を算出するステップと、前記算出された移動速度を前記検出された第1オブジェクトの粒子を含むセルに該当する格子点に格納するステップと、をさらに含んでもよい。
前記衝突によって前記第2オブジェクトに及ぼす作用力を算出するステップは、前記第1オブジェクトの粒子の再定義された位置で前記第1オブジェクトの粒子が前記第2オブジェクトから受けると推定される力を算出するステップと、前記推定される力に基づいて前記衝突によって前記第2オブジェクトに及ぼす作用力を算出するステップとを含んでもよい。
前記算出された作用力を、前記第1オブジェクトの粒子の再定義された位置に該当する格子の格子点に格納するステップをさらに含んでもよい。
前記第1オブジェクトと前記第2オブジェクトは互いに異種であってもよい。
前記第1オブジェクトは流体であり、前記第2オブジェクトは変形体であってもよい。
一実施形体に係るモデリングする装置は、粒子からモデリングされた第1オブジェクトと、粒子からモデリングされた第2オブジェクトとの間の隣接領域を検出し、前記隣接領域に対して格子を定義する格子変換モジュールと、前記格子の格子点に格納された情報を用いて前記隣接領域における前記第1オブジェクトと前記第2オブジェクトとの間の作用力を算出し、前記作用力に基づいて前記第1オブジェクトと前記第2オブジェクトをモデリングするオブジェクトモデリングモジュールと、前記格子変換モジュール及び前記オブジェクトモデリングモジュールを制御するプロセッサとを含む。
前記格子変換モジュールは、前記隣接領域で前記第1オブジェクト又は前記第2オブジェクトの輪郭と前記輪郭に隣接する前記格子の格子点との距離値を抽出し、前記抽出された距離値を前記格子の格子点に格納してもよい。
前記オブジェクトモデリングモジュールは、前記隣接領域で前記第1オブジェクトの粒子と前記第2オブジェクトの粒子との間に衝突が発生したか否かを判断する判断部と、前記判断結果に基づいて、前記隣接領域で前記第1オブジェクトの粒子と前記第2オブジェクトの粒子のうち衝突が発生した第1オブジェクトの粒子を検出する検出部と、前記検出された第1オブジェクトの粒子の位置を再定義する再定義部と、前記第1オブジェクトの粒子の再定義された位置に基づいて、前記衝突によって前記第2オブジェクトに及ぼす作用力を算出する算出部とを含んでもよい。
前記再定義部は、前記検出された第1オブジェクトの粒子を含むセルに該当する格子点に格納された距離値及び傾斜度を用いて、前記第2オブジェクトを貫通しない前記第1オブジェクトの粒子の移動方向及び最短移動距離を算出し、前記算出された移動方向及び最短移動距離により前記第1オブジェクトの粒子の位置を移動させてもよい。
前記算出部は、前記第1オブジェクトの粒子の再定義された位置で前記第1オブジェクトの粒子が前記第2オブジェクトから受けると推定される力を算出し、前記推定される力に基づいて前記衝突によって前記第2オブジェクトに及ぼす作用力を算出し、前記算出された作用力を、前記衝突が発生した第1オブジェクトの粒子を含むセルに該当する格子の格子点に格納してもよい。
一実施形態に係るオブジェクトをモデリングする装置は、前記モデリングする装置の動作を制御するプログラムを記録するメモリと、前記プログラムを駆動させる1つ以上のプロセッサとを含み、前記プログラムは、粒子からモデリングされた第1オブジェクトと粒子からモデリングされた第2オブジェクトとの間の隣接領域を検出し、前記隣接領域に対して複数のセルを含む格子を定義し、前記格子の格子点に格納された情報を用いて前記隣接領域における算出した前記第1オブジェクトと前記第2オブジェクトとの間の作用力に基づいて前記第1オブジェクトと前記第2オブジェクトをモデリングする。
本発明によると、異種の特性を有するオブジェクト間に隣接する領域に対して格子を活用することで、固体シミュレーションと流体シミュレーションを分離し、固体及び流体それぞれのモデリング時に求められる体積保存などのような制約条件を個別的に達成することができる。
本発明によると、相対モデリングモジュールが背景格子に格納した情報を用いて自身のモデリング時に反映することで、固体及び流体間の相互作用をリアルタイム処理することができ、流体及び流体と混合した固体を写実的にモデリングすることができる。
一実施形態に係るオブジェクトをモデリングする方法が用いられる隣接領域を示す図である。 一実施形態に係るオブジェクトをモデリングする方法を示したフローチャートである。 一実施形態に係るオブジェクトをモデリングする方法により隣接領域に対して格子を定義する方法を説明するための図である。 一実施形態に係るオブジェクトをモデリングする方法により第1オブジェクトと第2オブジェクトとの間の作用力を算出する方法を示したフローチャートである。 一実施形態に係るオブジェクトをモデリングする方法により第1オブジェクトと第2オブジェクトとの間の作用力を算出する方法を説明するための図である。 一実施形態に係るオブジェクトをモデリングする装置のブロック図である。 他の実施形態に係るモデリング装置のブロック図である。 他の実施形態によりオブジェクトをモデリングする方法を示す図である。 他の実施形態に係るモデリング装置で隣接領域及び作用力を処理する過程を各モジュールの動作順により示す図である。 他の実施形態に係るモデリング装置で格子モジュールの中継を介して流体と変形体との間の相互作用を処理する過程を説明するための図である。 他の実施形態に係るモデリング装置の動作方法を示したフローチャートである。 他の実施形態に係るモデリング装置で流体モデリングモジュールの動作方法を示したフローチャートである。 他の実施形態に係るモデリング装置で変形体モデリングモジュールの動作方法を示したフローチャートである。 他の実施形態に係るモデリング装置で格子モジュールの動作方法を示したフローチャートである。
以下で説明する実施形態は、添付の図面を参照して説明する。各図面で提示された同一の参照符号は同一の部材を示す。
以下で説明する実施形態は様々な変更が加えられてもよい。以下で説明する実施形態は実施形態に対して限定しようとするものではなく、これに対する全ての変更、均等物ないし代替物を含むものとして理解しなければならない。
実施形態で用いる用語は、単に特定の実施形態を説明するために用いられたものとして、実施形態を限定しようとする意図は有しない。単数の表現は文脈の上、明白に相異に意味しない限り複数の表現を含む。本明細書で、「含む」又は「有する」などの用語は明細書上に記載された特徴、数字、ステップ、動作、構成要素、部品又はこれを組み合わせたものが存在することを指定しようとするものであって、1つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品又はこれを組み合わせたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
相異に定義されない限り、技術的であるか科学的な用語を含み、ここで用いられる全ての用語は、実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義されているような用語は、関連技術の文脈の上に有する意味と一致する意味を有するものと解釈するべきであって、本出願で明白に定義しない限り、理想的であるか過度に形式的な意味として解釈されることはない。
また、添付図面を参照して説明することにおいて、図面符号に関係なく同一の構成要素は同一の参照符号を付与し、それに対する重複説明は省略することにする。実施形態の説明において関連の公知技術に対する具体的な説明が実施形態の要旨を不要に曖昧にすると判断される場合、その詳細な説明を省略する。
図1は、一実施形態に係るオブジェクトをモデリングする方法が用いられる隣接領域を示す図である。図1を参照すると、水又は油のような流体130に浮いている変形体(例えば、ダック人形)110が示されている。ここで、変形体110と流体130はそれぞれ粒子によってモデリングされ、以下で、変形体110は変形体粒子を、流体130は流体粒子を含むことを意味するものとして用いる。「変形体110」は剛体(Rigid body)及び柔体(Soft Body)を全て含む意味として理解される。また、変形体110と流体130の輪郭を含む一定領域を「隣接領域」又は「相互作用領域」と呼ぶことにする。
一実施形態では変形体110と流体130がともに存在する場合、隣接領域に対して格子150を定義し、格子150に基づいて物理法則を適用することで、変形体110と流体130との間の相互作用が精密に反映されるようにする。格子150は、一定の連結関係を有するメッシュ(Mesh)形態の資料構造であってもよく、変形体110と流体130が相互間の物理量をやり取りする通路であってもよい。格子150は複数のセル151を含んでもよく、格子150の格子点には変形体110のレベルセット(Level set)情報がスカラー(Scalar)値に格納されてもよい。レベルセット情報は、格子150で符号のある距離値として、格子150内における変形体110の位置を示すために用いてもよい。レベルセット情報は、変形体110の輪郭を基準にして変形体110の格子点が外部にあるか内部にあるかを示す。
例えば、変形体110と流体130が互いに衝突した場合、変形体110は、流体130との衝突によって形状がゆがんだり速度が減少することがあり、流体130にはしぶきが発生することがある。ここで、流体130は、変形体110が占める空間を避けて流動する。格子150は、変形体110と流体130の衝突領域、流体130でしぶきが発生する領域、及び変形体110がゆがんで空間で新しく占める領域などのように、変形体110と流体130との間の相互作用が発生する領域を全て含む。以上で説明した相互作用は、流体と変形体のように異種(heterogeneous)オブジェクトだけではなく、水と油のような同種(homogeneous)オブジェクトにも同一に適用されてもよい。一実施形態は、粒子基盤でモデリングされたオブジェクト間の輪郭を含む隣接領域に対して格子150を用いて作用力を算出することで、相互作用による運動量を精密に格納することができる。
図2は、一実施形態に係るオブジェクトをモデリングする方法を示したフローチャートである。図2を参照すると、一実施形態に係るオブジェクトをモデリングする装置(以下、モデリング装置)は、粒子からモデリングされた第1オブジェクトと粒子からモデリングされた第2オブジェクトとの間の隣接領域を検出する(S210)。粒子基盤でオブジェクトをモデリングする場合、モデリング装置はいずれか1つの粒子の周辺粒子を検索してもよい。検索された周辺粒子が互いに異なる物理量を有する互いに異なるオブジェクトに該当する場合、モデリング装置は、いずれか1つの粒子及び互いに異なるオブジェクトとして判断された粒子を含む領域を隣接領域として定義する。モデリング装置は隣接領域を検出してもよい。
モデリング装置は、ステップS210で検出した隣接領域に対して格子を定義する(S220)。例えば、検出された隣接領域に含まれたオブジェクト粒子は、複数のセルを含む格子に分けられてもよい。ステップS220でモデリング装置は、隣接領域で第1オブジェクト又は第2オブジェクトの輪郭と、輪郭に隣接する格子の格子点との垂直距離(値)を抽出してもよい。モデリング装置は、抽出された距離値を格子点に格納してもよい。格子点に格納された距離値をレベルセット(level set)情報とも呼んでもよい。一実施形態で格子を定義する具体的な方法は図3を参照して説明する。
モデリング装置は、格子の格子点に格納された情報を用いて隣接領域における第1オブジェクトと第2オブジェクトとの間の作用力を算出する(S230)。ステップS230でモデリング装置は、隣接領域で格子のセル単位に第1オブジェクトの粒子と第2オブジェクトの粒子との間に衝突が発生したか否かを判断する。モデリング装置は、判断結果に基づいて第1オブジェクトの粒子と第2オブジェクトの粒子との間の作用力を算出する。ここで、第1オブジェクトは流体であり、第2オブジェクトは変形体であってもよい。また、第1オブジェクトと第2オブジェクトは互いに同種であってもよく異種であってもよい。一実施形態において、第1オブジェクトと第2オブジェクトとの間の作用力を算出する具体的な方法は図4及び図5を参照して説明する。
モデリング装置は、ステップS230で算出した作用力に基づいて、第1オブジェクトと第2オブジェクトをモデリングする(S240)。ステップS240においてモデリング装置は、ステップS230で算出した作用力を用いて粒子からモデリングされた第1オブジェクト及び第2オブジェクトの形状又は動きをより精密に補正することができる。
図3は、一実施形態に係るオブジェクトをモデリングする方法により隣接領域に対して格子を定義する方法を説明するための図である。
粒子からモデリングされた変形体301と粒子からモデリングされた流体303との間の隣接領域305を検出(310)した後、モデリング装置は、検出された隣接領域305に対して格子307を定義したり、格子構造に示す格子化を行う(330)。格子化によって、例えば、2Dの場合は1つのセルに4つの粒子が含まれ、3Dの場合には1つのセルに8個の粒子が含まれてもよい。
格子307の格子点309には各格子点で最も近い変形体301の輪郭までの距離値のレベルセット情報が格納されている。例えば、格子点311には、変形体301の輪郭から格子点311までの垂直距離値であるdが格納され、格子点313には変形体301の輪郭から格子点313までの垂直距離値であるdが格納されている。格子点309に格納された距離値が(+)である場合は当該格子点が変形体301の外部にあることを示し、格納された距離値が(−)である場合は当該格子点が変形体301の内部にあることを示す。モデリング方法により、(+)と(−)は反対に定義されることもある。モデリング装置は、レベルセット情報に基づいて傾斜度を算出し、必要に応じてレベルセット情報を幾何学的正規化(Geometric Normal)情報に変換してもよい。
格子307の各格子点309にはレベルセット情報とは別に、流体303の粒子が変形体301から受けた作用力が線形補間により算出されて格納されてもよい。格納された作用力は、後ほど変形体301の粒子をモデリングするために用いてもよい。また、各格子点309には流体303粒子の速度値が格納され、格納された速度値は、流体303粒子が受ける抗力(Drag Force)を算出するために用いてもよい。
図3を参照して説明したように、モデリング装置は、格子点がオブジェクトの輪郭からどの程度離れており、輪郭の内部又は外部にあるかを確認することができる。
図4は、一実施形態に係るオブジェクトをモデリングする方法により第1オブジェクトと第2オブジェクトとの間の作用力を算出する方法を示したフローチャートである。
図4を参照すると、一実施形態に係るモデリング装置は、隣接領域で第1オブジェクトの粒子と第2オブジェクトの粒子との間に衝突が発生したか否かを判断する(S410)。ステップS410で、モデリング装置は、第1オブジェクトの粒子の位置に隣接する格子点に格納された距離値を用いて衝突が発生したか否かを判断する。ここで、モデリング装置は、格子のセル単位で衝突が発生したか否かを判断する。例えば、第1オブジェクト(流体)の粒子と第2オブジェクト(変形体)の粒子が同じ位置にオーバーラッピングされた状態、言い換えれば、流体粒子が変形体粒子を貫通する位置にあれば、粒子間に衝突が発生したと判断する。
また、ステップS410において、モデリング装置は、第1オブジェクトの粒子が体積保存条件を満足するか否かをさらに考慮する。例えば、第1オブジェクトが流体であり、第2オブジェクトが変形体であれば、衝突によって第1オブジェクトと第2オブジェクトとの間に変化が発生しても第1オブジェクトの流体の全体的な体積は保存しなければならない。したがって、一実施形態では、衝突時に格子点に格納された距離値の他にも流体の全体的な体積が衝突以前と同一に保持されるかを共に考慮する。
ステップS410において、衝突が発生していないと判断される場合、モデリング装置は、衝突処理のためのステップS420〜ステップS440の実行をスキップ(skip)する。
ステップS410において、衝突が発生したと判断される場合、モデリング装置は、隣接領域で第1オブジェクトの粒子と第2オブジェクトの粒子のうち衝突が発生した第1オブジェクトの粒子を検出する(S420)。ここで、衝突が発生した第1オブジェクトの粒子は単数又は複数であってもよい。モデリング装置は、ステップS420で検出した第1オブジェクトの粒子の位置を再定義する(S430)。モデリング装置は、検出された第1オブジェクトの粒子の位置を第2オブジェクト(の粒子)を貫通しない位置として再定義する。例えば、第1オブジェクトが流体であり、第2オブジェクトが変形体であれば、この衝突時に流体粒子は変形体(粒子)を貫通することなく避けて流動しなければならない。したがって、モデリング装置は、流体粒子と変形体粒子との間に衝突が発生した場合、流体粒子が変形体粒子を貫通しない位置にあるようモデリングしてもよい。
ステップS430において、モデリング装置は、ステップS420で検出した第1オブジェクトの粒子を含むセルに該当する格子点に格納された距離値及び傾斜度を用いて、第2オブジェクトを貫通しない第1オブジェクトの粒子の移動方向及び最短移動距離を算出する。モデリング装置は、算出された移動方向及び最短移動距離により第1オブジェクトの粒子の位置を移動させる。ここで、モデリング装置は、格子点に格納された距離値及び算出された最短移動距離を用いて第1オブジェクトの粒子の移動速度を算出し、算出した移動速度を検出した第1オブジェクトの粒子を含むセルに該当する格子点に格納してもよい。
モデリング装置は、第1オブジェクトの粒子の再定義された位置に基づいて、衝突により第2オブジェクトに及ぼす作用力を算出する(S440)。ステップS440において、モデリング装置は、第1オブジェクトの粒子の再定義された位置で第1オブジェクトの粒子が第2オブジェクトから受けると推定される力を算出し、推定される力に基づいて衝突により第2オブジェクトに及ぼす作用力を算出してもよい。モデリング装置は算出された作用力を、第1オブジェクトの粒子の再定義された位置に該当する格子の格子点に分けて格納することができる。
図5は、一実施形態に係るオブジェクトをモデリングする方法により第1オブジェクトと第2オブジェクトとの間の作用力を算出する方法を説明するための図である。図5において、510の各格子点には(+)又は(−)のような符号が表示されていることが分かる。モデリング装置は、格子点に格納された値を補間して第1オブジェクトの粒子、言い換えれば、流体粒子の位置から変形体輪郭までの距離値を算出する。算出された値の符号が(−)であれは衝突状態を示し、(+)であれば衝突が発生していない状態を示す。このように、格子点に格納されている距離値が流体粒子の位置でどのような値を有するかを、補間により算出する過程を「格子値クエリ(query)」と呼ぶ。
モデリング装置は、各格子点に格納された符号値によって第1オブジェクト(例えば、流体)と第2オブジェクト(例えば、変形体)との間の衝突が発生したかを判断する。モデリング装置は、各流体粒子の位置で周辺の4個の格子点に格納された距離値をサンプリングしてもよい。モデリング装置は、各流体粒子の周辺にある格子点に格納された値を線形補間し、流体粒子と変形体輪郭の粒子との距離を把握する。ここで、サンプリングされた距離値が、例えば、+0.5nmであると仮定すれば、これは流体粒子の中心が変形体の輪郭から0.5nm離れていることを意味する。もし、流体粒子の半径が0.5nmであれば、流体粒子は変形体輪郭と接している状態であり、流体粒子の半径が1.0nmであれば、流体粒子は変形体と衝突した状態、言い換えれば、流体粒子が変形体粒子を貫通した位置である。このような場合、モデリング装置は、当該流体粒子の位置を変形体粒子を貫通しない位置に再定義して流体粒子の衝突を処理する。
例えば、変形体粒子と流体粒子の衝突によって530のように流体粒子が変形体の内部に該当する第1位置531にあることを検出した場合、モデリング装置は、流体粒子を第1位置531から変形体粒子を貫通しない第2位置533に移動させる。ここで、モデリング装置は、粒子を含むセルに該当する格子点に格納された距離値及び傾斜度を用いて、変形体粒子を貫通しない流体粒子の移動方向及び最短移動距離を算出することができる。
モデリング装置は、算出された移動方向及び最短移動距離により流体粒子を衝突が発生しない位置に移動させる。モデリング装置は、例えば、流体粒子を含むセルに該当する格子点に格納された距離値が(−)から(+)になる傾斜方向(ここで、水平方向に右側から左側方向に、垂直方向に上方から下方向に)に最短距離を移動させて流体粒子と変形体粒子との間に衝突が発生しないようにする。
モデリング装置は、流体粒子が受ける衝撃量に対応する力を変形体に伝達することで、変形体と流体との間の衝突により流体粒子が受けたと推定される力を変形体に対する反作用力として反映する。550から流体粒子が533の位置に移動した場合、流体粒子が受けたと推定される力は、作用・反作用の法則により、551のように変形体に対応する方向に同じ大きさとして作用してもよい。ここで、流体粒子が受けたと推定される力は、流体粒子の初期位置と後の位置、移動速度などが分かる場合に一般的な物理公式を用いて算出してもよい。
変形体に作用する反作用力により、流体粒子の上に変形体が浮かび上がるようにモデリングしてもよい。モデリング装置は、変形体に及ぼす作用力を流体粒子の再定義された位置533に該当するセルの格子点に格納してもよい。ここで、変形体に及ぼす作用力は、格子点から当該流体粒子までの距離に応じて各格子点に相異に格納されてもよい。例えば、格子点573のように、当該格子点から流体粒子までの距離が遠い場合には最も小さい値が割り当てられ、格子点572のように、当該格子点から流体粒子までの距離が近い場合には最も大きい値が割り当てられてもよい。また、格子点571と格子点574には格子点573よりも大きく、格子点572よりも小さい値が割り当てられる。各格子点に割り当てられる作用力は、矢印の長さ又は大きさのように表現されてもよい。最も大きい作用力が作用する格子点572には、矢印の長さ又は大きさが大きく表現され、最も小さい作用力が作用する格子点573には矢印の長さ又は大きさが小さく表現される。
モデリング装置は、上述した方式で変形体に及ぼす作用力を、当該の流体粒子を含むセルの格子点に分けて格納してもよい。上述した510及び530の過程により、モデリング装置は流体と変形体との間の外見上の衝突をモデリングし、550過程により流体と変形体との間に作用する作用力をモデリングすることができる。
図6は、一実施形態に係るオブジェクトをモデリングする装置のブロック図である。図6を参照すると、一実施形態に係るモデリング装置600は、格子変換モジュール610、オブジェクトモデリングモジュール630、及びプロセッサ650を含む。
格子変換モジュール610は、粒子からモデリングされた第1オブジェクトと粒子からモデリングされた第2オブジェクトとの間の隣接領域を検出し、隣接領域に対して格子を定義する。格子変換モジュール610は、隣接領域で第1オブジェクト又は第2オブジェクトの輪郭と輪郭に隣接する格子の格子点との距離値を抽出し、抽出された距離値を格子の格子点に格納してもよい。
オブジェクトモデリングモジュール630は、格子の格子点に格納された情報を用いて隣接領域における第1オブジェクトと第2オブジェクトとの間の作用力を算出し、作用力に基づいて第1オブジェクトと第2オブジェクトをモデリングしてもよい。オブジェクトモデリングモジュール630は、判断部631、検出部633、再定義部635、及び算出部637を含む。判断部631は、隣接領域で第1オブジェクトの粒子と第2オブジェクトの粒子との間に衝突が発生したか否かを判断する。検出部633は、判断部631の判断結果に基づいて、隣接領域で第1オブジェクトの粒子と第2オブジェクトの粒子のうち衝突が発生した第1オブジェクトの粒子を検出する。再定義部635は、検出部633によって検出された第1オブジェクトの粒子の位置を再定義する。再定義部635は、検出された第1オブジェクトの粒子を含むセルに該当する格子点に格納された距離値及び傾斜度を用いて、第2オブジェクトを貫通しない第1オブジェクトの粒子の移動方向及び最短移動距離を算出する。再定義部635は、算出された移動方向及び最短移動距離に応じて第1オブジェクトの粒子の位置を移動させる。
算出部637は、第1オブジェクトの粒子の再定義された位置に基づいて、衝突によって第1オブジェクトが第2オブジェクトに及ぼす作用力を算出する。算出部637は、第1オブジェクトの粒子の再定義された位置で第1オブジェクトの粒子が第2オブジェクトから受けると推定される力を算出し、推定される力に基づいて衝突により第2オブジェクトに及ぼす作用力を算出する。算出部637は、算出された作用力を、衝突が発生した第1オブジェクトの粒子を含むセルに該当する格子の格子点に格納してもよい。
プロセッサ650は、格子変換モジュール610及びオブジェクトモデリングモジュール630を制御する。実施形態に係るオブジェクトモデリングモジュール630は、変形体をモデリングするモジュールと流体をモデリングするモジュールにそれぞれ分類して構成し、このような実施形態は図9を参照して説明する。
図7は、他の実施形態に係るモデリング装置のブロック図である。図7を参照すると、他の実施形態に係るモデリング装置700は、メモリ710、プロセッサ730及び通信部750を含む。
メモリ710は、粒子からモデリングされたオブジェクトをモデリングする装置700の動作を制御するプログラムを記録する。
プロセッサ730は、メモリ710に格納されたプログラムを駆動させ、1つ又は複数であってもよい。ここで、プログラムは、粒子からモデリングされた第1オブジェクトと粒子からモデリングされた第2オブジェクトとの間の隣接領域を検出し、隣接領域に対して複数のセルを含む格子を定義する。プログラムは、格子の格子点に格納された情報を用いて、隣接領域における算出した第1オブジェクトと第2オブジェクトとの間の作用力に基づいて第1オブジェクトと第2オブジェクトをモデリングしてもよい。
通信部750は、粒子からモデリングされたオブジェクトをモデリングする装置700の動作に必要な情報を送受信する。
図8は、他の実施形態によりオブジェクトをモデリングする方法を示す図である。図8を参照すると、流体と変形体の粒子が分布した場合、流体と変形体との間の相互作用領域に対する演算によって相互作用された粒子分布の結果を取得する過程が示されている。相互作用領域に対する演算は次のように行われる。
モデリング装置は、流体と変形体との間の隣接領域を検出し(S810)、隣接領域に対して格子を定義する(S830)。モデリング装置は、格子の格子点に格納された情報を用いて隣接領域における流体と変形体との間の相互作用力を処理する(S850)。
一実施形態で流体と変形体との間の相互作用力を処理する過程は次の通りである。モデリング装置は、第1オブジェクトの粒子と第2オブジェクトの粒子との間に衝突が発生した場合、例えば、図5に示す510及び530を参照して説明したように、第1オブジェクトの粒子を第2オブジェクトを互いに貫通しない位置に移動させることによって衝突を処理する(S851)。モデリング装置は流体に作用する作用力を処理し(S853)、流体に対する処理結果を用いて変形体に作用する作用力を処理する(S855)。モデリング装置は、流体に作用する作用力を流体モデリングモジュールを用いて処理し、変形体に作用する作用力を変形体モデリングモジュールを用いて処理する。
図9は、他の実施形態に係るモデリング装置で隣接領域及び作用力を処理する過程を各モジュールの動作順により示す図である。図9を参照すると、他の実施形態に係るモデリング装置は、タイムステップ選択部910、格子モジュール920、変形体モデリングモジュール930、及び流体モデリングモジュール940を含む。
タイムステップ選択部910は、流体粒子と変形体粒子の間の相互作用をモデリングするタイムステップ(time step)を選択する。例えば、モデリングが行われる1周期を1秒と仮定すると、モデリング装置は、1秒の間の変形体と流体との間の相互作用を一回にモデリングすることなく、0.5秒あるいは0.3秒単位のように徐々にモデリングしてもよい。ここで、タイムステップは、1周期を0.5秒あるいは0.3秒単位のように何回のステップに分けるかを決定する過程である。タイムステップは、タイムステップ選択部910あるいはモデリング装置のユーザによって適切な値に選択されてもよい。
また、タイムステップ選択部910は、変形体モデリングモジュール930及び流体モデリングモジュール940に対してそれぞれ個別的にタイムステップを設定してもよい。モデリング装置は、タイムステップ選択部910を介して、どのような時間における流体粒子又は変形体粒子の動きをモデリングするかを選択してもよい。
格子モジュール920は、タイムステップ選択部910で選択されたタイムステップにより流体モデリングモジュール940から情報を受信する。ここで、格子モジュール920が流体モデリングモジュール940から受信する情報は、例えば、流体粒子が受ける作用力及び流体粒子の最終速度などを含んでもよい。ここで、流体粒子が受ける作用力は制約力のように表現されてもよい。
格子モジュール920は、流体モデリングモジュール940から受信した情報を加工して変形体モデリングモジュール930に提供する。格子モジュール920が加工して変形体モデリングモジュール930に提供した情報は、流体フィールドに含まれた流体粒子と変形体との間の相互作用力であってもよい。ここで、相互作用力は、例えば、変形体に対する流体粒子の反作用力及び抗力などのように変形体に対する流体粒子の作用力として理解してもよい。
変形体モデリングモジュール930は、格子モジュール920から受信した相互作用力を変形体に対する形状モデルに反映する。変形体モデリングモジュール930は、相互作用力が反映された形状モデルから変形体の形状情報を生成してもよい。変形体モデリングモジュール930は、格子モジュール920に変形体の形状情報を提供してもよい。
格子モジュール920は、変形体の形状情報から変形体の輪郭に関する情報を把握する。格子モジュール920は、形状情報を用いて変形体に対する流体粒子の作用力を算出してもよい。格子モジュール920は、流体モデリングモジュール940に形状情報を送信してもよい。
流体モデリングモジュール940は、形状情報を用いて流体粒子と変形体との間の衝突によって流体粒子が受ける制約力及び流体粒子の最終速度を算出する。流体モデリングモジュール940は、流体粒子が受ける制約力及び流体粒子の最終速度を再び格子モジュール920に提供してもよい。
一実施形態において、相対モデリングモジュール(例えば、流体の場合には変形体モデリングモジュール930、変形体の場合には流体モデリングモジュール940)が格子モジュール920に格納した情報をフィードバックし、自身のオブジェクト粒子のモデリング時に反映することで、変形体と流体との間の相互作用をリアルタイムに処理することができる。
一実施形態によると、変形体と流体との間の相互作用をリアルタイムに処理することで、高品質の現実的な映像再現を必要とする映画の特殊効果のみならず、リアルタイムが最も重要とされるゲームやモバイルUI分野で流体及び流体と混合した変形体の事実的なモデリングを可能にする。
図10は、他の実施形態に係るモデリング装置で格子モジュールの中継を介して流体と変形体との間の相互作用を処理する過程を説明するための図である。図10を参照すると、流体モデリングモジュール1010、格子モジュール1030及び変形体モデリングモジュール1050が示されている。
流体モデリングモジュール1010は、モデリングステップにおいて、例えば、重力のような外力を処理し、流体フィールドの粘性をモデリングした後、流体粒子の位置を更新する。流体モデリングモジュール1010は、流体フィールドに含まれた各流体粒子が変形体と衝突したか否か、及び流体粒子の体積又は密度が体積保存条件を満足するかを判断して流体粒子をモデリングする。例えば、流体フィールドに含まれた各流体粒子が変形体と衝突し、衝突時の流体粒子の体積が体積保存条件を満足すると仮定する。流体モデリングモジュール1010は、流体粒子が受ける制約力及び流体粒子の最終速度を算出する。流体モデリングモジュール1010は、例えば、衝突及び体積保存条件がない場合に流体粒子に作用する力と、衝突及び体積保存条件がある場合に流体粒子に作用する力とを比較して、流体粒子が受ける制約力を算出してもよい。流体モデリングモジュール1010は、前で算出した制約力及び流体粒子の最終速度に関する情報を格子モジュール1030に提供してもよい。
格子モジュール1030は、流体モデリングモジュール1010と変形体モデリングモジュール1050が相手側のモデリングモジュールの存在を非明示的に認識するように助けることができる。格子モジュール1030は流体粒子の作用力を変形体モデリングモジュール1050に提供し、変形体の形状情報を流体モデリングモジュール1010に提供してもよい。流体粒子の作用力は、変形体に対する流体粒子の反作用力及び抗力を含んでもよい。格子モジュール1030は、流体粒子と変形体が予め設定された距離以内に隣接する場合、制約力及び流体粒子の最終速度に基づいて作用力を算出してもよい。
格子モジュール1030は、流体粒子には変形体の形状情報を伝達し、変形体の形状モデルには流体が受けた相互作用と抵抗力を送信して、各モデリングモジュール1010、1050が物理的に正しい相互作用結果を導き出すようにする。格子モジュール1030は、相互作用が正しく送信されるように最小限の流体と変形体が隣接する領域を対象に動作する。
変形体モデリングモジュール1050は、流体と同様に重力、弾性力などをモデリングした後、格子モジュール1030を参照して流体との相互作用領域で発生した力を追加的に反映してもよい。変形体モデリングモジュール1050は距離フィールドで、形状モデルに作用力を適用して形状モデルの最終位置を決定する。ここで、作用力は変形体に対する流体粒子の作用力を考慮したものであり、作用力によって流体粒子による摩擦力と抵抗を変形体に反映してもよい。変形体モデリングモジュール1050は、形状モデルの最終位置で変形体及び流体粒子の間の衝突を考慮し、形状モデル及び流体粒子を除いた変形体の障害物が体積保存条件を満足するよう変形体の形状情報を生成してもよい。変形体モデリングモジュール1050は、変形体の形状モデル及び変形体の障害物が体積保存条件を満足するように変形体の形状情報を生成する。ここで、変形体の形状モデルは、変形体に対する流体粒子の作用力が反映されたものであってもよい。変形体モデリングモジュール1050は形状情報を、例えば、格子で符号のある距離値に自身の位置を示すレベルセット情報として格子モジュール1030に送信してもよい。
一実施形態によると、流体モデリングモジュール1010及び変形体モデリングモジュール1050を分離して変形体及び流体それぞれの粒子モデリング時に求められる体積保存などのような制約条件を個別的に達成することができる。
また、一実施形態において、流体モデリングモジュール1010及び変形体モデリングモジュール1050は、それぞれのモデリングを独自に実行しながら変形体と流体との間の相互作用領域については格子モジュール1030によって融合処理することができる。実施形態において、格子モジュール1030以外に仮想の格子化が用いられてもよい。
図11は、他の実施形態に係るモデリング装置の動作方法を示したフローチャートである。図11を参照すると、一実施形態に係るモデリング装置は、流体フィールド(fluid field)に含まれた流体粒子と変形体粒子との間の衝突及び流体粒子が第1制約条件の体積保存条件が満足されるか否かを判断する(S1110)。
ステップS1110の判断結果に応じて、モデリング装置は、流体粒子が受ける制約力及び流体粒子の最終速度を算出する(S1120)。流体粒子と変形体粒子が衝突する場合、モデリング装置は、流体粒子を変形体を貫通しない最終位置に移動させる。モデリング装置は、最終位置で流体粒子が体積保存条件を満足するようにモデリングした後、流体粒子が受ける制約力及び流体粒子の最終速度を算出する。また、モデリング装置は、形状情報を用いて制約力及び流体粒子の最終速度を算出してもよい。
モデリング装置は、ステップS1120で算出した制約力及び最終速度を用いて変形体に対する流体粒子の作用力を算出する(S1130)。作用力は反作用力及び抗力を含んでもよい。ステップS1130でモデリング装置は、制約力に基づいて変形体に対する流体粒子の反作用力を算出する。ここで、反作用力は、形状情報をさらに用いて算出されてもよい。モデリング装置は、制約力を反映した流体粒子の最終位置における最終速度に基づいて変形体に対する流体粒子の抗力を算出してもよい。その他にも、モデリング装置は、流体粒子と変形体粒子が予め設定された距離内に隣接するか否かを判断し、判断結果に応じて作用力を算出してもよい。
モデリング装置は、変形体の形状モデル及び流体粒子を除いた変形体の障害物が体積保存条件を満足するように変形体の形状情報を生成する(S1140)。変形体の形状モデルは、変形体に対する流体粒子の作用力が反映されたものである。ステップS1140でモデリング装置は、形状モデルに作用力を適用し、作用力を適用した結果に応じて形状モデルの最終位置を決定する。モデリング装置は、形状モデルの最終位置で形状モデル及び変形体の障害物が体積保存条件を満足するように変形体の形状情報を生成する。
図12は、他の実施形態に係るモデリング装置で流体モデリングモジュールの動作方法を示したフローチャートである。図12を参照すると、一実施形態に係る流体モデリングモジュールは、流体フィールドで流体粒子に影響を与える外力及び流体フィールドの粘性を反映して流体粒子の位置を算出する(S1210)。ステップS1210において、流体モデリングモジュールは、流体粒子の間の運動量格納方程式(momentum equation)を算出してもよい。流体モデリングモジュールは、例えば、第1粒子に隣接する第2粒子を考慮して第1粒子に対する運動量格納方程式を算出し、第1粒子及び第2粒子を含む全ての粒子に対する密度、外力及び粘性などを算出してもよい。流体モデリングモジュールは、運動量格納方程式の算出結果を用いて、第1粒子及び第2粒子それぞれに対して非圧縮性制約条件を満足する変化量を算出してもよい。非圧縮性制約条件は、流体内部の体積の不変条件を意味し、一定の流体フィールド内で粒子速度を反映した粒子間の出入り量制御及び流体と変形体との間の相互作用による輪郭の高精密なモデリングを可能にする。流体モデリングモジュールは、流体粒子それぞれの流体フィールドにおけるダイバージェンス(divergence)を求め、ダイバージェンスが「0」になるようにして非圧縮性制約条件を満たすことができる。流体モデリングモジュールは、算出された変化量に応じて流体粒子の位置を算出してもよい。
ステップS1210の以前に、流体モデリングモジュールは、流体をモデリングするための粒子を初期化してもよい。初期化過程でモデリング装置は、例えば、一定空間又は領域にある流体を示す粒子量、密度、速度及び位置などの情報を初期化してもよい。
流体モデリングモジュールは、流体フィールドに含まれた流体粒子と変形体との間の衝突が発生したかを判断する(S1220)。
ステップS1220で衝突が発生したと判断される場合、流体モデリングモジュールは、流体粒子の位置を変形体を貫通しない最終位置に移動させる(S1230)。流体モデリングモジュールは、最終位置で流体粒子が第1制約条件(例えば、体積保存条件)を満足するようにモデリングする(S1240)。流体モデリングモジュールは、衝突によって流体粒子が受ける制約力を算出し(S1250)、最終位置で流体粒子の最終速度を算出する(S1260)。ステップS1250及びステップS1260において、流体モデリングモジュールは、格子モジュールから受信した変形体の形状情報を用いて制約力及び流体粒子の最終速度を算出してもよい。流体モデリングモジュールは、流体粒子が受ける制約力及び流体粒子の最終速度に関する情報を格子モジュールに提供する(S1270)。
ステップS1220において、衝突が発生しないと判断された場合、流体モデリングモジュールは動作を終了したり、又はステップS1210で算出された流体粒子の位置を格子モジュールに提供してもよい。
図13は、他の実施形態に係るモデリング装置で変形体モデリングモジュールの動作方法を示したフローチャートである。図13を参照すると、一実施形態に係る変形体モデリングモジュールは、外力を反映して変形体に対する粒子基盤の形状モデルをモデリングする(S1310)。変形体モデリングモジュールは、ステップS1310でモデリングされた形状モデルに変形体に対する流体粒子の作用力を反映する(S1320)。変形体モデリングモジュールは、作用力の適用結果に応じて形状モデルの最終位置を決定する(S1330)。
変形体モデリングモジュールは、変形体と流体粒子の間の衝突が発生したかを判断する(S1340)。
ステップS1340で衝突が発生したと判断された場合、変形体モデリングモジュールは、形状モデルの最終位置で形状モデル及び変形体の障害物が第2制約条件が満足されるようにモデリングする(S1350)。変形体モデリングモジュールは、ステップS1350でモデリングされた変形体の形状モデルに対する形状情報を生成する(S1360)。変形体モデリングモジュールは、ステップS1360で生成された形状情報を格子モジュールに送信する(S1370)。
ステップS1340において、衝突が発生していないと判断された場合、変形体モデリングモジュールは形状モデルに対する形状情報を生成し(S1360)、形状情報を格子モジュールに送信する(S1370)。
図14は、他の実施形態に係るモデリング装置で格子モジュールの動作方法を示したフローチャートである。図14を参照すると、一実施形態に係る格子モジュールは、変形体モデリングモジュールから変形体の形状情報を受信する(S1410)。格子モジュールは、変形体の形状情報を流体モデリングモジュールに提供する(S1420)。格子モジュールは流体モデリングモジュールから、流体粒子が受ける制約力及び流体粒子の最終速度を受信する(S1430)。格子モジュールは、変形体の形状情報及び流体粒子が受ける制約力を用いて変形体に対する流体粒子の反作用力を算出する(S1440)。格子モジュールは、流体粒子の最終位置での最終速度に基づいて変形体に対する流体粒子の抗力を算出する(S1450)。格子モジュールは、反作用力及び抗力を含む流体粒子の作用力を変形体モデリングモジュールに提供する(S1460)。
以上で説明された装置は、ハードウェア構成要素、ソフトウェア構成要素、及び/又はハードウェア構成要素及びソフトウェア構成要素の組合せで実現してもよい。例えば、プロセッサ、コントローラ、ALU(arithmetic logic unit)、デジタル信号プロセッサ(digital signal processor)、マイクロコンピュータ、FPA(field programmable array)、PLU(programmable logic unit)、マイクロプロセッサー、または、命令(instruction)を実行して応答できる異なる装置のように、1つ以上の汎用コンピュータまたは特殊目的のコンピュータを用いて実現されてもよい。処理装置は、オペレーティングシステム(OS)及び前記オペレーティングシステム上で行われる1つ以上のソフトウェアアプリケーションを実行してもよい。また、処理装置は、ソフトウェアの実行に応答してデータをアクセス、格納、操作、処理及び生成してもよい。理解の便宜のために、処理装置は1つ使用されるものと説明される場合もあるが、当該の技術分野で通常の知識を有する者は、処理装置が複数の処理要素(processing element)及び/又は複数類型の処理要素を含んでいることが分かる。例えば、処理装置は、複数のプロセッサまたは1つのプロセッサ及び1つのコントローラを含んでもよい。また、並列プロセッサ(parallel processor)のような、他の処理構成も可能である。
ソフトウェアはコンピュータプログラム、コード、命令、またはこのうちの1つ以上の組合せを含んでもよく、希望の通りに動作するよう処理装置を構成したり独立的または結合的に処理装置を命令してもよい。ソフトウェア及び/又はデータは、処理装置によって解釈されたり処理装置に命令またはデータを提供するためどのような類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体または装置、送信される信号波に永久的または一時的に具体化できる。ソフトウェアは、ネットワークに接続されたコンピュータシステム上に分散し、分散された方法で格納されたり実行されてもよい。ソフトウェア及びデータは1つ以上のコンピュータで読み出し可能な記録媒体に格納されてもよい。
実施形態に係る方法は、多様なコンピュータ手段を介して様々な処理を実行することができるプログラム命令の形態で実現され、コンピュータで読取可能な記録媒体に記録されてもよい。コンピュータ読取可能な媒体は、プログラム命令、データファイル、データ構造などのうち1つまたはその組合せを含んでもよい。媒体に記録されるプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり、使用可能なものであってもよい。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、光ディスクのような光磁気媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれてもよい。プログラム命令の例には、コンパイラによって作られるような機械語コードだけでなく、インタープリタなどを用いてコンピュータによって実行できる高級言語コードが含まれる。前記したハードウェア装置は、本発明の動作を行うために1つ以上のソフトウェアモジュールとして動作するように構成されてもよく、その逆も同様である。
上述したように、本発明を限定された実施形態と図面によって説明したが、本発明は、上記の実施形態に限定されることなく、本発明が属する分野における通常の知識を有する者であれば、このような実施形態から多様な修正及び変形が可能である。
したがって、本発明の範囲は、開示された実施形態に限定されるものではなく、特許請求の範囲だけではなく特許請求の範囲と均等なものなどによって定められるものである。
700:モデリング装置
710:メモリ
730:プロセッサ
750:通信部

Claims (20)

  1. 粒子からモデリングされた第1オブジェクトと粒子からモデリングされた第2オブジェクトとの間の隣接領域を検出するステップと、
    前記隣接領域に対して格子を定義するステップと、
    前記格子の格子点に格納された情報を用いて、前記隣接領域における前記第1オブジェクトと前記第2オブジェクトとの間の作用力を算出するステップと、
    前記作用力に基づいて前記第1オブジェクトと前記第2オブジェクトをモデリングするステップと、
    を含む、
    オブジェクトをモデリングする方法。
  2. 前記格子を定義するステップは、
    前記隣接領域で前記第1オブジェクト又は前記第2オブジェクトの輪郭と前記輪郭に隣接する前記格子の格子点との距離値を抽出するステップと、
    前記抽出された距離値を前記格子点に格納するステップと、
    を含む、
    請求項1に記載のオブジェクトをモデリングする方法。
  3. 前記作用力を算出するステップは、
    前記隣接領域で前記第1オブジェクトの粒子と前記第2オブジェクトの粒子との間に衝突が発生したか否かを判断するステップと、
    前記判断結果に基づいて、前記第1オブジェクトの粒子と前記第2オブジェクトの粒子との間の作用力を算出するステップと、
    を含む、
    請求項1または2に記載のオブジェクトをモデリングする方法。
  4. 前記衝突が発生したか否かを判断するステップは、前記第1オブジェクトの粒子の位置に隣接する格子点に格納された距離値を用いて前記衝突が発生したか否かを判断するステップを含む、
    請求項3に記載のオブジェクトをモデリングする方法。
  5. 前記衝突が発生したか否かを判断するステップは、前記第1オブジェクトの粒子が体積保存条件を満足するか否かをさらに考慮する、
    請求項4に記載のオブジェクトをモデリングする方法。
  6. 前記作用力を算出するステップは、
    前記衝突が発生したと判断される場合、前記隣接領域で前記第1オブジェクトの粒子と前記第2オブジェクトの粒子のうち衝突が発生した第1オブジェクトの粒子を検出するステップと、
    前記検出された第1オブジェクトの粒子の位置を再定義するステップと、
    前記第1オブジェクトの粒子の再定義された位置に基づいて、前記衝突によって前記第2オブジェクトに及ぼす作用力を算出するステップと、
    を含む、
    請求項3または4に記載のオブジェクトをモデリングする方法。
  7. 前記検出された第1オブジェクトの粒子の位置を再定義するステップは、前記検出された第1オブジェクトの粒子の位置を前記第2オブジェクトを貫通しない位置に再定義するステップを含む、
    請求項6に記載のオブジェクトをモデリングする方法。
  8. 前記検出された第1オブジェクトの粒子の位置を再定義するステップは、
    前記検出された第1オブジェクトの粒子を含むセルに該当する格子点に格納された距離値及び傾斜度を用いて、前記第2オブジェクトを貫通しない前記第1オブジェクトの粒子の移動方向及び最短移動距離を算出するステップと、
    前記算出された移動方向及び最短移動距離により前記第1オブジェクトの粒子の位置を移動させるステップと、
    を含む、
    請求項6または7に記載のオブジェクトをモデリングする方法。
  9. 前記格子点に格納された距離値及び前記算出された最短移動距離を用いて前記第1オブジェクトの粒子の移動速度を算出するステップと、
    前記算出された移動速度を前記検出された第1オブジェクトの粒子を含むセルに該当する格子点に格納するステップと、
    をさらに含む、
    請求項8に記載のオブジェクトをモデリングする方法。
  10. 前記衝突によって前記第2オブジェクトに及ぼす作用力を算出するステップは、
    前記第1オブジェクトの粒子の再定義された位置で前記第1オブジェクトの粒子が前記第2オブジェクトから受けると推定される力を算出するステップと、
    前記推定される力に基づいて前記衝突によって前記第2オブジェクトに及ぼす作用力を算出するステップと、
    を含む、
    請求項6に記載のオブジェクトをモデリングする方法。
  11. 前記算出された作用力を、前記第1オブジェクトの粒子の再定義された位置に該当する格子の格子点に格納するステップをさらに含む、
    請求項10に記載のオブジェクトをモデリングする方法。
  12. 前記第1オブジェクトと前記第2オブジェクトは互いに異種である、
    請求項1乃至11いずれか一項に記載のオブジェクトをモデリングする方法。
  13. 前記第1オブジェクトは流体であり、前記第2オブジェクトは変形体である、
    請求項12に記載のオブジェクトをモデリングする方法。
  14. 請求項1乃至13いずれか一項に記載の方法を実行させるためのプログラムが記録されたコンピュータ読み出し可能な記録媒体。
  15. 粒子からモデリングされた第1オブジェクトと、粒子からモデリングされた第2オブジェクトとの間の隣接領域を検出し、前記隣接領域に対して格子を定義する格子変換モジュールと、
    前記格子の格子点に格納された情報を用いて前記隣接領域における前記第1オブジェクトと前記第2オブジェクトとの間の作用力を算出し、前記作用力に基づいて前記第1オブジェクトと前記第2オブジェクトをモデリングするオブジェクトモデリングモジュールと、
    前記格子変換モジュール及び前記オブジェクトモデリングモジュールを制御するプロセッサと、
    を含む、
    オブジェクトをモデリングする装置。
  16. 前記格子変換モジュールは、前記隣接領域で前記第1オブジェクト又は前記第2オブジェクトの輪郭と前記輪郭に隣接する前記格子の格子点との距離値を抽出し、前記抽出された距離値を前記格子の格子点に格納する、
    請求項15に記載のオブジェクトをモデリングする装置。
  17. 前記オブジェクトモデリングモジュールは、
    前記隣接領域で前記第1オブジェクトの粒子と前記第2オブジェクトの粒子との間に衝突が発生したか否かを判断する判断部と、
    前記判断結果に基づいて、前記隣接領域で前記第1オブジェクトの粒子と前記第2オブジェクトの粒子のうち衝突が発生した第1オブジェクトの粒子を検出する検出部と、
    前記検出された第1オブジェクトの粒子の位置を再定義する再定義部と、
    前記第1オブジェクトの粒子の再定義された位置に基づいて、前記衝突によって前記第2オブジェクトに及ぼす作用力を算出する算出部と、
    を含む、
    請求項15または16に記載のオブジェクトをモデリングする装置。
  18. 前記再定義部は、前記検出された第1オブジェクトの粒子を含むセルに該当する格子点に格納された距離値及び傾斜度を用いて、前記第2オブジェクトを貫通しない前記第1オブジェクトの粒子の移動方向及び最短移動距離を算出し、前記算出された移動方向及び最短移動距離により前記第1オブジェクトの粒子の位置を移動させる、
    請求項17に記載のオブジェクトをモデリングする装置。
  19. 前記算出部は、前記第1オブジェクトの粒子の再定義された位置で前記第1オブジェクトの粒子が前記第2オブジェクトから受けると推定される力を算出し、前記推定される力に基づいて前記衝突によって前記第2オブジェクトに及ぼす作用力を算出し、前記算出された作用力を、前記衝突が発生した第1オブジェクトの粒子を含むセルに該当する格子の格子点に格納する、
    請求項17または18に記載のオブジェクトをモデリングする装置。
  20. オブジェクトをモデリングする装置において、
    前記モデリングする装置の動作を制御するプログラムを記録するメモリと、
    前記プログラムを駆動させる1つ以上のプロセッサと、
    を含み、
    前記プログラムは、
    粒子からモデリングされた第1オブジェクトと粒子からモデリングされた第2オブジェクトとの間の隣接領域を検出し、前記隣接領域に対して複数のセルを含む格子を定義し、前記格子の格子点に格納された情報を用いて前記隣接領域における算出した前記第1オブジェクトと前記第2オブジェクトとの間の作用力に基づいて前記第1オブジェクトと前記第2オブジェクトをモデリングする、
    オブジェクトをモデリングする装置。
JP2015153329A 2014-08-26 2015-08-03 オブジェクトをモデリングする方法及び装置 Active JP6663183B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20140111467 2014-08-26
KR10-2014-0111467 2014-08-26
KR10-2015-0059496 2015-04-28
KR1020150059496A KR102399671B1 (ko) 2014-08-26 2015-04-28 객체들을 모델링하는 방법 및 장치

Publications (2)

Publication Number Publication Date
JP2016045945A true JP2016045945A (ja) 2016-04-04
JP6663183B2 JP6663183B2 (ja) 2020-03-11

Family

ID=55540187

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015153329A Active JP6663183B2 (ja) 2014-08-26 2015-08-03 オブジェクトをモデリングする方法及び装置

Country Status (2)

Country Link
JP (1) JP6663183B2 (ja)
KR (1) KR102399671B1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102611430B1 (ko) * 2018-06-22 2023-12-08 삼성전자주식회사 반도체 설계 시뮬레이션을 위한 명령들을 포함하는 저장 매체, 반도체 설계 시스템, 그리고 반도체 설계 시뮬레이션의 방법
KR102245898B1 (ko) * 2019-06-27 2021-04-29 한국과학기술원 촉감 피드백 제공 방법 및 장치
KR102286160B1 (ko) * 2019-12-12 2021-08-05 한국과학기술원 촉감 피드백 제공 방법 및 장치
KR102200443B1 (ko) * 2019-12-13 2021-01-08 이에이트 주식회사 Lbm 기반의 유체 해석 시뮬레이션 장치, 방법 및 컴퓨터 프로그램

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101219534B1 (ko) 2008-12-22 2013-01-08 한국전자통신연구원 유체 시뮬레이션에서 섞이지 않으려는 성질을 가진 유체간 상호 작용 시 경계면에 작용하는 힘 산출 방법
KR101214903B1 (ko) * 2011-03-04 2012-12-24 (주)에프엑스기어 입자간의 상호 작용을 이용한 유체 시뮬레이션 시스템 및 방법
US8903693B2 (en) * 2011-06-24 2014-12-02 Siemens Aktiengesellschaft Boundary handling for particle-based simulation
JP5704246B2 (ja) * 2011-09-21 2015-04-22 富士通株式会社 物体運動解析装置、物体運動解析方法、及び物体運動解析プログラム

Also Published As

Publication number Publication date
KR102399671B1 (ko) 2022-05-20
JP6663183B2 (ja) 2020-03-11
KR20160024738A (ko) 2016-03-07

Similar Documents

Publication Publication Date Title
US9953109B2 (en) Object modeling method and apparatus
JP6663183B2 (ja) オブジェクトをモデリングする方法及び装置
US10360319B2 (en) Particle-based modeling method and apparatus
CN102982192A (zh) 用于基于颗粒的模拟的边界处理
US9053261B2 (en) Simulation method and simulation apparatus
US9557203B2 (en) Simulation method and simulation apparatus
AU2017227323B2 (en) Particle simulation device, particle simulation method, and particle simulation program
US11030363B2 (en) Physics engine with permissive rigid body penetration
Band et al. Moving Least Squares Boundaries for SPH Fluids.
JP2014146302A (ja) シミュレーションプログラム、シミュレーション方法及びシミュレーション装置
KR102459848B1 (ko) 입자에 기반하여 대상 객체를 고속으로 모델링하는 방법 및 장치
US11410363B2 (en) Modeling method and apparatus and apparatus using fluid animation graph
KR20170067374A (ko) 유체 입자에 기반하여 공기 방울의 움직임을 모델링하는 방법 및 장치
Talley et al. Coalescence prevention algorithm for level set method
KR102263096B1 (ko) 입자로 구성된 객체들을 모델링하는 방법 및 장치
KR20170011515A (ko) 사전 계산을 이용하여 대상체를 모델링 및 복원하는 방법 및 장치
Mierke et al. GPU-accelerated large-eddy simulation of ship-ice interactions
Kopper et al. A framework for high-fidelity particle tracking on massively parallel systems
KR20120110439A (ko) 거품 파티클 생성 장치 및 거품 파티클 생성 방법
CN106560818B (zh) 在虚拟空间中对对象进行建模的方法
KR101170909B1 (ko) 이동 그리드를 이용한 유체 시뮬레이션 시스템 및 방법
US10565328B2 (en) Method and apparatus for modeling based on particles for efficient constraints processing
US10846904B2 (en) Inertial damping for enhanced simulation of elastic bodies
US20060020456A1 (en) Object oriented acoustic modeling tools and methods
CN117408177A (zh) 一种基于预测校正不可压缩的流体粒子飞溅仿真方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180404

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190625

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190925

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20191015

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200115

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200214

R150 Certificate of patent or registration of utility model

Ref document number: 6663183

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250