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

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

Info

Publication number
JP2017068817A
JP2017068817A JP2016043356A JP2016043356A JP2017068817A JP 2017068817 A JP2017068817 A JP 2017068817A JP 2016043356 A JP2016043356 A JP 2016043356A JP 2016043356 A JP2016043356 A JP 2016043356A JP 2017068817 A JP2017068817 A JP 2017068817A
Authority
JP
Japan
Prior art keywords
state
particles
modeling
object according
changing
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.)
Pending
Application number
JP2016043356A
Other languages
English (en)
Inventor
棟▲勳▼ 司空
Donghoon Sagong
棟▲勳▼ 司空
▲な▼ ▲ひょっぷ▼ 姜
Na Hyup Kang
▲な▼ ▲ひょっぷ▼ 姜
▲みん▼ 廷 孫
Min-Jung Son
▲みん▼ 廷 孫
基 彰 李
Keechang Lee
基 彰 李
炯 旭 李
Hyung Wook Lee
炯 旭 李
喜 世 李
Heesae Lee
喜 世 李
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
Priority claimed from KR1020150155935A external-priority patent/KR102437374B1/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of JP2017068817A publication Critical patent/JP2017068817A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • G06T13/603D [Three Dimensional] animation of natural phenomena, e.g. rain, snow, water or plants
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/08Probabilistic or stochastic CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/24Fluid dynamics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Evolutionary Computation (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Processing Or Creating Images (AREA)

Abstract

【課題】 オブジェクトをモデリングする方法及び装置を提供する。
【解決手段】 本発明のオブジェクトをモデリングする装置は、画面に視覚化されない余分状態の粒子の個数を流動的に調節し、余分状態の粒子を初期化してオブジェクトを表現するために用いる。
【選択図】 図4

Description

本発明は、オブジェクトをモデリングする方法及び装置に関する。
コンピュータグラフィックス(Computer Graphics:CG)分野、特に視覚効果(Visual Effects:VFX)分野の流体シミュレーションと関連し、流体の流動を数値的に解き明かそうとする研究が続けて進められている。例えば、流体を非常に小さい粒子(particles)の合計と見て、それぞれの粒子が互いにどのように相互作用しながら動くかを示すことによって、流体をより簡単なベルヌーイの方程式(Bernoulli’s principle)で示すことができる。
本発明の目的は、オブジェクトをモデリングする方法及び装置を提供することにある。
一実施形態に係るオブジェクトをモデリングする方法は、オブジェクトを形成する複数の粒子に対してそれぞれの状態と状態遷移確率(state transition probability)を定義するステップと、前記複数の粒子のうち第1状態に定義された粒子をオブジェクトの第2状態に変更するステップと、前記複数の粒子のうち第2状態に定義された粒子に運動モデル(movement model)を適用して、前記状態遷移確率に基づいて前記第1状態に変更するステップとを含む。
オブジェクトをモデリングする方法は、前記第1状態に定義された粒子と関連する統計情報に基づいて、前記状態遷移確率を調整するステップをさらに含んでもよい。
前記状態遷移確率を調整するステップは、前記第1状態に定義された粒子が占めるメモリサイズをモニタリングするステップと、前記メモリサイズに基づいて前記状態遷移確率を決定するステップとを含んでもよい。
前記状態遷移確率を調整するステップは、前記統計情報と予め定めた閾値を比較するステップと、前記比較した結果に基づいて前記状態遷移確率を決定するステップとを含んでもよい。
前記比較した結果に基づいて前記状態遷移確率を決定するステップは、前記統計情報が予め定めた閾値より小さい場合に応じて、前記粒子が前記第1状態に遷移する確率を増加させるステップと、前記統計情報が予め定めた閾値より大きかったり同じである場合に応じて、前記粒子が前記第1状態に遷移する確率を減少させるステップとを含んでもよい。
前記第2状態に変更するステップは、前記第2状態に変更された粒子を場面における初期位置及び初期速度に初期化するステップを含んでもよい。
オブジェクトをモデリングする方法は、前記第2状態の粒子が占めるメモリサイズを保持するステップをさらに含んでもよい。
オブジェクトをモデリングする方法は、第2状態に定義された粒子に運動モデルを適用し、前記第2状態に定義された粒子を前記状態遷移確率に基づいて第3状態に変更するステップと、第3状態に定義された粒子に運動モデルを適用し、前記第3状態に定義された粒子を前記状態遷移確率に基づいて前記第1状態に変更するステップとをさらに含んでもよい。
前記第3状態に変更するステップは、前記第2状態に変更された粒子と異なるオブジェクト間に相互作用が発生する場合に応じて、前記第2状態に変更された粒子を前記状態遷移確率に基づいて前記第3状態に変更するステップを含んでもよい。
オブジェクトをモデリングする方法は、それぞれの粒子に対して粒子の大きさ、材質、形態、及び属性のうち少なくとも1つを定義するステップをさらに含んでもよい。
前記複数の粒子のうち第1状態に定義された粒子をオブジェクトの第2状態に変更するステップは、場面(scene)の当該フレームに指定された個数程の前記第1状態に定義された粒子を前記第2状態に変更するステップを含んでもよい。
オブジェクトをモデリングする方法は、前記粒子を用いて前記オブジェクトを表示するステップをさらに含んでもよい。
前記オブジェクトは仮想空間上に表現される流体であり、前記複数の粒子は前記流体を形成してもよい。
前記第1状態は、前記粒子が場面において表現が終了した後、メモリに臨時的に位置する状態であってもよい。
前記第2状態は、仮想空間内において流体の代表的な流れを形成する粒子の状態であってもよい。
前記第3状態は、前記第2状態から遷移されて流体の付随する流れを形成する粒子の状態であってもよい。
一実施形態に係るオブジェクトをモデリングする装置は、粒子を格納するメモリと、オブジェクトを形成する複数の粒子に対してそれぞれの状態と状態遷移確率を定義して、前記複数の粒子のうち第1状態に定義された粒子をオブジェクトの第2状態に変更し、前記複数の粒子のうち第2状態に定義された粒子に運動モデルを適用し前記状態遷移確率に基づいて前記第1状態に変更するプロセッサ(processor)とを含む。
他の一実施形態に係るオブジェクトをモデリングする方法は、第1状態(first state)の粒子のうち少なくとも一部を第2状態(second state)に変更するステップと、前記第2状態の粒子を用いてオブジェクトを生成するステップと、前記第2状態の粒子に運動モデルを適用するステップと、前記運動モデルの適用結果に応じて、前記第2状態の粒子を状態遷移条件(state transition condition)に基づいて第1状態に変更するステップとを含む。
オブジェクトをモデリングする方法は、前記第2状態の粒子が場面内において予め定めた空間に達した場合に応じて、前記粒子を前記第2状態から他の状態に変更するステップをさらに含んでもよい。
オブジェクトをモデリングする方法は、前記第2状態の粒子と異なるオブジェクト間に相互作用が発生する場合に応じて、前記第2状態の粒子を状態遷移確率に基づいて他の状態に変更するステップをさらに含んでもよい。
オブジェクトをモデリングする方法は、粒子と関連する統計情報をモニタリングするステップと、前記統計情報に基づいて、前記状態遷移条件を調整するステップとをさらに含んでもよい。
前記状態遷移条件を調整するステップは、前記統計情報と予め定めた閾値を比較するステップと、前記比較した結果に基づいて前記状態遷移条件を調整するステップとを含んでもよい。
前記状態遷移条件を調整するステップは、前記第2状態の粒子が他の状態に変更されるように設定された空間の場面内における大きさ、形態、及び位置のうち少なくとも1つを調整するステップを含んでもよい。
オブジェクトをモデリングする方法は、前記粒子が前記第2状態を保持する場合に応じて、前記粒子に前記運動モデルを持続的に適用するステップをさらに含んでもよい。
オブジェクトをモデリングする方法は、前記運動モデルの適用結果に応じて、前記第2状態の粒子を状態遷移条件に基づいて第3状態に変更するステップと、前記第3状態の粒子に運動モデルを適用するステップと、前記運動モデルの適用結果に応じて、前記第3状態の粒子を前記状態遷移条件に基づいて前記第1状態に変更するステップとをさらに含み、前記第2状態の粒子を用いてオブジェクトを生成するステップは、前記第2状態の粒子及び前記第3状態の粒子を用いてオブジェクトを生成するステップを含んでもよい。
前記第1状態の粒子のうち少なくとも一部を第2状態に変更するステップは、前記第1状態の粒子のうち場面の当該フレームに指定された個数程の粒子を第2状態に変更するステップと、前記第2状態に変更された粒子を場面における初期位置及び初期速度に初期化するステップとを含んでもよい。
前記第1状態の粒子のうち少なくとも一部を第2状態に変更するステップは、前記第2状態の粒子に対して粒子の大きさ、材質、形態、及び属性のうち少なくとも1つを定義するステップを含んでもよい。
オブジェクトをモデリングする方法は、前記第2状態の粒子が占めるメモリサイズを保持するステップをさらに含んでもよい。
オブジェクトをモデリングする方法は、前記粒子を用いて前記オブジェクトを表示するステップをさらに含んでもよい。
他の一実施形態に係るオブジェクトをモデリングする装置は、粒子を格納するメモリと、第1状態の粒子のうち少なくとも一部を第2状態に変更して、前記第2状態の粒子を用いてオブジェクトを生成し、前記第2状態の粒子に運動モデルを適用し、前記運動モデルの適用結果に応じて前記第2状態の粒子を状態遷移条件に基づいて第1状態に変更するプロセッサとを含む。
本発明によると、オブジェクトをモデリングする方法及び装置が提供することができる。
本発明の一実施形態によって表示されるオブジェクトを示す図である。 本発明の一実施形態によってオブジェクトをモデリングする方法を示すフローチャートである。 本発明の一実施形態によってオブジェクトをモデリングする方法を示すフローチャートである。 本発明の一実施形態によってオブジェクトをモデリングする例示を示す図である。 本発明の一実施形態に係るオブジェクトの状態遷移を示す図である。 本発明の一実施形態に係るオブジェクトの状態遷移が発生する例示を示す図である。 本発明の一実施形態に係るオブジェクトをモデリングする他の例示を示図である。 本発明の他の一実施形態によってオブジェクトをモデリングする方法を示すフローチャートである。 本発明の一実施形態によってオブジェクトの状態遷移が発生する他の例示を示す図である。 本発明の一実施形態によって時間の経過によるオブジェクトの状態遷移を示す図である。 本発明の一実施形態によって統計情報に基づいて状態遷移条件を調整する方法を示す図である。 本発明の一実施形態に係るオブジェクトをモデリングする装置の構成を示すブロック図である。 本発明の一実施形態に係るオブジェクトをモデリングする装置の構成を示すブロック図である。
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。しかし、特許出願の範囲は、このような実施形態によって制限されたり限定されるものではない。各図面に示した同一の参照符号は同一の部材を示す。
以下で説明する実施形態は様々な変更が加えられ得る。以下で説明する実施形態は本発明を限定しようとするものではなく、これに対する全ての変更、均等物ないし代替物を含むものとして理解しなければならない。
本実施形態で用いる用語は、単に特定の実施形態を説明するために用いるものであって、実施形態を限定しようとする意図はない。単数の表現は、文脈上、明白に異なる意味をもたない限り複数の表現を含む。本明細書において、「含む」又は「有する」などの用語は明細書上に記載した特徴、数字、ステップ、動作、構成要素、部品、又はこれらを組合せたものが存在することを示すものであって、1つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、又はこれらを組合せたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
異なる定義がされない限り、技術的であるか又は科学的な用語を含むここで用いる全ての用語は、本実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義された用語は、関連技術の文脈上で有する意味と一致する意味を有するものと解釈すべきであって、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味として解釈されることはない。
また、図面を参照して説明する際に、図面符号に関係なく同一の構成要素には同一の参照符号を付与し、それに対する重複説明を省略する。本実施形態の説明において関連する公知技術に対する具体的な説明が実施形態の要旨を不要に曖昧にすると判断される場合、その詳細な説明を省略する。
図1は、本発明の一実施形態によって表示されるオブジェクトを示す図である。
オブジェクトをモデリングする装置の表示装置により表示されるディスプレイ100は、オブジェクト190を視覚的に表現する。例えば、ディスプレイ100は、オブジェクト190を2次元又は3次元の形状でモデリングし、場面内で表現する。「場面」は「シーン」等のように表現されてもよい。
場面は、オブジェクト190及びオブジェクト190が存在する仮想空間を示す1つ以上のフレーム(frame)で構成する。複数のフレームは、連続的な映像を構成する。仮想空間は、オブジェクト190が存在する2次元又は3次元の空間を示す。
オブジェクト190は、1つ以上の粒子の集合で形成される物体(thing)、流体(fluid)、気体(gas)、固体(solid)、剛体(rigid body)、軟体(soft body)、及び変形可能な物体(deformable object)(例えば、変形可能な物体は、剛体及び軟体を全て含むオブジェクトを示す)などを示してもよい。例えば、粒子のそれぞれに対して場面又は仮想空間内において任意の運動モデルによって、粒子の位置、形態、大きさ、及び状態などが変更されてもよい。以下、オブジェクト190が流体である場合を例に挙げてオブジェクト190のモデリングを説明する。
運動モデルは、オブジェクト及びオブジェクトを形成する粒子のそれぞれの動きを定義するモデルを示す。例えば、オブジェクトが流体である場合、運動モデルは、流体の流動が数値的に定義されたモデルである。運動モデルは、流体を形成する粒子の位置と速度がそれぞれの粒子の速度と加速度の時間積分によって決定されるように定義されるため、例えば、流体を形成する粒子の加速度は、物理法則(例えば、重力加速度)によって決定される。
本発明の一実施形態によれば、運動モデルは、オブジェクトが流体である場合、
ナビエストークス(Navier−Stokes)方程式を含む。ナビエストークス方程式は、流体を非常に小さい粒子の合計として扱い、それぞれの粒子が互いにどのように相互作用しながら動くかを示すものである。ナビエストークス方程式は、理想的な状況を仮定する場合、より簡単なベルヌーイの方程式に置き換えてもよい。ナビエストークス方程式に基づいた流体モデリングを現実的に再現するためには、非圧縮性条件(incompressible condition)を満たさなければならない。
本発明の一実施形態によれば、オブジェクト190が流体である場合、流体を形成する粒子が流入する流入口191及び仮想空間内に流入した粒子が排出される排出口192が設定される。例えば、図1は、洗面台において水が流水している状況を示している。仮想空間内における粒子は、1つの状態を有するように定義される。例えば、粒子の状態は、第1状態、第2状態120、及び第3状態130と定義する。ただし、粒子の状態は、これに限定されるものではなく、設計によって粒子の状態の個数及び定義などが変更されてもよい。
第1状態は、仮想空間内において使われない粒子の状態であって、粒子がディスプレイ100上の場面における表現が終了した後、メモリに臨時的に位置する状態を示す。第1状態は、仮想空間において表現されない状態を示す。例えば、粒子は、第2状態120又は第3状態130から第1状態に遷移する。第1状態は余分状態(remaining state)と表すこともできる。
第2状態120は、仮想空間内において流体の代表的な流れを形成する粒子の状態であって、粒子が流入口191を介して流入する状態及び粒子が場面内において代表的な流体の流れを形成する状態などを示す。第2状態120は、主流(primary flow)状態と表すこともできる。また、粒子が第1状態から第2状態120に変更されたフレームにおいて、第2状態120に変更された粒子は流入口191を介して流入した直後の時点で流入口191の位置に対応する初期位置及び流入する初期速度に初期化する。
第3状態130は、仮想空間内において流体の代表的な流れを形成した粒子が遷移された他の状態であって、第2状態から遷移されて流体の付随する流れを形成する粒子の状態を示す。例えば、第3状態130は、スプラッシュ(splash)、他のオブジェクトの表面に沿って流れる水滴、水泡(bubble)などの状態を含む。第3状態130は、副流(secondary flow)状態と表すこともできる。
本発明の一実施形態によれば、オブジェクトをモデリングするために、制限された個数の粒子で流体の流れを表現するため、粒子を動的に生成及び消滅させない。従って、演算速度が向上して比較的に少ない演算能力が要求される。また、本発明の一実施形態に係る装置は、余分状態の粒子を適切な個数で保持することによって、メモリ空間を効率的に用いることができる。下記においては、本発明の一実施形態によって限定された数の粒子で流体の流れを表現するために、効率的に粒子を再利用する方法を説明する。
図2及び図3は、本発明の一実施形態によってオブジェクトをモデリングする方法を示すフローチャートである。
図2は、特定フレームにおいてオブジェクトをモデリングする方法を示す。
まず、ステップS210において、オブジェクトをモデリングする装置のプロセッサは、オブジェクトを形成する複数の粒子に対してそれぞれの状態と状態遷移確率を定義する。例えば、プロセッサは、複数の粒子のそれぞれを第1状態、第2状態、及び第3状態のうちの1つとして定義する。本発明の一実施形態によれば、プロセッサは、流体を形成する複数の粒子を仮想空間に表現されない第1状態と仮想空間に表現される第2状態及び第3状態に分けることができる。また、プロセッサは、複数の粒子のそれぞれに対して当該状態から他の状態に遷移される状態遷移確率を定義することができる。状態遷移確率は、粒子の現在の状態から他の状態に変換される確率であって、例えば、状態遷移確率は、第2状態から第1状態又は第3状態に遷移される確率、第3状態から第1状態に遷移される確率などを含む。
そして、ステップS220におけるプロセッサは、複数の粒子のうち第1状態に定義された粒子をオブジェクトの第2状態に変更する。例えば、プロセッサは、場面の当該フレームに指定された個数程の第1状態に定義された粒子を第2状態に変更する。プロセッサは、第1状態に定義された粒子を第2状態に変更しながら、当該粒子の位置を流体の流れが始まる初期位置に設定し、粒子の速度を流体の流れの初期速度に設定することによって、初期化する。このように、プロセッサは、第1状態に定義された粒子のうち少なくとも一部を再利用して流体の流れを表現する。
続いて、ステップS230におけるプロセッサは、複数の粒子のうちに定義された粒子に運動モデルを適用し、状態遷移確率に基づいて第1状態に変更する。例えば、プロセッサは、第2状態に定義された粒子に運動モデルを適用し粒子の位置及び速度などを変更する。また、プロセッサは、状態遷移確率に基づいて粒子の状態遷移の有無を決定する。
図3は、図2に示されている特定フレームにおいてオブジェクトをモデリングする方法をより詳細に説明する。
まず、ステップS310におけるプロセッサは、第1状態に定義された粒子と関連する統計情報をモニタリングする。また、プロセッサは、第1状態だけでなく、第2状態及び第3状態に定義された粒子と関連する統計情報をモニタリングする。例えば、特定の状態(例えば、第1状態、第2状態、又は第3状態)に定義された粒子と関連する統計情報は、当該状態に定義された粒子の個数、当該状態の粒子が占めるメモリサイズ、及び他の状態の粒子に対する比率などを含む。ただし、統計情報は、これに限定されるものではなく、設計によって様々な統計数値を用いてもよい。本発明の一実施形態によれば、プロセッサは、第1状態に定義された粒子が占めるメモリサイズをモニタリングすることができる。
そして、ステップS220において上述したように、プロセッサは、複数の粒子のうち第1状態に定義された粒子をオブジェクトの第2状態に変更する。例えば、ステップS321におけるプロセッサは、第1状態に定義された粒子のうち場面の当該フレームに指定された個数程の粒子を第2状態に変更する。本発明の一実施形態によれば、プロセッサは、流入口の面積、及び流速などに基づいて、第1状態から第2状態に変更されなければならない粒子の個数を決定することができる。そして、ステップS322におけるプロセッサは、第2状態に変更された粒子を場面における初期位置及び初期速度に初期化する。
そして、ステップS230,ステップS332,ステップS333におけるプロセッサは、それぞれの状態に定義された粒子に運動モデルを適用し、状態遷移確率に基づいて他の状態に変更する。
例えば、ステップS230におけるプロセッサは、図2において上述したように、複数の粒子のうち第2状態に定義された粒子に運動モデルを適用し、状態遷移確率に基づいて第1状態に変更する。
他の例を挙げると、ステップS332におけるプロセッサは、第2状態に定義された粒子に運動モデルを適用し、第2状態に定義された粒子を状態遷移確率に基づいて第3状態に変更する。プロセッサは、主流状態(例えば、第2状態)の粒子に予め定めたイベントが発生すると、状態遷移確率に基づいて副流状態(例えば、第3状態)に変更するかを決定する。予め定めたイベントは、下記の図6において詳細に説明する。
また他の例を挙げると、ステップS333におけるプロセッサは、第3状態に定義された粒子に運動モデルを適用し、第3状態に定義された粒子を状態遷移確率に基づいて第1状態に変更する。プロセッサは、副流状態(例えば、第3状態)の粒子に予め定めたイベントが発生すると、余分状態(例えば、第1状態)に変更するかを決定する。
続いて、ステップS340におけるプロセッサは、第1状態に定義された粒子と関連する統計情報に基づいて、状態遷移確率を調整する。例えば、プロセッサは、上述したステップS310においてモニタリングした第1状態の粒子が占めるメモリサイズに基づいて状態遷移確率を決定する。本発明の一実施形態によれば、プロセッサは、粒子を予め定めた個数の状態(例えば、3個の状態)にそれぞれ定義して、各状態間の状態遷移確率を動的に再算出することによって、オブジェクトを生成するのに用いられる粒子を効率的に再利用してもよい。
例えば、ステップS341におけるプロセッサは、統計情報と予め定めた閾値を比較する。プロセッサは、比較した結果に基づいて状態遷移確率を決定する。ステップS342におけるプロセッサは、統計情報が予め定めた閾値より小さい場合に応じて、粒子が第1状態に遷移する確率を増加させる。ステップS343におけるプロセッサは、統計情報が予め定めた閾値より大きかったり同じである場合に応じて、粒子が第1状態に遷移する確率を減少させる。又は、ステップS343におけるプロセッサは、粒子が第1状態に遷移する確率を初期値(default value)と設定する。ここで、閾値は、粒子の個数又は粒子の比率などであってもよく、設計によってユーザによって設定されたり、シミュレーションなどによって取得されてもよい。
プロセッサは、上述したように第1状態(例えば、余分状態)の粒子の不足の有無を第1状態の粒子の個数又は全ての粒子に対する第1状態の粒子の比率などに基づいて判断する。例えば、第1状態の粒子の個数が閾値より小さい場合、プロセッサは、第1状態の粒子が足りないと判断する。第1状態の粒子が足りないと判断した場合、プロセッサは、状態遷移確率を調整することによって、第1状態の粒子を確保する。例えば、上述したステップS342のように、粒子が第1状態に遷移する確率を増加させたり、粒子が第2状態から第3状態に遷移する確率を減少させることができる。
本発明の一実施形態によれば、上述したステップS340におけるプロセッサは、状態遷移確率を調整して第1状態の粒子を確保することによって、代表的な流体の流れ(例えば、第2状態の粒子の集合)を安定して生成することができる。また、プロセッサは、第1状態の粒子が足りない場合、第3状態への遷移確率を減少させて、第3状態(例えば、流体の付随する流れを示す状態の副流状態)を少なく表現し、第2状態(例えば、流体の代表的な流れを示す状態の主流状態)を保持する。このように、プロセッサは、毎フレームごとに粒子の統計情報をモニタリングして状態遷移確率を動的に調整することができる。したがって、本発明の一実施形態に係る装置は、粒子の総数が全体流体の流れを表現するには足りない場合においても、主流を安定して表現してもよいため、メモリを節減しながら処理する粒子の個数を最小化して演算を高速化することができる。
そして、ステップS350におけるプロセッサは、粒子を用いてオブジェクトを表示する。本発明の一実施形態によれば、プロセッサは、運動モデルが適用された第2状態及び第3状態の粒子を用いて仮想空間に流体を表現する。例えば、プロセッサは、ディスプレイが毎フレームごとに第2状態及び第3状態の粒子を表現するように制御する。また、プロセッサは、それぞれの粒子に対して粒子の大きさ、材質、形態、及び属性のうち少なくとも1つを定義する。例えば、プロセッサは、第2状態の粒子及び第3状態の粒子に対し粒子の大きさ、材質、形態、及び属性などを定義し、これらに基づいて粒子を視覚的に表現する。粒子の材質は、粒子を表現するためのテクスチャー(texture)を決定するために用いる。粒子の属性は、粒子が運動モデルで有する物理的な特性(例えば、表面張力係数など)を決定するために用いる。
図4は、本発明の一実施形態によってオブジェクトをモデリングする例示を示す図である。
図4に示されたディスプレイ100は、図1に示された場面と同一の場面を表現する。例えば、ディスプレイ100は、特定フレームの場面を表現する。
メモリ490は、ディスプレイ100上に表われる第2状態120の粒子及び第3状態130の粒子を格納し、ディスプレイ100上に表われない第1状態の粒子410も格納する。図3のステップS220において上述したように、プロセッサは、第1状態の粒子410を第2状態に変更しながら当該粒子の位置を流入口の位置に初期化する。ここで、プロセッサは、毎フレームごとに指定された個数の第1状態の粒子410を第2状態に変更して初期化する。
本発明の一実施形態によれば、メモリ490は、予め定めたメモリサイズ分だけの全ての粒子を生成して保持し、プロセッサが当該メモリ490のメモリサイズによって決定した個数の粒子をそれぞれの状態に分類してオブジェクトを表現するのに用いる。例えば、プロセッサは、メモリ490において、第2状態の粒子120が占めるメモリサイズを一定に保持し、第1状態の粒子410が占めるメモリサイズ491及び第3状態の粒子130が占めるメモリサイズ493は、流動的に調節する。全ての粒子、例えば、第1状態の粒子410、第2状態の粒子120、及び第3状態の粒子130の全体に割り当てられたメモリサイズは、全てのフレームにおいて同一である。
本発明の他の一実施形態によれば、メモリ490は、第1状態の粒子が占めるメモリサイズを流動的に保持し、第3状態の粒子が占めるメモリサイズを流動的に保持する。ここで、メモリ490は、第1状態及び第3状態の粒子が占めるメモリサイズを一定に保持する。さらに、メモリ490は、第1状態、第2状態、及び第3状態の粒子が占めるメモリサイズの合計を一定に保持する。
本発明のまた他の一実施形態によれば、メモリ490は、第1状態の粒子の個数を一定に保持し、さらにメモリ490は、第1状態、第2状態、及び第3状態の粒子個数の合計を一定に保持する。
プロセッサは、メモリ490内において第2状態120の粒子が占めるメモリサイズ492を保持する。プロセッサは、図3のステップS340において上述したように、状態遷移確率を調節することによって、第3状態130の粒子が占めるメモリサイズ493及び第1状態の粒子410が占めるメモリサイズ491を流動的に調節する。本発明の一実施形態によれば、プロセッサは、第2状態120の粒子が占めるメモリサイズ492を保持することによって、第2状態120の粒子が形成する流体の流れの視覚品質(visual quality)を保持する。
図5は、本発明の一実施形態に係るオブジェクトの状態遷移を示す図である。
本明細書における粒子は、第1状態510、第2状態520、及び第3状態530のうちの1つに定義される。第1状態510は、上述したように当該フレームにおいてディスプレイに使われない粒子の状態であって、余分状態と表すこともできる。第2状態520は、当該フレームにおいて代表的な流体の流れを形成する粒子の状態であって、主流状態と表すこともできる。第3状態530は、当該フレームにおいて付随する流体の流れを形成する粒子の状態であって、副流状態と表すこともできる。ただし、粒子の状態は、上述のように限定されるものではなく、設計によって粒子の状態の分類を変更してもよい。
本発明の一実施形態によれば、プロセッサは、第1状態510(例えば、余分状態)の粒子を第2状態520に変更する。ここで、プロセッサは、当該フレームにおいて要求される個数程のみの第1状態510の粒子を第2状態520に変更するため、プロセッサは、余った第1状態510の粒子を第1状態510に保持する。第1状態510の粒子は、必要に応じてプロセッサによって読み出される前まではメモリに格納されて保持され、ディスプレイ上には表現されない。ここで、第1状態510の粒子は、第3状態530に変更されない。
プロセッサは、第2状態520(例えば、主流状態)の粒子に対して運動モデルを適用した後、予め定めたイベントが発生した第2状態520の粒子を状態遷移確率に基づいて第3状態530又は第1状態510に変更する。第2状態520の粒子に対して予め定めたイベントが発生しない場合には、プロセッサは、当該粒子の状態を第2状態520に保持する。
プロセッサは、第3状態530(例えば、副流状態)の粒子に対して運動モデルを適用した後、予め定めたイベントが発生した第3状態530の粒子を状態遷移確率に基づいて第1状態510に変更する。第3状態530の粒子に対して予め定めたイベントが発生しない場合には、プロセッサは、当該粒子の状態を第3状態530に保持する。ここで、第3状態530の粒子は、第2状態520では変更されない。
図6は、本発明の一実施形態に係るオブジェクトの状態遷移が発生する例示を示す図である。
プロセッサは、第2状態の粒子及び第3状態の粒子に対して運動モデルを適用した結果、当該粒子において予め定めたイベントが発生すれば、状態遷移確率に基づいて当該粒子を他の状態に変更するか否かを決定する。図6は、予め定めたイベントの例示であって、2つの粒子間の衝突を説明する。
本発明の一実施形態によれば、プロセッサが任意の粒子610に対して運動モデルを適用する場合、当該粒子610が他の粒子620に接近する。当該粒子610と他の粒子620との間の距離が予め定めた閾値距離より小さくなったり2個の粒子が接触する場合、2つの粒子間には相互作用650(例えば、衝突)が発生する。例えば、プロセッサは、当該粒子610と他の粒子620が接触した場合、2つの粒子間に衝突が発生したと処理する。
プロセッサは、第2状態に変更された粒子610と他のオブジェクトを形成する粒子620との間に相互作用650が発生する場合に応じて、第2状態に変更された粒子610を状態遷移確率に基づいて第3状態に変更する。図6におけるプロセッサは、状態遷移確率に基づいて他の粒子620と衝突した粒子610を他の状態(例えば、小さい滴や泡の状態)の粒子611に変更する。
ただし、本明細書において予め定めたイベントは、2つの粒子間の相互作用650に限定されるものではなく、任意の粒子610が場面内において特定の位置に達したり、生成された後、特定の時間が経過するなどのイベントを全て含んでもよい。また、相互作用650は、上述したように2つの粒子間の衝突に限定されるものではなく、引力及び張力などのように2つの粒子間の全ての作用を含んでもよい。
図7は、本発明の一実施形態に係るオブジェクトをモデリングする他の例示を示図である。
例えば、図7は、別途のオブジェクト750が存在し、流体が流入して排出される仮想空間を表現するディスプレイ700を示す。図7に示されているように、プロセッサは流入口791から流体を形成する粒子が流入され、排出口792を介して流体が排出されるように処理する。また、プロセッサは、流入された粒子を第2状態(例えば、主流状態であって、図7においては、水流)に定義する。プロセッサは、第2状態に定義された粒子710に運動モデルを適用し、図7におけるプロセッサは、各粒子を重力に基づいて下方に移動するように処理する。また、プロセッサは、別のオブジェクト750に接触した第2状態の粒子710を状態遷移確率に基づいて第3状態(例えば、副流状態であって、図7においては、水泡)の粒子720に変更する。
また、図7における各粒子は、一定サイズ及び色調を有する円又は球形で設定されたが、これに限定されずに、設計によって、粒子の大きさ、材質、形態、及び属性などは変更されてもよい。
ただし、図7は、流体の流れの例示であって、本発明の一実施形態に係るオブジェクトをモデリングする装置は、流体だけでなく他の種類のオブジェクトを形成する粒子を処理して表示してもよい。
図8は、本発明の他の一実施形態によってオブジェクトをモデリングする方法を示すフローチャートである。
本発明の一実施形態によれば、図8は、仮想空間内において流入した粒子が排出されるときまで(例えば、粒子の生成から消滅までのサイクルの間)、オブジェクトを形成する粒子を処理する方法を示す。
まず、ステップS810におけるプロセッサは、第1状態の粒子のうち少なくとも一部を第2状態に変更する。例えば、プロセッサは、第1状態の粒子のうち場面の当該フレームに指定された個数程の粒子を第2状態に変更する。また、プロセッサは、第2状態に変更された粒子に運動モデルを適用する。プロセッサは、第2状態の粒子に対して粒子の大きさ、材質、形態、及び属性のうち少なくとも1つを定義する。
そして、ステップS820におけるプロセッサは、第2状態の粒子を用いてオブジェクトを生成する。ただし、これに限定されずに、プロセッサは、第1状態を除いた他の状態の粒子が存在する場合、第1状態ではない他の粒子を用いてオブジェクトを生成する。例えば、プロセッサは、第2状態の粒子及び第3状態の粒子を用いてオブジェクトを生成する。
続いて、ステップS830におけるプロセッサは、第2状態の粒子に運動モデルを適用する。ただし、これに限定されずに、プロセッサは、第1状態を除いた他の状態の粒子(例えば、第3状態)にも運動モデルを適用する。
そして、ステップS840におけるプロセッサは、運動モデルの適用結果に応じて、第2状態の粒子を状態遷移条件に基づいて第1状態に変更する。状態遷移条件は、粒子の状態が他の状態に変更される条件であって、第2状態から第3状態又は第1状態に変更される条件、第3状態から第1状態に変更される条件などを含む。例えば、状態遷移条件は、図6において上述したような予め定めたイベントが発生した場合に応じて、状態遷移確率に基づいて状態遷移の有無が決定される条件、及び下記の図9において説明するように、仮想空間内において特定の位置に粒子が達すれば当該粒子の状態が変更される条件などを含む。ただし、状態遷移条件は、上述したように限定されるものではなく、設計によって変更されてもよい。
例えば、プロセッサは、第2状態の粒子が場面内において予め定めた空間に達した場合に応じて、粒子を第2状態から他の状態(例えば、第1状態又は第3状態など)に変更する。他の例を挙げると、プロセッサは、第2状態の粒子と異なるオブジェクト間に相互作用が発生する場合に応じて、第2状態の粒子を状態遷移確率に基づいて他の状態(例えば、第1状態又は第3状態)に変更する。
図9は、本発明の一実施形態によってオブジェクトの状態遷移が発生する他の例示を示す図である。
例えば、図9に示されたディスプレイ900は、流入口991及び排出口992を含み、オブジェクトが運動モデルによって移動中である仮想空間を表現する。
本発明の一実施形態によれば、プロセッサは、第2状態の粒子920が場面内において予め定めた空間960に達した場合に応じて、粒子を第2状態から他の状態に変更する。例えば、プロセッサは、第2状態の粒子920が予め定めた空間960に達すれば、第3状態の粒子930に変更する。ここで、予め定めた空間960は、場面の外郭などのように仮想空間内において視覚的に表現される必要性が少ない空間として設定される。ただし、これに限定されるものではなく、プロセッサは、第2状態の粒子920が排出口992に対応する空間に達すれば、第1状態に変更してもよい。また、プロセッサは、第2状態の粒子920が場面の外に排出される場合にも第1状態に変更してもよい。
図10は、本発明の一実施形態によって時間の経過によるオブジェクトの状態遷移を示す図である。
図10においては、状態遷移条件のうち予め定めたイベントの発生時の状態遷移確率に基づいて粒子の状態を変更する条件を粒子のサイクルに従って例示的に説明する。本明細書における粒子のサイクルは、粒子が仮想空間に流入して排出された後、メモリ内の第1状態の粒子410が占めるメモリサイズ491に余分状態で存在して再び流入する前までを示す。
まず、プロセッサは、任意の粒子を第2状態(以下、主流状態1010)に設定する。ここで、プロセッサは、主流状態1010の粒子の位置及び速度などを初期化する。
そして、プロセッサは、主流状態1010の粒子を確率PA−>Fに基づいて余分状態の粒子1090に変更する。また、プロセッサは、他のオブジェクトと主流状態1010の粒子間に相互作用が発生した場合、主流状態1010の粒子を確率PA−>Bに基づいて第1副流状態1021に変更する。プロセッサは、主流状態1010の粒子の間に相互作用が発生した場合、確率PA−>Cに基づいて第2副流状態1022に変更する。
続いて、プロセッサは、第1副流状態1021の粒子を確率PB−>Fに基づいて余分状態の粒子1090に変更する。また、プロセッサは、第1副流状態1021の粒子を確率PB−>Cに基づいて第2副流状態1022に変更する。そして、プロセッサは、第2副流状態1022の粒子を確率PC−>Fに基づいて余分状態の粒子1090に変更する。
最後に、プロセッサは、余分状態の粒子1090を当該フレームに指定された個数程、主流状態1010に変更する。
図11は、本発明の一実施形態によって統計情報に基づいて状態遷移条件を調整する方法を示す図である。
まず、ステップS1110におけるプロセッサは、場面内に粒子を流入させる。例えば、プロセッサは、第1状態の粒子のうち指定された個数の粒子を第2状態に変更して位置及び速度などを初期化する。
そして、ステップS1120におけるプロセッサは、各粒子に運動モデルを適用する。例えば、プロセッサは、第2状態の粒子及び第3状態の粒子のそれぞれに運動モデルを適用し、粒子の位置及び速度などを変更する。第1状態の粒子は、場面に表現されないため、プロセッサは、第1状態の粒子に対しては運動モデルの適用を排除する。
また、ステップS1130におけるプロセッサは、粒子と関連する統計情報をモニタリングする。また、プロセッサは、リアルタイムにそれぞれの粒子と関連する統計情報をモニタリングする。例えば、プロセッサは、毎フレームごとに第1状態の粒子の個数又は第1状態の粒子が占めるメモリサイズをモニタリングする。
そして、ステップS1140におけるプロセッサは、統計情報を閾値と比較する。プロセッサは、モニタリングされた統計情報を当該統計情報のタイプに対して設定された閾値と比較する。例えば、プロセッサは、第1状態の粒子の個数が特定の個数より小さいか否かを判断する。他の例を挙げると、プロセッサは、第1状態の粒子が占めるメモリサイズが特定のメモリサイズより小さいか否かを判断する。
続いて、ステップS1150におけるプロセッサは、統計情報が閾値より小さい場合に応じて、状態遷移条件を調整する。プロセッサは、統計情報が閾値より小さければ、第1状態に遷移する粒子の個数が増加するように状態遷移条件を調整する。
例えば、プロセッサは、第2状態の粒子が他の状態に変更されるように設定された空間の場面内の大きさ、形態、及び位置のうち少なくとも1つを調整する。上述した図9を参照すると、プロセッサは、予め定めた空間960の大きさを増加させることによって、第2状態から第3状態に遷移する粒子の個数を増加させることができる。
他の例を挙げると、プロセッサは、図3のステップS340において上述したように第1状態における遷移確率を増加させる。プロセッサは、第1状態における遷移確率を増加させることによって、第3状態から第1状態に遷移される粒子の個数を増加させることができる。
図11においては、説明の便宜上、ステップS1150をステップS1120の次に行うと示しているが、これに限定されるものではなく、プロセッサがステップS1130において統計情報をリアルタイムにモニタリングして、第1状態の粒子個数が不足すればステップS1150の動作をすぐに行ってもよい。
そして、ステップS1160におけるプロセッサは、粒子の状態を遷移する。例えば、プロセッサは、運動モデルの適用結果に応じて、第2状態の粒子を状態遷移条件に基づいて第3状態又は第1状態に変更する。ここで、プロセッサは、第2状態の粒子の一部を第2状態で保持する。
次に、プロセッサは、第2状態及び第3状態の粒子に対してはステップS1120に戻って持続的に運動モデルを適用する。プロセッサは、粒子が第2状態及び第3状態を保持する場合に応じて、粒子に運動モデルを持続的に適用する。例えば、上述したステップS1160において第3状態に変更された粒子に対して、プロセッサは、ステップS1120において当該第3状態の粒子に運動モデルを適用する。プロセッサは、ステップS1120における運動モデルの適用結果に応じて、ステップS1160において第3状態の粒子を状態遷移条件に基づいて第1状態に変更する。
また、プロセッサは、第1状態の粒子をメモリ内の第1状態の粒子プール1190に格納する。第1状態の粒子プール1190に格納された第1状態の粒子は、ステップS1110において場面に流入するために読み出される前までメモリ内に保持される。
図12及び図13は、本発明の一実施形態に係るオブジェクトをモデリングする装置の構成を示すブロック図である。
オブジェクトをモデリングする装置1200は、プロセッサ1210及びメモリ1220を含む。例えば、オブジェクトをモデリングする装置1200は、スマートフォンのようなモバイル機器、及びデスクトップPCのような固定式機器などで実現してもよい。
プロセッサ1210は、毎フレームごとにオブジェクトを形成する複数の粒子に対してそれぞれの状態と状態遷移確率を定義し、複数の粒子のうち第1状態に定義された粒子をオブジェクトの第2状態に変更し、複数の粒子のうち第2状態に定義された粒子に運動モデルを適用して状態遷移確率に基づいて第1状態に変更する。
メモリ1220は、粒子を格納する。メモリ1220は、各状態の粒子を別に管理する。例えば、メモリ1220は、第1状態の粒子に対して粒子プールを生成して管理するが、プロセッサ1210が第1状態の粒子と関連する粒子プールの大きさを流動的に調節する。ただし、これに限定されるものではなく、プロセッサ1210は、他の状態の粒子と関連する粒子プールも生成して管理してもよい。メモリ1220は、予め定めたメモリサイズ分のみの粒子を格納し、プロセッサ1210は、限定されたメモリサイズによって決定される制限された個数の粒子を流動的に状態を変更しながらオブジェクトを表現する。
本発明の一実施形態によれば、オブジェクトをモデリングする装置1200は、ディスプレイ1330をさらに含む。ディスプレイ1330は、第2状態の粒子及び第3状態の粒子を用いてオブジェクトを表現する。
プロセッサ1210、メモリ1220、及びディスプレイ1330の具体的な動作は、図1〜図11において上述したため、省略する。本発明の一実施形態に係るオブジェクトをモデリングする装置1200は、モバイル機器のようにハードウェア資源が制限的であり、ユーザとの相互作用が頻繁な装置として実現された場合にも、シミュレーションの複雑度が高い流体の流れを効果的に表現することができる。
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、又はハードウェア構成要素及びソフトウェア構成要素の組合せで具現される。例えば、本実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、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つ以上のコンピュータ読み取り可能な記録媒体に格納される。
本実施形態による方法は、多様なコンピュータ手段を介して実施されるプログラム命令の形態で具現され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独又は組合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気−光媒体、及びROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。ハードウェア装置は、本発明の動作を実行するために1つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。
上述したように、実施形態が限定された実施形態と図面によって説明されたが、当該技術分野における通常の知識を有する者であれば、前記の記載から様々な修正及び変形が可能である。例えば、説明された技術が説明された方法と異なる順序で行われたり、及び/又は説明されたシステム、構造、装置、回路などの構成要素が説明された方法と異なる形態で結合又は組合わせたり、他の構成要素又は均等物によって代替、置換されても適切な結果が達成され得る。
したがって、本発明の範囲は、開示された実施形態に限定されて定められるものではなく、特許請求の範囲及び特許請求の範囲と均等なものなどによって定められるものである。
1200:オブジェクトをモデリングする装置
1210:プロセッサ
1220:メモリ
1330:ディスプレイ

Claims (42)

  1. オブジェクトを形成する複数の粒子に対してそれぞれの状態と状態遷移確率を定義するステップと、
    前記複数の粒子のうち第1状態に定義された粒子をオブジェクトの第2状態に変更するステップと、
    前記複数の粒子のうち第2状態に定義された粒子に運動モデルを適用し、前記状態遷移確率に基づいて前記第1状態に変更するステップと、
    を含むオブジェクトをモデリングする方法。
  2. 前記第1状態に定義された粒子と関連する統計情報に基づいて前記状態遷移確率を調整するステップをさらに含む請求項1に記載のオブジェクトをモデリングする方法。
  3. 前記状態遷移確率を調整するステップは、
    前記第1状態に定義された粒子が占めるメモリサイズをモニタリングするステップと、
    前記メモリサイズに基づいて前記状態遷移確率を決定するステップと、
    を含む請求項2に記載のオブジェクトをモデリングする方法。
  4. 前記状態遷移確率を調整するステップは、
    前記統計情報と予め定めた閾値を比較するステップと、
    前記比較した結果に基づいて前記状態遷移確率を決定するステップと、
    を含む請求項2に記載のオブジェクトをモデリングする方法。
  5. 前記比較した結果に基づいて前記状態遷移確率を決定するステップは、
    前記統計情報が予め定めた閾値より小さい場合に応じて、前記粒子が前記第1状態に遷移する確率を増加させるステップと、
    前記統計情報が予め定めた閾値より大きかったり同じである場合に応じて、前記粒子が前記第1状態に遷移する確率を減少させるステップと、
    を含む請求項4に記載のオブジェクトをモデリングする方法。
  6. 前記第2状態に変更するステップは、前記第2状態に変更された粒子を場面における初期位置及び初期速度に初期化するステップを含む請求項1ないし5のうちの何れか1項に記載のオブジェクトをモデリングする方法。
  7. 前記第2状態の粒子が占めるメモリサイズを保持するステップをさらに含む請求項6に記載のオブジェクトをモデリングする方法。
  8. 第2状態に定義された粒子に運動モデルを適用し、前記第2状態に定義された粒子を前記状態遷移確率に基づいて第3状態に変更するステップと、
    第3状態に定義された粒子に運動モデルを適用し、前記第3状態に定義された粒子を前記状態遷移確率に基づいて前記第1状態に変更するステップと、
    をさらに含む請求項1ないし7のうち何れか1項に記載のオブジェクトをモデリングする方法。
  9. 前記第3状態に変更するステップは、前記第2状態に変更された粒子と異なるオブジェクト間に相互作用が発生する場合に応じて、前記第2状態に変更された粒子を前記状態遷移確率に基づいて前記第3状態に変更するステップを含む請求項8に記載のオブジェクトをモデリングする方法。
  10. それぞれの粒子に対して粒子の大きさ、材質、形態、及び属性のうち少なくとも1つを定義するステップをさらに含む請求項1ないし9のうちの何れか1項に記載のオブジェクトをモデリングする方法。
  11. 前記複数の粒子のうち第1状態に定義された粒子をオブジェクトの第2状態に変更するステップは、場面のフレームに指定された個数程の前記第1状態に定義された粒子を前記第2状態に変更するステップを含む請求項1ないし10のうちの何れか1項に記載のオブジェクトをモデリングする方法。
  12. 前記粒子を用いて前記オブジェクトを表示するステップをさらに含む請求項1ないし11のうちの何れか1項に記載のオブジェクトをモデリングする方法。
  13. 前記オブジェクトは仮想空間上に表現される流体であり、
    前記複数の粒子は前記流体を形成する、
    請求項1ないし12のうちの何れか1項に記載のオブジェクトをモデリングする方法。
  14. 前記第1状態は、前記粒子が場面において表現が終了した後、メモリに臨時的に位置する状態である請求項1ないし13のうち何れか1項に記載のオブジェクトをモデリングする方法。
  15. 前記第2状態は、仮想空間内において流体の代表的な流れを形成する粒子の状態である請求項1ないし14のうち何れか1項に記載のオブジェクトをモデリングする方法。
  16. 前記第3状態は、前記第2状態から遷移されて流体の付随する流れを形成する粒子の状態である請求項8に記載のオブジェクトをモデリングする方法。
  17. モデリング装置のコンピュータに請求項1乃至請求項16のうちいずれか1項に記載の方法を実行させるコンピュータプログラム。
  18. 第1状態の粒子のうち少なくとも一部を第2状態に変更するステップと、
    前記第2状態の粒子を用いてオブジェクトを生成するステップと、
    前記第2状態の粒子に運動モデルを適用するステップと、
    前記運動モデルの適用結果に応じて、前記第2状態の粒子を状態遷移条件に基づいて第1状態に変更するステップと、
    を含むオブジェクトをモデリングする方法。
  19. 前記第2状態の粒子が場面内において予め定めた空間に達した場合に応じて、前記粒子を前記第2状態から他の状態に変更するステップをさらに含む請求項18に記載のオブジェクトをモデリングする方法。
  20. 前記第2状態の粒子と異なるオブジェクト間において相互作用が発生する場合に応じて、前記第2状態の粒子を状態遷移確率に基づいて他の状態に変更するステップをさらに含む請求項18又は19に記載のオブジェクトをモデリングする方法。
  21. 粒子と関連する統計情報をモニタリングするステップと、
    前記統計情報に基づいて、前記状態遷移条件を調整するステップと、
    をさらに含む請求項18ないし20のうち何れか1項に記載のオブジェクトをモデリングする方法。
  22. 前記状態遷移条件を調整するステップは、
    前記統計情報と予め定めた閾値を比較するステップと、
    前記比較した結果に基づいて前記状態遷移条件を調整するステップと、
    を含む請求項21に記載のオブジェクトをモデリングする方法。
  23. 前記状態遷移条件を調整するステップは、前記第2状態の粒子が他の状態に変更されるように設定された空間の場面内の大きさ、形態、及び位置のうち少なくとも1つを調整するステップを含む請求項21に記載のオブジェクトをモデリングする方法。
  24. 前記粒子が前記第2状態を保持する場合に応じて、前記粒子に前記運動モデルを持続的に適用するステップをさらに含む請求項18ないし23のうち何れか1項に記載のオブジェクトをモデリングする方法。
  25. 前記運動モデルの適用結果に応じて、前記第2状態の粒子を状態遷移条件に基づいて第3状態に変更するステップと、
    前記第3状態の粒子に運動モデルを適用するステップと、
    前記運動モデルの適用結果に応じて、前記第3状態の粒子を前記状態遷移条件に基づいて前記第1状態に変更するステップと、
    をさらに含み、
    前記第2状態の粒子を用いてオブジェクトを生成するステップは、
    前記第2状態の粒子及び前記第3状態の粒子を用いてオブジェクトを生成するステップ
    を含む請求項18ないし24のうち何れか1項に記載のオブジェクトをモデリングする方法。
  26. 前記第1状態の粒子のうち少なくとも一部を第2状態に変更するステップは、
    前記第1状態の粒子のうち場面の当該フレームに指定された個数程の粒子を第2状態に変更するステップと、
    前記第2状態に変更された粒子を場面における初期位置及び初期速度に初期化するステップと、
    を含む請求項18ないし25のうち何れか1項に記載のオブジェクトをモデリングする方法。
  27. 前記第1状態の粒子のうち少なくとも一部を第2状態に変更するステップは、前記第2状態の粒子に対して粒子の大きさ、材質、形態、及び属性のうち少なくとも1つを定義するステップを含む請求項18ないし26のうち何れか1項に記載のオブジェクトをモデリングする方法。
  28. 前記第2状態の粒子が占めるメモリサイズを保持するステップをさらに含む請求項18ないし27のうち何れか1項に記載のオブジェクトをモデリングする方法。
  29. 前記粒子を用いて前記オブジェクトを表示するステップをさらに含む請求項18ないし28のうち何れか1項に記載のオブジェクトをモデリングする方法。
  30. モデリング装置のコンピュータに請求項18乃至請求項29のうちいずれか1つの項の方法を実行させるコンピュータプログラム。
  31. 流体を形成する複数の粒子を仮想空間に表現されない第1状態と前記仮想空間に表現される第2状態及び第3状態に分けるステップと、
    前記第2状態及び前記第3状態の粒子に運動モデルを適用するステップと、
    前記運動モデルが適用された前記第2状態及び前記第3状態の粒子を用いて前記仮想空間に前記流体を表現するステップと、
    を含むオブジェクトをモデリングする方法。
  32. 前記第2状態の粒子が占めるメモリサイズを一定に保持する請求項31に記載のオブジェクトをモデリングする方法。
  33. 前記第1状態の粒子が占めるメモリサイズを流動的に保持する請求項31又は32に記載のオブジェクトをモデリングする方法。
  34. 前記第3状態の粒子が占めるメモリサイズを流動的に保持する請求項31ないし33のうち何れか1項に記載のオブジェクトをモデリングする方法。
  35. 前記第1状態及び前記第3状態の粒子が占めるメモリサイズの合計を一定に保持する請求項31ないし34のうち何れか1項に記載のオブジェクトをモデリングする方法。
  36. 前記第1状態、前記第2状態、及び前記第3状態の粒子が占めるメモリサイズの合計を一定に保持する請求項31ないし35のうち何れか1項に記載のオブジェクトをモデリングする方法。
  37. 前記第1状態の粒子の個数を一定に保持する請求項31ないし36のうち何れか1項に記載のオブジェクトをモデリングする方法。
  38. 前記第1状態、前記第2状態、及び前記第3状態の粒子の個数の合計を一定に保持する請求項31ないし37のうち何れか1項に記載のオブジェクトをモデリングする方法。
  39. 前記第2状態は、前記流体の代表的な流れを示す状態である請求項31ないし38のうち何れか1項に記載のオブジェクトをモデリングする方法。
  40. 前記第3状態は、前記流体の付随する流れを示す状態である請求項31ないし39のうち何れか1項に記載のオブジェクトをモデリングする方法。
  41. モデリング装置のコンピュータに請求項31乃至請求項40のうちいずれか1つの項の方法を実行させるコンピュータプログラム。
  42. 請求項1ないし16、18ないし29、及び、31ないし40のうち何れか1項に記載の方法を実行するモデリング装置。
JP2016043356A 2015-10-01 2016-03-07 オブジェクトをモデリングする方法及び装置 Pending JP2017068817A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2015-0138736 2015-10-01
KR20150138736 2015-10-01
KR1020150155935A KR102437374B1 (ko) 2015-10-01 2015-11-06 객체를 모델링하는 방법 및 장치
KR10-2015-0155935 2015-11-06

Publications (1)

Publication Number Publication Date
JP2017068817A true JP2017068817A (ja) 2017-04-06

Family

ID=57348436

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016043356A Pending JP2017068817A (ja) 2015-10-01 2016-03-07 オブジェクトをモデリングする方法及び装置

Country Status (4)

Country Link
US (1) US10755004B2 (ja)
EP (1) EP3151200B1 (ja)
JP (1) JP2017068817A (ja)
CN (1) CN106560818B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117556745B (zh) * 2024-01-11 2024-03-22 北京科技大学 空间自适应流体仿真方法、设备及存储介质

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100568564B1 (ko) 2003-12-01 2006-04-07 강문구 무격자 해석기법과 볼륨렌더링 기법을 이용한 유체효과 실시간 시뮬레이션 및 렌더링 방법
US7349832B2 (en) * 2004-02-17 2008-03-25 Pixar Water particle manipulation
JP5342761B2 (ja) 2007-09-11 2013-11-13 プロメテック・ソフトウェア株式会社 粒子法に基づく流体シミュレーションの表面構築方法、そのプログラム、およびそのプログラムを格納した記憶媒体
US8065127B2 (en) * 2007-09-24 2011-11-22 Siemens Corporation Particle system architecture in a multi-body physics simulation
TW200945249A (en) * 2008-04-28 2009-11-01 Inst Information Industry Method for rendering fluid
US8947430B1 (en) 2010-02-26 2015-02-03 Nvidia Corporation System and method for rendering a particle-based fluid surface
US8878856B1 (en) * 2010-06-29 2014-11-04 Nvidia Corporation System, method, and computer program product for depicting a body of water utilizing a height field and particles
KR101267627B1 (ko) 2011-06-13 2013-05-27 한국과학기술원 멀티 레벨 소용돌이를 위한 sph 유체 시뮬레이션 방법, 시스템 및 이를 위한 기록 매체
CN102831275B (zh) * 2012-08-31 2015-08-12 中国科学技术大学 一种3d流体的仿真方法及系统
KR101562863B1 (ko) * 2014-02-03 2015-10-26 한국과학기술연구원 래티스 볼츠만 이론을 이용한 유체 유동 시뮬레이션 방법 및 이를 실현하기 위한 기록 매체
FR3022049B1 (fr) * 2014-06-06 2016-07-22 Inria Inst Nat De Rech En Informatique Et En Automatique Procede d'analyse d'une scene dynamique, module d'analyse et programme d'ordinateur associes
CN104200015B (zh) * 2014-08-20 2017-06-16 清华大学 一种流体模拟方法及装置

Also Published As

Publication number Publication date
US20170098016A1 (en) 2017-04-06
CN106560818B (zh) 2022-03-04
EP3151200A1 (en) 2017-04-05
EP3151200B1 (en) 2020-08-26
US10755004B2 (en) 2020-08-25
CN106560818A (zh) 2017-04-12

Similar Documents

Publication Publication Date Title
CN108292241B (zh) 处理计算图
US9251618B2 (en) Skin and flesh simulation using finite elements, biphasic materials, and rest state retargeting
Zhang A design methodology for efficient implementation of deconvolutional neural networks on an FPGA
US9390380B2 (en) Continuous interaction learning and detection in real-time
US10467794B2 (en) Techniques for generating dynamic effects animations
JP2018173843A (ja) 情報処理装置、情報処理方法、及びプログラム
JP2010020781A5 (ja)
EP2919140A1 (en) Apparatus, method, and computer readable storage medium storing a program for simulating injection molding
US11302049B2 (en) Preventing transition shocks during transitions between realities
JP2019215848A (ja) 高速流のための格子ボルツマンベースのソルバ
JP6907700B2 (ja) 情報処理装置、マルチスレッド行列演算方法、およびマルチスレッド行列演算プログラム
KR20200084000A (ko) 처리 유닛에서 작업로드의 정확한 일시 중지 및 재개
US20190129756A1 (en) Wave creation control with dynamic resource allocation
US20170161413A1 (en) Method and apparatus for modeling movement of air bubble based on fluid particles
JP2017068817A (ja) オブジェクトをモデリングする方法及び装置
JP6663183B2 (ja) オブジェクトをモデリングする方法及び装置
KR102437374B1 (ko) 객체를 모델링하는 방법 및 장치
EP3711016B1 (en) Systems and methods for segmenting images
Gunadi et al. Real-time gpu-based sph fluid simulation using vulkan and opengl compute shaders
US9785729B2 (en) Technique for simulating the dynamics of hair
KR20120110439A (ko) 거품 파티클 생성 장치 및 거품 파티클 생성 방법
US9117312B2 (en) System and method for preventing pinches and tangles in animated cloth
KR20180023879A (ko) 텍스트 애니메이션 생성 방법 및 그 장치
US20150206275A1 (en) Multi-graphics processing unit (gpu)-based multi-physics simulation method and apparatus
US8854378B2 (en) System and method for simulating hair and cloth using polyhedral-based constraints

Legal Events

Date Code Title Description
A80 Written request to apply exceptions to lack of novelty of invention

Free format text: JAPANESE INTERMEDIATE CODE: A80

Effective date: 20160404

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190222

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200331

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20201027