(57)【要約】【課題】  オブジェクトをモデリングする方法及び装置を提供する。【解決手段】  本発明のオブジェクトをモデリングする装置は、画面に視覚化されない余分状態の粒子の個数を流動的に調節し、余分状態の粒子を初期化してオブジェクトを表現するために用いる。【選択図】        図４
2017068817.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクトを形成する複数の粒子に対してそれぞれの状態と状態遷移確率を定義するステップと、
前記複数の粒子のうち第１状態に定義された粒子をオブジェクトの第２状態に変更するステップと、
前記複数の粒子のうち第２状態に定義された粒子に運動モデルを適用し、前記状態遷移確率に基づいて前記第１状態に変更するステップと、
を含むオブジェクトをモデリングする方法。
【請求項２】
前記第１状態に定義された粒子と関連する統計情報に基づいて前記状態遷移確率を調整するステップをさらに含む請求項１に記載のオブジェクトをモデリングする方法。
【請求項３】
前記状態遷移確率を調整するステップは、
前記第１状態に定義された粒子が占めるメモリサイズをモニタリングするステップと、
前記メモリサイズに基づいて前記状態遷移確率を決定するステップと、
を含む請求項２に記載のオブジェクトをモデリングする方法。
【請求項４】
前記状態遷移確率を調整するステップは、
前記統計情報と予め定めた閾値を比較するステップと、
前記比較した結果に基づいて前記状態遷移確率を決定するステップと、
を含む請求項２に記載のオブジェクトをモデリングする方法。
【請求項５】
前記比較した結果に基づいて前記状態遷移確率を決定するステップは、
前記統計情報が予め定めた閾値より小さい場合に応じて、前記粒子が前記第１状態に遷移する確率を増加させるステップと、
前記統計情報が予め定めた閾値より大きかったり同じである場合に応じて、前記粒子が前記第１状態に遷移する確率を減少させるステップと、
を含む請求項４に記載のオブジェクトをモデリングする方法。
【請求項６】
前記第２状態に変更するステップは、前記第２状態に変更された粒子を場面における初期位置及び初期速度に初期化するステップを含む請求項１ないし５のうちの何れか１項に記載のオブジェクトをモデリングする方法。
【請求項７】
前記第２状態の粒子が占めるメモリサイズを保持するステップをさらに含む請求項６に記載のオブジェクトをモデリングする方法。
【請求項８】
第２状態に定義された粒子に運動モデルを適用し、前記第２状態に定義された粒子を前記状態遷移確率に基づいて第３状態に変更するステップと、
第３状態に定義された粒子に運動モデルを適用し、前記第３状態に定義された粒子を前記状態遷移確率に基づいて前記第１状態に変更するステップと、
をさらに含む請求項１ないし７のうち何れか１項に記載のオブジェクトをモデリングする方法。
【請求項９】
前記第３状態に変更するステップは、前記第２状態に変更された粒子と異なるオブジェクト間に相互作用が発生する場合に応じて、前記第２状態に変更された粒子を前記状態遷移確率に基づいて前記第３状態に変更するステップを含む請求項８に記載のオブジェクトをモデリングする方法。
【請求項１０】
それぞれの粒子に対して粒子の大きさ、材質、形態、及び属性のうち少なくとも１つを定義するステップをさらに含む請求項１ないし９のうちの何れか１項に記載のオブジェクトをモデリングする方法。
【請求項１１】
前記複数の粒子のうち第１状態に定義された粒子をオブジェクトの第２状態に変更するステップは、場面のフレームに指定された個数程の前記第１状態に定義された粒子を前記第２状態に変更するステップを含む請求項１ないし１０のうちの何れか１項に記載のオブジェクトをモデリングする方法。
【請求項１２】
前記粒子を用いて前記オブジェクトを表示するステップをさらに含む請求項１ないし１１のうちの何れか１項に記載のオブジェクトをモデリングする方法。
【請求項１３】
前記オブジェクトは仮想空間上に表現される流体であり、
前記複数の粒子は前記流体を形成する、
請求項１ないし１２のうちの何れか１項に記載のオブジェクトをモデリングする方法。
【請求項１４】
前記第１状態は、前記粒子が場面において表現が終了した後、メモリに臨時的に位置する状態である請求項１ないし１３のうち何れか１項に記載のオブジェクトをモデリングする方法。
【請求項１５】
前記第２状態は、仮想空間内において流体の代表的な流れを形成する粒子の状態である請求項１ないし１４のうち何れか１項に記載のオブジェクトをモデリングする方法。
【請求項１６】
前記第３状態は、前記第２状態から遷移されて流体の付随する流れを形成する粒子の状態である請求項８に記載のオブジェクトをモデリングする方法。
【請求項１７】
モデリング装置のコンピュータに請求項１乃至請求項１６のうちいずれか１項に記載の方法を実行させるコンピュータプログラム。
【請求項１８】
第１状態の粒子のうち少なくとも一部を第２状態に変更するステップと、
前記第２状態の粒子を用いてオブジェクトを生成するステップと、
前記第２状態の粒子に運動モデルを適用するステップと、
前記運動モデルの適用結果に応じて、前記第２状態の粒子を状態遷移条件に基づいて第１状態に変更するステップと、
を含むオブジェクトをモデリングする方法。
【請求項１９】
前記第２状態の粒子が場面内において予め定めた空間に達した場合に応じて、前記粒子を前記第２状態から他の状態に変更するステップをさらに含む請求項１８に記載のオブジェクトをモデリングする方法。
【請求項２０】
前記第２状態の粒子と異なるオブジェクト間において相互作用が発生する場合に応じて、前記第２状態の粒子を状態遷移確率に基づいて他の状態に変更するステップをさらに含む請求項１８又は１９に記載のオブジェクトをモデリングする方法。
【請求項２１】
粒子と関連する統計情報をモニタリングするステップと、
前記統計情報に基づいて、前記状態遷移条件を調整するステップと、
をさらに含む請求項１８ないし２０のうち何れか１項に記載のオブジェクトをモデリングする方法。
【請求項２２】
前記状態遷移条件を調整するステップは、
前記統計情報と予め定めた閾値を比較するステップと、
前記比較した結果に基づいて前記状態遷移条件を調整するステップと、
を含む請求項２１に記載のオブジェクトをモデリングする方法。
【請求項２３】
前記状態遷移条件を調整するステップは、前記第２状態の粒子が他の状態に変更されるように設定された空間の場面内の大きさ、形態、及び位置のうち少なくとも１つを調整するステップを含む請求項２１に記載のオブジェクトをモデリングする方法。
【請求項２４】
前記粒子が前記第２状態を保持する場合に応じて、前記粒子に前記運動モデルを持続的に適用するステップをさらに含む請求項１８ないし２３のうち何れか１項に記載のオブジェクトをモデリングする方法。
【請求項２５】
前記運動モデルの適用結果に応じて、前記第２状態の粒子を状態遷移条件に基づいて第３状態に変更するステップと、
前記第３状態の粒子に運動モデルを適用するステップと、
前記運動モデルの適用結果に応じて、前記第３状態の粒子を前記状態遷移条件に基づいて前記第１状態に変更するステップと、
をさらに含み、
前記第２状態の粒子を用いてオブジェクトを生成するステップは、
前記第２状態の粒子及び前記第３状態の粒子を用いてオブジェクトを生成するステップ
を含む請求項１８ないし２４のうち何れか１項に記載のオブジェクトをモデリングする方法。
【請求項２６】
前記第１状態の粒子のうち少なくとも一部を第２状態に変更するステップは、
前記第１状態の粒子のうち場面の当該フレームに指定された個数程の粒子を第２状態に変更するステップと、
前記第２状態に変更された粒子を場面における初期位置及び初期速度に初期化するステップと、
を含む請求項１８ないし２５のうち何れか１項に記載のオブジェクトをモデリングする方法。
【請求項２７】
前記第１状態の粒子のうち少なくとも一部を第２状態に変更するステップは、前記第２状態の粒子に対して粒子の大きさ、材質、形態、及び属性のうち少なくとも１つを定義するステップを含む請求項１８ないし２６のうち何れか１項に記載のオブジェクトをモデリングする方法。
【請求項２８】
前記第２状態の粒子が占めるメモリサイズを保持するステップをさらに含む請求項１８ないし２７のうち何れか１項に記載のオブジェクトをモデリングする方法。
【請求項２９】
前記粒子を用いて前記オブジェクトを表示するステップをさらに含む請求項１８ないし２８のうち何れか１項に記載のオブジェクトをモデリングする方法。
【請求項３０】
モデリング装置のコンピュータに請求項１８乃至請求項２９のうちいずれか１つの項の方法を実行させるコンピュータプログラム。
【請求項３１】
流体を形成する複数の粒子を仮想空間に表現されない第１状態と前記仮想空間に表現される第２状態及び第３状態に分けるステップと、
前記第２状態及び前記第３状態の粒子に運動モデルを適用するステップと、
前記運動モデルが適用された前記第２状態及び前記第３状態の粒子を用いて前記仮想空間に前記流体を表現するステップと、
を含むオブジェクトをモデリングする方法。
【請求項３２】
前記第２状態の粒子が占めるメモリサイズを一定に保持する請求項３１に記載のオブジェクトをモデリングする方法。
【請求項３３】
前記第１状態の粒子が占めるメモリサイズを流動的に保持する請求項３１又は３２に記載のオブジェクトをモデリングする方法。
【請求項３４】
前記第３状態の粒子が占めるメモリサイズを流動的に保持する請求項３１ないし３３のうち何れか１項に記載のオブジェクトをモデリングする方法。
【請求項３５】
前記第１状態及び前記第３状態の粒子が占めるメモリサイズの合計を一定に保持する請求項３１ないし３４のうち何れか１項に記載のオブジェクトをモデリングする方法。
【請求項３６】
前記第１状態、前記第２状態、及び前記第３状態の粒子が占めるメモリサイズの合計を一定に保持する請求項３１ないし３５のうち何れか１項に記載のオブジェクトをモデリングする方法。
【請求項３７】
前記第１状態の粒子の個数を一定に保持する請求項３１ないし３６のうち何れか１項に記載のオブジェクトをモデリングする方法。
【請求項３８】
前記第１状態、前記第２状態、及び前記第３状態の粒子の個数の合計を一定に保持する請求項３１ないし３７のうち何れか１項に記載のオブジェクトをモデリングする方法。
【請求項３９】
前記第２状態は、前記流体の代表的な流れを示す状態である請求項３１ないし３８のうち何れか１項に記載のオブジェクトをモデリングする方法。
【請求項４０】
前記第３状態は、前記流体の付随する流れを示す状態である請求項３１ないし３９のうち何れか１項に記載のオブジェクトをモデリングする方法。
【請求項４１】
モデリング装置のコンピュータに請求項３１乃至請求項４０のうちいずれか１つの項の方法を実行させるコンピュータプログラム。
【請求項４２】
請求項１ないし１６、１８ないし２９、及び、３１ないし４０のうち何れか１項に記載の方法を実行するモデリング装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、オブジェクトをモデリングする方法及び装置に関する。
【背景技術】
【０００２】
コンピュータグラフィックス（Ｃｏｍｐｕｔｅｒ  Ｇｒａｐｈｉｃｓ：ＣＧ）分野、特に視覚効果（Ｖｉｓｕａｌ  Ｅｆｆｅｃｔｓ：ＶＦＸ）分野の流体シミュレーションと関連し、流体の流動を数値的に解き明かそうとする研究が続けて進められている。例えば、流体を非常に小さい粒子（ｐａｒｔｉｃｌｅｓ）の合計と見て、それぞれの粒子が互いにどのように相互作用しながら動くかを示すことによって、流体をより簡単なベルヌーイの方程式（Ｂｅｒｎｏｕｌｌｉ’ｓ  ｐｒｉｎｃｉｐｌｅ）で示すことができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、オブジェクトをモデリングする方法及び装置を提供することにある。
【課題を解決するための手段】
【０００４】
一実施形態に係るオブジェクトをモデリングする方法は、オブジェクトを形成する複数の粒子に対してそれぞれの状態と状態遷移確率（ｓｔａｔｅ  ｔｒａｎｓｉｔｉｏｎ  ｐｒｏｂａｂｉｌｉｔｙ）を定義するステップと、前記複数の粒子のうち第１状態に定義された粒子をオブジェクトの第２状態に変更するステップと、前記複数の粒子のうち第２状態に定義された粒子に運動モデル（ｍｏｖｅｍｅｎｔ  ｍｏｄｅｌ）を適用して、前記状態遷移確率に基づいて前記第１状態に変更するステップとを含む。
【０００５】
オブジェクトをモデリングする方法は、前記第１状態に定義された粒子と関連する統計情報に基づいて、前記状態遷移確率を調整するステップをさらに含んでもよい。
【０００６】
前記状態遷移確率を調整するステップは、前記第１状態に定義された粒子が占めるメモリサイズをモニタリングするステップと、前記メモリサイズに基づいて前記状態遷移確率を決定するステップとを含んでもよい。
【０００７】
前記状態遷移確率を調整するステップは、前記統計情報と予め定めた閾値を比較するステップと、前記比較した結果に基づいて前記状態遷移確率を決定するステップとを含んでもよい。
【０００８】
前記比較した結果に基づいて前記状態遷移確率を決定するステップは、前記統計情報が予め定めた閾値より小さい場合に応じて、前記粒子が前記第１状態に遷移する確率を増加させるステップと、前記統計情報が予め定めた閾値より大きかったり同じである場合に応じて、前記粒子が前記第１状態に遷移する確率を減少させるステップとを含んでもよい。
【０００９】
前記第２状態に変更するステップは、前記第２状態に変更された粒子を場面における初期位置及び初期速度に初期化するステップを含んでもよい。
【００１０】
オブジェクトをモデリングする方法は、前記第２状態の粒子が占めるメモリサイズを保持するステップをさらに含んでもよい。
【００１１】
オブジェクトをモデリングする方法は、第２状態に定義された粒子に運動モデルを適用し、前記第２状態に定義された粒子を前記状態遷移確率に基づいて第３状態に変更するステップと、第３状態に定義された粒子に運動モデルを適用し、前記第３状態に定義された粒子を前記状態遷移確率に基づいて前記第１状態に変更するステップとをさらに含んでもよい。
【００１２】
前記第３状態に変更するステップは、前記第２状態に変更された粒子と異なるオブジェクト間に相互作用が発生する場合に応じて、前記第２状態に変更された粒子を前記状態遷移確率に基づいて前記第３状態に変更するステップを含んでもよい。
【００１３】
オブジェクトをモデリングする方法は、それぞれの粒子に対して粒子の大きさ、材質、形態、及び属性のうち少なくとも１つを定義するステップをさらに含んでもよい。
【００１４】
前記複数の粒子のうち第１状態に定義された粒子をオブジェクトの第２状態に変更するステップは、場面（ｓｃｅｎｅ）の当該フレームに指定された個数程の前記第１状態に定義された粒子を前記第２状態に変更するステップを含んでもよい。
【００１５】
オブジェクトをモデリングする方法は、前記粒子を用いて前記オブジェクトを表示するステップをさらに含んでもよい。
【００１６】
前記オブジェクトは仮想空間上に表現される流体であり、前記複数の粒子は前記流体を形成してもよい。
【００１７】
前記第１状態は、前記粒子が場面において表現が終了した後、メモリに臨時的に位置する状態であってもよい。
【００１８】
前記第２状態は、仮想空間内において流体の代表的な流れを形成する粒子の状態であってもよい。
【００１９】
前記第３状態は、前記第２状態から遷移されて流体の付随する流れを形成する粒子の状態であってもよい。
【００２０】
一実施形態に係るオブジェクトをモデリングする装置は、粒子を格納するメモリと、オブジェクトを形成する複数の粒子に対してそれぞれの状態と状態遷移確率を定義して、前記複数の粒子のうち第１状態に定義された粒子をオブジェクトの第２状態に変更し、前記複数の粒子のうち第２状態に定義された粒子に運動モデルを適用し前記状態遷移確率に基づいて前記第１状態に変更するプロセッサ（ｐｒｏｃｅｓｓｏｒ）とを含む。
【００２１】
他の一実施形態に係るオブジェクトをモデリングする方法は、第１状態（ｆｉｒｓｔ  ｓｔａｔｅ）の粒子のうち少なくとも一部を第２状態（ｓｅｃｏｎｄ  ｓｔａｔｅ）に変更するステップと、前記第２状態の粒子を用いてオブジェクトを生成するステップと、前記第２状態の粒子に運動モデルを適用するステップと、前記運動モデルの適用結果に応じて、前記第２状態の粒子を状態遷移条件（ｓｔａｔｅ  ｔｒａｎｓｉｔｉｏｎ  ｃｏｎｄｉｔｉｏｎ）に基づいて第１状態に変更するステップとを含む。
【００２２】
オブジェクトをモデリングする方法は、前記第２状態の粒子が場面内において予め定めた空間に達した場合に応じて、前記粒子を前記第２状態から他の状態に変更するステップをさらに含んでもよい。
【００２３】
オブジェクトをモデリングする方法は、前記第２状態の粒子と異なるオブジェクト間に相互作用が発生する場合に応じて、前記第２状態の粒子を状態遷移確率に基づいて他の状態に変更するステップをさらに含んでもよい。
【００２４】
オブジェクトをモデリングする方法は、粒子と関連する統計情報をモニタリングするステップと、前記統計情報に基づいて、前記状態遷移条件を調整するステップとをさらに含んでもよい。
【００２５】
前記状態遷移条件を調整するステップは、前記統計情報と予め定めた閾値を比較するステップと、前記比較した結果に基づいて前記状態遷移条件を調整するステップとを含んでもよい。
【００２６】
前記状態遷移条件を調整するステップは、前記第２状態の粒子が他の状態に変更されるように設定された空間の場面内における大きさ、形態、及び位置のうち少なくとも１つを調整するステップを含んでもよい。
【００２７】
オブジェクトをモデリングする方法は、前記粒子が前記第２状態を保持する場合に応じて、前記粒子に前記運動モデルを持続的に適用するステップをさらに含んでもよい。
【００２８】
オブジェクトをモデリングする方法は、前記運動モデルの適用結果に応じて、前記第２状態の粒子を状態遷移条件に基づいて第３状態に変更するステップと、前記第３状態の粒子に運動モデルを適用するステップと、前記運動モデルの適用結果に応じて、前記第３状態の粒子を前記状態遷移条件に基づいて前記第１状態に変更するステップとをさらに含み、前記第２状態の粒子を用いてオブジェクトを生成するステップは、前記第２状態の粒子及び前記第３状態の粒子を用いてオブジェクトを生成するステップを含んでもよい。
【００２９】
前記第１状態の粒子のうち少なくとも一部を第２状態に変更するステップは、前記第１状態の粒子のうち場面の当該フレームに指定された個数程の粒子を第２状態に変更するステップと、前記第２状態に変更された粒子を場面における初期位置及び初期速度に初期化するステップとを含んでもよい。
【００３０】
前記第１状態の粒子のうち少なくとも一部を第２状態に変更するステップは、前記第２状態の粒子に対して粒子の大きさ、材質、形態、及び属性のうち少なくとも１つを定義するステップを含んでもよい。
【００３１】
オブジェクトをモデリングする方法は、前記第２状態の粒子が占めるメモリサイズを保持するステップをさらに含んでもよい。
【００３２】
オブジェクトをモデリングする方法は、前記粒子を用いて前記オブジェクトを表示するステップをさらに含んでもよい。
【００３３】
他の一実施形態に係るオブジェクトをモデリングする装置は、粒子を格納するメモリと、第１状態の粒子のうち少なくとも一部を第２状態に変更して、前記第２状態の粒子を用いてオブジェクトを生成し、前記第２状態の粒子に運動モデルを適用し、前記運動モデルの適用結果に応じて前記第２状態の粒子を状態遷移条件に基づいて第１状態に変更するプロセッサとを含む。
【発明の効果】
【００３４】
本発明によると、オブジェクトをモデリングする方法及び装置が提供することができる。
【図面の簡単な説明】
【００３５】
【図１】本発明の一実施形態によって表示されるオブジェクトを示す図である。
【図２】本発明の一実施形態によってオブジェクトをモデリングする方法を示すフローチャートである。
【図３】本発明の一実施形態によってオブジェクトをモデリングする方法を示すフローチャートである。
【図４】本発明の一実施形態によってオブジェクトをモデリングする例示を示す図である。
【図５】本発明の一実施形態に係るオブジェクトの状態遷移を示す図である。
【図６】本発明の一実施形態に係るオブジェクトの状態遷移が発生する例示を示す図である。
【図７】本発明の一実施形態に係るオブジェクトをモデリングする他の例示を示図である。
【図８】本発明の他の一実施形態によってオブジェクトをモデリングする方法を示すフローチャートである。
【図９】本発明の一実施形態によってオブジェクトの状態遷移が発生する他の例示を示す図である。
【図１０】本発明の一実施形態によって時間の経過によるオブジェクトの状態遷移を示す図である。
【図１１】本発明の一実施形態によって統計情報に基づいて状態遷移条件を調整する方法を示す図である。
【図１２】本発明の一実施形態に係るオブジェクトをモデリングする装置の構成を示すブロック図である。
【図１３】本発明の一実施形態に係るオブジェクトをモデリングする装置の構成を示すブロック図である。
【発明を実施するための形態】
【００３６】
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。しかし、特許出願の範囲は、このような実施形態によって制限されたり限定されるものではない。各図面に示した同一の参照符号は同一の部材を示す。
【００３７】
以下で説明する実施形態は様々な変更が加えられ得る。以下で説明する実施形態は本発明を限定しようとするものではなく、これに対する全ての変更、均等物ないし代替物を含むものとして理解しなければならない。
【００３８】
本実施形態で用いる用語は、単に特定の実施形態を説明するために用いるものであって、実施形態を限定しようとする意図はない。単数の表現は、文脈上、明白に異なる意味をもたない限り複数の表現を含む。本明細書において、「含む」又は「有する」などの用語は明細書上に記載した特徴、数字、ステップ、動作、構成要素、部品、又はこれらを組合せたものが存在することを示すものであって、１つ又はそれ以上の他の特徴や数字、ステップ、動作、構成要素、部品、又はこれらを組合せたものなどの存在又は付加の可能性を予め排除しないものとして理解しなければならない。
【００３９】
異なる定義がされない限り、技術的であるか又は科学的な用語を含むここで用いる全ての用語は、本実施形態が属する技術分野で通常の知識を有する者によって一般的に理解されるものと同じ意味を有する。一般的に用いられる予め定義された用語は、関連技術の文脈上で有する意味と一致する意味を有するものと解釈すべきであって、本明細書で明白に定義しない限り、理想的又は過度に形式的な意味として解釈されることはない。
【００４０】
また、図面を参照して説明する際に、図面符号に関係なく同一の構成要素には同一の参照符号を付与し、それに対する重複説明を省略する。本実施形態の説明において関連する公知技術に対する具体的な説明が実施形態の要旨を不要に曖昧にすると判断される場合、その詳細な説明を省略する。
【００４１】
図１は、本発明の一実施形態によって表示されるオブジェクトを示す図である。
【００４２】
オブジェクトをモデリングする装置の表示装置により表示されるディスプレイ１００は、オブジェクト１９０を視覚的に表現する。例えば、ディスプレイ１００は、オブジェクト１９０を２次元又は３次元の形状でモデリングし、場面内で表現する。「場面」は「シーン」等のように表現されてもよい。
【００４３】
場面は、オブジェクト１９０及びオブジェクト１９０が存在する仮想空間を示す１つ以上のフレーム（ｆｒａｍｅ）で構成する。複数のフレームは、連続的な映像を構成する。仮想空間は、オブジェクト１９０が存在する２次元又は３次元の空間を示す。
【００４４】
オブジェクト１９０は、１つ以上の粒子の集合で形成される物体（ｔｈｉｎｇ）、流体（ｆｌｕｉｄ）、気体（ｇａｓ）、固体（ｓｏｌｉｄ）、剛体（ｒｉｇｉｄ  ｂｏｄｙ）、軟体（ｓｏｆｔ  ｂｏｄｙ）、及び変形可能な物体（ｄｅｆｏｒｍａｂｌｅ  ｏｂｊｅｃｔ）（例えば、変形可能な物体は、剛体及び軟体を全て含むオブジェクトを示す）などを示してもよい。例えば、粒子のそれぞれに対して場面又は仮想空間内において任意の運動モデルによって、粒子の位置、形態、大きさ、及び状態などが変更されてもよい。以下、オブジェクト１９０が流体である場合を例に挙げてオブジェクト１９０のモデリングを説明する。
【００４５】
運動モデルは、オブジェクト及びオブジェクトを形成する粒子のそれぞれの動きを定義するモデルを示す。例えば、オブジェクトが流体である場合、運動モデルは、流体の流動が数値的に定義されたモデルである。運動モデルは、流体を形成する粒子の位置と速度がそれぞれの粒子の速度と加速度の時間積分によって決定されるように定義されるため、例えば、流体を形成する粒子の加速度は、物理法則（例えば、重力加速度）によって決定される。
【００４６】
本発明の一実施形態によれば、運動モデルは、オブジェクトが流体である場合、
ナビエストークス（Ｎａｖｉｅｒ−Ｓｔｏｋｅｓ）方程式を含む。ナビエストークス方程式は、流体を非常に小さい粒子の合計として扱い、それぞれの粒子が互いにどのように相互作用しながら動くかを示すものである。ナビエストークス方程式は、理想的な状況を仮定する場合、より簡単なベルヌーイの方程式に置き換えてもよい。ナビエストークス方程式に基づいた流体モデリングを現実的に再現するためには、非圧縮性条件（ｉｎｃｏｍｐｒｅｓｓｉｂｌｅ  ｃｏｎｄｉｔｉｏｎ）を満たさなければならない。
【００４７】
本発明の一実施形態によれば、オブジェクト１９０が流体である場合、流体を形成する粒子が流入する流入口１９１及び仮想空間内に流入した粒子が排出される排出口１９２が設定される。例えば、図１は、洗面台において水が流水している状況を示している。仮想空間内における粒子は、１つの状態を有するように定義される。例えば、粒子の状態は、第１状態、第２状態１２０、及び第３状態１３０と定義する。ただし、粒子の状態は、これに限定されるものではなく、設計によって粒子の状態の個数及び定義などが変更されてもよい。
【００４８】
第１状態は、仮想空間内において使われない粒子の状態であって、粒子がディスプレイ１００上の場面における表現が終了した後、メモリに臨時的に位置する状態を示す。第１状態は、仮想空間において表現されない状態を示す。例えば、粒子は、第２状態１２０又は第３状態１３０から第１状態に遷移する。第１状態は余分状態（ｒｅｍａｉｎｉｎｇ  ｓｔａｔｅ）と表すこともできる。
【００４９】
第２状態１２０は、仮想空間内において流体の代表的な流れを形成する粒子の状態であって、粒子が流入口１９１を介して流入する状態及び粒子が場面内において代表的な流体の流れを形成する状態などを示す。第２状態１２０は、主流（ｐｒｉｍａｒｙ  ｆｌｏｗ）状態と表すこともできる。また、粒子が第１状態から第２状態１２０に変更されたフレームにおいて、第２状態１２０に変更された粒子は流入口１９１を介して流入した直後の時点で流入口１９１の位置に対応する初期位置及び流入する初期速度に初期化する。
【００５０】
第３状態１３０は、仮想空間内において流体の代表的な流れを形成した粒子が遷移された他の状態であって、第２状態から遷移されて流体の付随する流れを形成する粒子の状態を示す。例えば、第３状態１３０は、スプラッシュ（ｓｐｌａｓｈ）、他のオブジェクトの表面に沿って流れる水滴、水泡（ｂｕｂｂｌｅ）などの状態を含む。第３状態１３０は、副流（ｓｅｃｏｎｄａｒｙ  ｆｌｏｗ）状態と表すこともできる。
【００５１】
本発明の一実施形態によれば、オブジェクトをモデリングするために、制限された個数の粒子で流体の流れを表現するため、粒子を動的に生成及び消滅させない。従って、演算速度が向上して比較的に少ない演算能力が要求される。また、本発明の一実施形態に係る装置は、余分状態の粒子を適切な個数で保持することによって、メモリ空間を効率的に用いることができる。下記においては、本発明の一実施形態によって限定された数の粒子で流体の流れを表現するために、効率的に粒子を再利用する方法を説明する。
【００５２】
図２及び図３は、本発明の一実施形態によってオブジェクトをモデリングする方法を示すフローチャートである。
【００５３】
図２は、特定フレームにおいてオブジェクトをモデリングする方法を示す。
【００５４】
まず、ステップＳ２１０において、オブジェクトをモデリングする装置のプロセッサは、オブジェクトを形成する複数の粒子に対してそれぞれの状態と状態遷移確率を定義する。例えば、プロセッサは、複数の粒子のそれぞれを第１状態、第２状態、及び第３状態のうちの１つとして定義する。本発明の一実施形態によれば、プロセッサは、流体を形成する複数の粒子を仮想空間に表現されない第１状態と仮想空間に表現される第２状態及び第３状態に分けることができる。また、プロセッサは、複数の粒子のそれぞれに対して当該状態から他の状態に遷移される状態遷移確率を定義することができる。状態遷移確率は、粒子の現在の状態から他の状態に変換される確率であって、例えば、状態遷移確率は、第２状態から第１状態又は第３状態に遷移される確率、第３状態から第１状態に遷移される確率などを含む。
【００５５】
そして、ステップＳ２２０におけるプロセッサは、複数の粒子のうち第１状態に定義された粒子をオブジェクトの第２状態に変更する。例えば、プロセッサは、場面の当該フレームに指定された個数程の第１状態に定義された粒子を第２状態に変更する。プロセッサは、第１状態に定義された粒子を第２状態に変更しながら、当該粒子の位置を流体の流れが始まる初期位置に設定し、粒子の速度を流体の流れの初期速度に設定することによって、初期化する。このように、プロセッサは、第１状態に定義された粒子のうち少なくとも一部を再利用して流体の流れを表現する。
【００５６】
続いて、ステップＳ２３０におけるプロセッサは、複数の粒子のうちに定義された粒子に運動モデルを適用し、状態遷移確率に基づいて第１状態に変更する。例えば、プロセッサは、第２状態に定義された粒子に運動モデルを適用し粒子の位置及び速度などを変更する。また、プロセッサは、状態遷移確率に基づいて粒子の状態遷移の有無を決定する。
【００５７】
図３は、図２に示されている特定フレームにおいてオブジェクトをモデリングする方法をより詳細に説明する。
【００５８】
まず、ステップＳ３１０におけるプロセッサは、第１状態に定義された粒子と関連する統計情報をモニタリングする。また、プロセッサは、第１状態だけでなく、第２状態及び第３状態に定義された粒子と関連する統計情報をモニタリングする。例えば、特定の状態（例えば、第１状態、第２状態、又は第３状態）に定義された粒子と関連する統計情報は、当該状態に定義された粒子の個数、当該状態の粒子が占めるメモリサイズ、及び他の状態の粒子に対する比率などを含む。ただし、統計情報は、これに限定されるものではなく、設計によって様々な統計数値を用いてもよい。本発明の一実施形態によれば、プロセッサは、第１状態に定義された粒子が占めるメモリサイズをモニタリングすることができる。
【００５９】
そして、ステップＳ２２０において上述したように、プロセッサは、複数の粒子のうち第１状態に定義された粒子をオブジェクトの第２状態に変更する。例えば、ステップＳ３２１におけるプロセッサは、第１状態に定義された粒子のうち場面の当該フレームに指定された個数程の粒子を第２状態に変更する。本発明の一実施形態によれば、プロセッサは、流入口の面積、及び流速などに基づいて、第１状態から第２状態に変更されなければならない粒子の個数を決定することができる。そして、ステップＳ３２２におけるプロセッサは、第２状態に変更された粒子を場面における初期位置及び初期速度に初期化する。
【００６０】
そして、ステップＳ２３０，ステップＳ３３２，ステップＳ３３３におけるプロセッサは、それぞれの状態に定義された粒子に運動モデルを適用し、状態遷移確率に基づいて他の状態に変更する。
【００６１】
例えば、ステップＳ２３０におけるプロセッサは、図２において上述したように、複数の粒子のうち第２状態に定義された粒子に運動モデルを適用し、状態遷移確率に基づいて第１状態に変更する。
【００６２】
他の例を挙げると、ステップＳ３３２におけるプロセッサは、第２状態に定義された粒子に運動モデルを適用し、第２状態に定義された粒子を状態遷移確率に基づいて第３状態に変更する。プロセッサは、主流状態（例えば、第２状態）の粒子に予め定めたイベントが発生すると、状態遷移確率に基づいて副流状態（例えば、第３状態）に変更するかを決定する。予め定めたイベントは、下記の図６において詳細に説明する。
【００６３】
また他の例を挙げると、ステップＳ３３３におけるプロセッサは、第３状態に定義された粒子に運動モデルを適用し、第３状態に定義された粒子を状態遷移確率に基づいて第１状態に変更する。プロセッサは、副流状態（例えば、第３状態）の粒子に予め定めたイベントが発生すると、余分状態（例えば、第１状態）に変更するかを決定する。
【００６４】
続いて、ステップＳ３４０におけるプロセッサは、第１状態に定義された粒子と関連する統計情報に基づいて、状態遷移確率を調整する。例えば、プロセッサは、上述したステップＳ３１０においてモニタリングした第１状態の粒子が占めるメモリサイズに基づいて状態遷移確率を決定する。本発明の一実施形態によれば、プロセッサは、粒子を予め定めた個数の状態（例えば、３個の状態）にそれぞれ定義して、各状態間の状態遷移確率を動的に再算出することによって、オブジェクトを生成するのに用いられる粒子を効率的に再利用してもよい。
【００６５】
例えば、ステップＳ３４１におけるプロセッサは、統計情報と予め定めた閾値を比較する。プロセッサは、比較した結果に基づいて状態遷移確率を決定する。ステップＳ３４２におけるプロセッサは、統計情報が予め定めた閾値より小さい場合に応じて、粒子が第１状態に遷移する確率を増加させる。ステップＳ３４３におけるプロセッサは、統計情報が予め定めた閾値より大きかったり同じである場合に応じて、粒子が第１状態に遷移する確率を減少させる。又は、ステップＳ３４３におけるプロセッサは、粒子が第１状態に遷移する確率を初期値（ｄｅｆａｕｌｔ  ｖａｌｕｅ）と設定する。ここで、閾値は、粒子の個数又は粒子の比率などであってもよく、設計によってユーザによって設定されたり、シミュレーションなどによって取得されてもよい。
【００６６】
プロセッサは、上述したように第１状態（例えば、余分状態）の粒子の不足の有無を第１状態の粒子の個数又は全ての粒子に対する第１状態の粒子の比率などに基づいて判断する。例えば、第１状態の粒子の個数が閾値より小さい場合、プロセッサは、第１状態の粒子が足りないと判断する。第１状態の粒子が足りないと判断した場合、プロセッサは、状態遷移確率を調整することによって、第１状態の粒子を確保する。例えば、上述したステップＳ３４２のように、粒子が第１状態に遷移する確率を増加させたり、粒子が第２状態から第３状態に遷移する確率を減少させることができる。
【００６７】
本発明の一実施形態によれば、上述したステップＳ３４０におけるプロセッサは、状態遷移確率を調整して第１状態の粒子を確保することによって、代表的な流体の流れ（例えば、第２状態の粒子の集合）を安定して生成することができる。また、プロセッサは、第１状態の粒子が足りない場合、第３状態への遷移確率を減少させて、第３状態（例えば、流体の付随する流れを示す状態の副流状態）を少なく表現し、第２状態（例えば、流体の代表的な流れを示す状態の主流状態）を保持する。このように、プロセッサは、毎フレームごとに粒子の統計情報をモニタリングして状態遷移確率を動的に調整することができる。したがって、本発明の一実施形態に係る装置は、粒子の総数が全体流体の流れを表現するには足りない場合においても、主流を安定して表現してもよいため、メモリを節減しながら処理する粒子の個数を最小化して演算を高速化することができる。
【００６８】
そして、ステップＳ３５０におけるプロセッサは、粒子を用いてオブジェクトを表示する。本発明の一実施形態によれば、プロセッサは、運動モデルが適用された第２状態及び第３状態の粒子を用いて仮想空間に流体を表現する。例えば、プロセッサは、ディスプレイが毎フレームごとに第２状態及び第３状態の粒子を表現するように制御する。また、プロセッサは、それぞれの粒子に対して粒子の大きさ、材質、形態、及び属性のうち少なくとも１つを定義する。例えば、プロセッサは、第２状態の粒子及び第３状態の粒子に対し粒子の大きさ、材質、形態、及び属性などを定義し、これらに基づいて粒子を視覚的に表現する。粒子の材質は、粒子を表現するためのテクスチャー（ｔｅｘｔｕｒｅ）を決定するために用いる。粒子の属性は、粒子が運動モデルで有する物理的な特性（例えば、表面張力係数など）を決定するために用いる。
【００６９】
図４は、本発明の一実施形態によってオブジェクトをモデリングする例示を示す図である。
【００７０】
図４に示されたディスプレイ１００は、図１に示された場面と同一の場面を表現する。例えば、ディスプレイ１００は、特定フレームの場面を表現する。
【００７１】
メモリ４９０は、ディスプレイ１００上に表われる第２状態１２０の粒子及び第３状態１３０の粒子を格納し、ディスプレイ１００上に表われない第１状態の粒子４１０も格納する。図３のステップＳ２２０において上述したように、プロセッサは、第１状態の粒子４１０を第２状態に変更しながら当該粒子の位置を流入口の位置に初期化する。ここで、プロセッサは、毎フレームごとに指定された個数の第１状態の粒子４１０を第２状態に変更して初期化する。
【００７２】
本発明の一実施形態によれば、メモリ４９０は、予め定めたメモリサイズ分だけの全ての粒子を生成して保持し、プロセッサが当該メモリ４９０のメモリサイズによって決定した個数の粒子をそれぞれの状態に分類してオブジェクトを表現するのに用いる。例えば、プロセッサは、メモリ４９０において、第２状態の粒子１２０が占めるメモリサイズを一定に保持し、第１状態の粒子４１０が占めるメモリサイズ４９１及び第３状態の粒子１３０が占めるメモリサイズ４９３は、流動的に調節する。全ての粒子、例えば、第１状態の粒子４１０、第２状態の粒子１２０、及び第３状態の粒子１３０の全体に割り当てられたメモリサイズは、全てのフレームにおいて同一である。
【００７３】
本発明の他の一実施形態によれば、メモリ４９０は、第１状態の粒子が占めるメモリサイズを流動的に保持し、第３状態の粒子が占めるメモリサイズを流動的に保持する。ここで、メモリ４９０は、第１状態及び第３状態の粒子が占めるメモリサイズを一定に保持する。さらに、メモリ４９０は、第１状態、第２状態、及び第３状態の粒子が占めるメモリサイズの合計を一定に保持する。
【００７４】
本発明のまた他の一実施形態によれば、メモリ４９０は、第１状態の粒子の個数を一定に保持し、さらにメモリ４９０は、第１状態、第２状態、及び第３状態の粒子個数の合計を一定に保持する。
【００７５】
プロセッサは、メモリ４９０内において第２状態１２０の粒子が占めるメモリサイズ４９２を保持する。プロセッサは、図３のステップＳ３４０において上述したように、状態遷移確率を調節することによって、第３状態１３０の粒子が占めるメモリサイズ４９３及び第１状態の粒子４１０が占めるメモリサイズ４９１を流動的に調節する。本発明の一実施形態によれば、プロセッサは、第２状態１２０の粒子が占めるメモリサイズ４９２を保持することによって、第２状態１２０の粒子が形成する流体の流れの視覚品質（ｖｉｓｕａｌ  ｑｕａｌｉｔｙ）を保持する。
【００７６】
図５は、本発明の一実施形態に係るオブジェクトの状態遷移を示す図である。
【００７７】
本明細書における粒子は、第１状態５１０、第２状態５２０、及び第３状態５３０のうちの１つに定義される。第１状態５１０は、上述したように当該フレームにおいてディスプレイに使われない粒子の状態であって、余分状態と表すこともできる。第２状態５２０は、当該フレームにおいて代表的な流体の流れを形成する粒子の状態であって、主流状態と表すこともできる。第３状態５３０は、当該フレームにおいて付随する流体の流れを形成する粒子の状態であって、副流状態と表すこともできる。ただし、粒子の状態は、上述のように限定されるものではなく、設計によって粒子の状態の分類を変更してもよい。
【００７８】
本発明の一実施形態によれば、プロセッサは、第１状態５１０（例えば、余分状態）の粒子を第２状態５２０に変更する。ここで、プロセッサは、当該フレームにおいて要求される個数程のみの第１状態５１０の粒子を第２状態５２０に変更するため、プロセッサは、余った第１状態５１０の粒子を第１状態５１０に保持する。第１状態５１０の粒子は、必要に応じてプロセッサによって読み出される前まではメモリに格納されて保持され、ディスプレイ上には表現されない。ここで、第１状態５１０の粒子は、第３状態５３０に変更されない。
【００７９】
プロセッサは、第２状態５２０（例えば、主流状態）の粒子に対して運動モデルを適用した後、予め定めたイベントが発生した第２状態５２０の粒子を状態遷移確率に基づいて第３状態５３０又は第１状態５１０に変更する。第２状態５２０の粒子に対して予め定めたイベントが発生しない場合には、プロセッサは、当該粒子の状態を第２状態５２０に保持する。
【００８０】
プロセッサは、第３状態５３０（例えば、副流状態）の粒子に対して運動モデルを適用した後、予め定めたイベントが発生した第３状態５３０の粒子を状態遷移確率に基づいて第１状態５１０に変更する。第３状態５３０の粒子に対して予め定めたイベントが発生しない場合には、プロセッサは、当該粒子の状態を第３状態５３０に保持する。ここで、第３状態５３０の粒子は、第２状態５２０では変更されない。
【００８１】
図６は、本発明の一実施形態に係るオブジェクトの状態遷移が発生する例示を示す図である。
【００８２】
プロセッサは、第２状態の粒子及び第３状態の粒子に対して運動モデルを適用した結果、当該粒子において予め定めたイベントが発生すれば、状態遷移確率に基づいて当該粒子を他の状態に変更するか否かを決定する。図６は、予め定めたイベントの例示であって、２つの粒子間の衝突を説明する。
【００８３】
本発明の一実施形態によれば、プロセッサが任意の粒子６１０に対して運動モデルを適用する場合、当該粒子６１０が他の粒子６２０に接近する。当該粒子６１０と他の粒子６２０との間の距離が予め定めた閾値距離より小さくなったり２個の粒子が接触する場合、２つの粒子間には相互作用６５０（例えば、衝突）が発生する。例えば、プロセッサは、当該粒子６１０と他の粒子６２０が接触した場合、２つの粒子間に衝突が発生したと処理する。
【００８４】
プロセッサは、第２状態に変更された粒子６１０と他のオブジェクトを形成する粒子６２０との間に相互作用６５０が発生する場合に応じて、第２状態に変更された粒子６１０を状態遷移確率に基づいて第３状態に変更する。図６におけるプロセッサは、状態遷移確率に基づいて他の粒子６２０と衝突した粒子６１０を他の状態（例えば、小さい滴や泡の状態）の粒子６１１に変更する。
【００８５】
ただし、本明細書において予め定めたイベントは、２つの粒子間の相互作用６５０に限定されるものではなく、任意の粒子６１０が場面内において特定の位置に達したり、生成された後、特定の時間が経過するなどのイベントを全て含んでもよい。また、相互作用６５０は、上述したように２つの粒子間の衝突に限定されるものではなく、引力及び張力などのように２つの粒子間の全ての作用を含んでもよい。
【００８６】
図７は、本発明の一実施形態に係るオブジェクトをモデリングする他の例示を示図である。
【００８７】
例えば、図７は、別途のオブジェクト７５０が存在し、流体が流入して排出される仮想空間を表現するディスプレイ７００を示す。図７に示されているように、プロセッサは流入口７９１から流体を形成する粒子が流入され、排出口７９２を介して流体が排出されるように処理する。また、プロセッサは、流入された粒子を第２状態（例えば、主流状態であって、図７においては、水流）に定義する。プロセッサは、第２状態に定義された粒子７１０に運動モデルを適用し、図７におけるプロセッサは、各粒子を重力に基づいて下方に移動するように処理する。また、プロセッサは、別のオブジェクト７５０に接触した第２状態の粒子７１０を状態遷移確率に基づいて第３状態（例えば、副流状態であって、図７においては、水泡）の粒子７２０に変更する。
【００８８】
また、図７における各粒子は、一定サイズ及び色調を有する円又は球形で設定されたが、これに限定されずに、設計によって、粒子の大きさ、材質、形態、及び属性などは変更されてもよい。
【００８９】
ただし、図７は、流体の流れの例示であって、本発明の一実施形態に係るオブジェクトをモデリングする装置は、流体だけでなく他の種類のオブジェクトを形成する粒子を処理して表示してもよい。
【００９０】
図８は、本発明の他の一実施形態によってオブジェクトをモデリングする方法を示すフローチャートである。
【００９１】
本発明の一実施形態によれば、図８は、仮想空間内において流入した粒子が排出されるときまで（例えば、粒子の生成から消滅までのサイクルの間）、オブジェクトを形成する粒子を処理する方法を示す。
【００９２】
まず、ステップＳ８１０におけるプロセッサは、第１状態の粒子のうち少なくとも一部を第２状態に変更する。例えば、プロセッサは、第１状態の粒子のうち場面の当該フレームに指定された個数程の粒子を第２状態に変更する。また、プロセッサは、第２状態に変更された粒子に運動モデルを適用する。プロセッサは、第２状態の粒子に対して粒子の大きさ、材質、形態、及び属性のうち少なくとも１つを定義する。
【００９３】
そして、ステップＳ８２０におけるプロセッサは、第２状態の粒子を用いてオブジェクトを生成する。ただし、これに限定されずに、プロセッサは、第１状態を除いた他の状態の粒子が存在する場合、第１状態ではない他の粒子を用いてオブジェクトを生成する。例えば、プロセッサは、第２状態の粒子及び第３状態の粒子を用いてオブジェクトを生成する。
【００９４】
続いて、ステップＳ８３０におけるプロセッサは、第２状態の粒子に運動モデルを適用する。ただし、これに限定されずに、プロセッサは、第１状態を除いた他の状態の粒子（例えば、第３状態）にも運動モデルを適用する。
【００９５】
そして、ステップＳ８４０におけるプロセッサは、運動モデルの適用結果に応じて、第２状態の粒子を状態遷移条件に基づいて第１状態に変更する。状態遷移条件は、粒子の状態が他の状態に変更される条件であって、第２状態から第３状態又は第１状態に変更される条件、第３状態から第１状態に変更される条件などを含む。例えば、状態遷移条件は、図６において上述したような予め定めたイベントが発生した場合に応じて、状態遷移確率に基づいて状態遷移の有無が決定される条件、及び下記の図９において説明するように、仮想空間内において特定の位置に粒子が達すれば当該粒子の状態が変更される条件などを含む。ただし、状態遷移条件は、上述したように限定されるものではなく、設計によって変更されてもよい。
【００９６】
例えば、プロセッサは、第２状態の粒子が場面内において予め定めた空間に達した場合に応じて、粒子を第２状態から他の状態（例えば、第１状態又は第３状態など）に変更する。他の例を挙げると、プロセッサは、第２状態の粒子と異なるオブジェクト間に相互作用が発生する場合に応じて、第２状態の粒子を状態遷移確率に基づいて他の状態（例えば、第１状態又は第３状態）に変更する。
【００９７】
図９は、本発明の一実施形態によってオブジェクトの状態遷移が発生する他の例示を示す図である。
【００９８】
例えば、図９に示されたディスプレイ９００は、流入口９９１及び排出口９９２を含み、オブジェクトが運動モデルによって移動中である仮想空間を表現する。
【００９９】
本発明の一実施形態によれば、プロセッサは、第２状態の粒子９２０が場面内において予め定めた空間９６０に達した場合に応じて、粒子を第２状態から他の状態に変更する。例えば、プロセッサは、第２状態の粒子９２０が予め定めた空間９６０に達すれば、第３状態の粒子９３０に変更する。ここで、予め定めた空間９６０は、場面の外郭などのように仮想空間内において視覚的に表現される必要性が少ない空間として設定される。ただし、これに限定されるものではなく、プロセッサは、第２状態の粒子９２０が排出口９９２に対応する空間に達すれば、第１状態に変更してもよい。また、プロセッサは、第２状態の粒子９２０が場面の外に排出される場合にも第１状態に変更してもよい。
【０１００】
図１０は、本発明の一実施形態によって時間の経過によるオブジェクトの状態遷移を示す図である。
【０１０１】
図１０においては、状態遷移条件のうち予め定めたイベントの発生時の状態遷移確率に基づいて粒子の状態を変更する条件を粒子のサイクルに従って例示的に説明する。本明細書における粒子のサイクルは、粒子が仮想空間に流入して排出された後、メモリ内の第１状態の粒子４１０が占めるメモリサイズ４９１に余分状態で存在して再び流入する前までを示す。
【０１０２】
まず、プロセッサは、任意の粒子を第２状態（以下、主流状態１０１０）に設定する。ここで、プロセッサは、主流状態１０１０の粒子の位置及び速度などを初期化する。
【０１０３】
そして、プロセッサは、主流状態１０１０の粒子を確率ＰＡ−＞Ｆに基づいて余分状態の粒子１０９０に変更する。また、プロセッサは、他のオブジェクトと主流状態１０１０の粒子間に相互作用が発生した場合、主流状態１０１０の粒子を確率ＰＡ−＞Ｂに基づいて第１副流状態１０２１に変更する。プロセッサは、主流状態１０１０の粒子の間に相互作用が発生した場合、確率ＰＡ−＞Ｃに基づいて第２副流状態１０２２に変更する。
【０１０４】
続いて、プロセッサは、第１副流状態１０２１の粒子を確率ＰＢ−＞Ｆに基づいて余分状態の粒子１０９０に変更する。また、プロセッサは、第１副流状態１０２１の粒子を確率ＰＢ−＞Ｃに基づいて第２副流状態１０２２に変更する。そして、プロセッサは、第２副流状態１０２２の粒子を確率ＰＣ−＞Ｆに基づいて余分状態の粒子１０９０に変更する。
【０１０５】
最後に、プロセッサは、余分状態の粒子１０９０を当該フレームに指定された個数程、主流状態１０１０に変更する。
【０１０６】
図１１は、本発明の一実施形態によって統計情報に基づいて状態遷移条件を調整する方法を示す図である。
【０１０７】
まず、ステップＳ１１１０におけるプロセッサは、場面内に粒子を流入させる。例えば、プロセッサは、第１状態の粒子のうち指定された個数の粒子を第２状態に変更して位置及び速度などを初期化する。
【０１０８】
そして、ステップＳ１１２０におけるプロセッサは、各粒子に運動モデルを適用する。例えば、プロセッサは、第２状態の粒子及び第３状態の粒子のそれぞれに運動モデルを適用し、粒子の位置及び速度などを変更する。第１状態の粒子は、場面に表現されないため、プロセッサは、第１状態の粒子に対しては運動モデルの適用を排除する。
【０１０９】
また、ステップＳ１１３０におけるプロセッサは、粒子と関連する統計情報をモニタリングする。また、プロセッサは、リアルタイムにそれぞれの粒子と関連する統計情報をモニタリングする。例えば、プロセッサは、毎フレームごとに第１状態の粒子の個数又は第１状態の粒子が占めるメモリサイズをモニタリングする。
【０１１０】
そして、ステップＳ１１４０におけるプロセッサは、統計情報を閾値と比較する。プロセッサは、モニタリングされた統計情報を当該統計情報のタイプに対して設定された閾値と比較する。例えば、プロセッサは、第１状態の粒子の個数が特定の個数より小さいか否かを判断する。他の例を挙げると、プロセッサは、第１状態の粒子が占めるメモリサイズが特定のメモリサイズより小さいか否かを判断する。
【０１１１】
続いて、ステップＳ１１５０におけるプロセッサは、統計情報が閾値より小さい場合に応じて、状態遷移条件を調整する。プロセッサは、統計情報が閾値より小さければ、第１状態に遷移する粒子の個数が増加するように状態遷移条件を調整する。
【０１１２】
例えば、プロセッサは、第２状態の粒子が他の状態に変更されるように設定された空間の場面内の大きさ、形態、及び位置のうち少なくとも１つを調整する。上述した図９を参照すると、プロセッサは、予め定めた空間９６０の大きさを増加させることによって、第２状態から第３状態に遷移する粒子の個数を増加させることができる。
【０１１３】
他の例を挙げると、プロセッサは、図３のステップＳ３４０において上述したように第１状態における遷移確率を増加させる。プロセッサは、第１状態における遷移確率を増加させることによって、第３状態から第１状態に遷移される粒子の個数を増加させることができる。
【０１１４】
図１１においては、説明の便宜上、ステップＳ１１５０をステップＳ１１２０の次に行うと示しているが、これに限定されるものではなく、プロセッサがステップＳ１１３０において統計情報をリアルタイムにモニタリングして、第１状態の粒子個数が不足すればステップＳ１１５０の動作をすぐに行ってもよい。
【０１１５】
そして、ステップＳ１１６０におけるプロセッサは、粒子の状態を遷移する。例えば、プロセッサは、運動モデルの適用結果に応じて、第２状態の粒子を状態遷移条件に基づいて第３状態又は第１状態に変更する。ここで、プロセッサは、第２状態の粒子の一部を第２状態で保持する。
【０１１６】
次に、プロセッサは、第２状態及び第３状態の粒子に対してはステップＳ１１２０に戻って持続的に運動モデルを適用する。プロセッサは、粒子が第２状態及び第３状態を保持する場合に応じて、粒子に運動モデルを持続的に適用する。例えば、上述したステップＳ１１６０において第３状態に変更された粒子に対して、プロセッサは、ステップＳ１１２０において当該第３状態の粒子に運動モデルを適用する。プロセッサは、ステップＳ１１２０における運動モデルの適用結果に応じて、ステップＳ１１６０において第３状態の粒子を状態遷移条件に基づいて第１状態に変更する。
【０１１７】
また、プロセッサは、第１状態の粒子をメモリ内の第１状態の粒子プール１１９０に格納する。第１状態の粒子プール１１９０に格納された第１状態の粒子は、ステップＳ１１１０において場面に流入するために読み出される前までメモリ内に保持される。
【０１１８】
図１２及び図１３は、本発明の一実施形態に係るオブジェクトをモデリングする装置の構成を示すブロック図である。
【０１１９】
オブジェクトをモデリングする装置１２００は、プロセッサ１２１０及びメモリ１２２０を含む。例えば、オブジェクトをモデリングする装置１２００は、スマートフォンのようなモバイル機器、及びデスクトップＰＣのような固定式機器などで実現してもよい。
【０１２０】
プロセッサ１２１０は、毎フレームごとにオブジェクトを形成する複数の粒子に対してそれぞれの状態と状態遷移確率を定義し、複数の粒子のうち第１状態に定義された粒子をオブジェクトの第２状態に変更し、複数の粒子のうち第２状態に定義された粒子に運動モデルを適用して状態遷移確率に基づいて第１状態に変更する。
【０１２１】
メモリ１２２０は、粒子を格納する。メモリ１２２０は、各状態の粒子を別に管理する。例えば、メモリ１２２０は、第１状態の粒子に対して粒子プールを生成して管理するが、プロセッサ１２１０が第１状態の粒子と関連する粒子プールの大きさを流動的に調節する。ただし、これに限定されるものではなく、プロセッサ１２１０は、他の状態の粒子と関連する粒子プールも生成して管理してもよい。メモリ１２２０は、予め定めたメモリサイズ分のみの粒子を格納し、プロセッサ１２１０は、限定されたメモリサイズによって決定される制限された個数の粒子を流動的に状態を変更しながらオブジェクトを表現する。
【０１２２】
本発明の一実施形態によれば、オブジェクトをモデリングする装置１２００は、ディスプレイ１３３０をさらに含む。ディスプレイ１３３０は、第２状態の粒子及び第３状態の粒子を用いてオブジェクトを表現する。
【０１２３】
プロセッサ１２１０、メモリ１２２０、及びディスプレイ１３３０の具体的な動作は、図１〜図１１において上述したため、省略する。本発明の一実施形態に係るオブジェクトをモデリングする装置１２００は、モバイル機器のようにハードウェア資源が制限的であり、ユーザとの相互作用が頻繁な装置として実現された場合にも、シミュレーションの複雑度が高い流体の流れを効果的に表現することができる。
【０１２４】
上述した装置は、ハードウェア構成要素、ソフトウェア構成要素、又はハードウェア構成要素及びソフトウェア構成要素の組合せで具現される。例えば、本実施形態で説明した装置及び構成要素は、例えば、プロセッサ、コントローラ、ＡＬＵ（ａｒｉｔｈｍｅｔｉｃ  ｌｏｇｉｃ  ｕｎｉｔ）、デジタル信号プロセッサ（ｄｉｇｉｔａｌ  ｓｉｇｎａｌ  ｐｒｏｃｅｓｓｏｒ）、マイクロコンピュータ、ＦＰＡ（ｆｉｅｌｄ  ｐｒｏｇｒａｍｍａｂｌｅ  ａｒｒａｙ）、ＰＬＵ（ｐｒｏｇｒａｍｍａｂｌｅ  ｌｏｇｉｃ  ｕｎｉｔ）、マイクロプロセッサー、又は命令（ｉｎｓｔｒｕｃｔｉｏｎ）を実行して応答する異なる装置のように、１つ以上の汎用コンピュータ又は特殊目的コンピュータを用いて具現される。処理装置は、オペレーティングシステム（ＯＳ）及びオペレーティングシステム上で行われる１つ以上のソフトウェアアプリケーションを実行する。また、処理装置は、ソフトウェアの実行に応答してデータをアクセス、格納、操作、処理、及び生成する。理解の便宜のために、処理装置は１つが使用されるものとして説明する場合もあるが、当該技術分野で通常の知識を有する者は、処理装置が複数の処理要素（ｐｒｏｃｅｓｓｉｎｇ  ｅｌｅｍｅｎｔ）及び／又は複数類型の処理要素を含むことが分かる。例えば、処理装置は、複数のプロセッサ又は１つのプロセッサ及び１つのコントローラを含む。また、並列プロセッサ（ｐａｒａｌｌｅｌ  ｐｒｏｃｅｓｓｏｒ）のような、他の処理構成も可能である。
【０１２５】
ソフトウェアは、コンピュータプログラム、コード、命令、又はこれらのうちの１つ以上の組合せを含み、希望通りに動作するように処理装置を構成し、独立的又は結合的に処理装置に命令する。ソフトウェア及び／又はデータは、処理装置によって解釈され、処理装置に命令又はデータを提供するためのあらゆる類型の機械、構成要素、物理的装置、仮想装置、コンピュータ格納媒体又は装置、或いは送信される信号波を介して永久的又は一時的に具現化される。ソフトウェアは、ネットワークに接続されたコンピュータシステム上に分散され、分散された方法で格納されるか又は実行される。ソフトウェア及びデータは１つ以上のコンピュータ読み取り可能な記録媒体に格納される。
【０１２６】
本実施形態による方法は、多様なコンピュータ手段を介して実施されるプログラム命令の形態で具現され、コンピュータ読み取り可能な記録媒体に記録される。記録媒体は、プログラム命令、データファイル、データ構造などを単独又は組合せて含む。記録媒体及びプログラム命令は、本発明の目的のために特別に設計して構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知のものであり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、フロプティカルディスクのような磁気−光媒体、及びＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置を含む。プログラム命令の例としては、コンパイラによって生成されるような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。ハードウェア装置は、本発明の動作を実行するために１つ以上のソフトウェアモジュールとして作動するように構成してもよく、その逆も同様である。
【０１２７】
上述したように、実施形態が限定された実施形態と図面によって説明されたが、当該技術分野における通常の知識を有する者であれば、前記の記載から様々な修正及び変形が可能である。例えば、説明された技術が説明された方法と異なる順序で行われたり、及び／又は説明されたシステム、構造、装置、回路などの構成要素が説明された方法と異なる形態で結合又は組合わせたり、他の構成要素又は均等物によって代替、置換されても適切な結果が達成され得る。
【０１２８】
したがって、本発明の範囲は、開示された実施形態に限定されて定められるものではなく、特許請求の範囲及び特許請求の範囲と均等なものなどによって定められるものである。
【符号の説明】
【０１２９】
１２００：オブジェクトをモデリングする装置
１２１０：プロセッサ
１２２０：メモリ
１３３０：ディスプレイ
【図１】
2017068817.tif 000003
【図２】
2017068817.tif 000004
【図３】
2017068817.tif 000005
【図４】
2017068817.tif 000006
【図５】
2017068817.tif 000007
【図６】
2017068817.tif 000008
【図７】
2017068817.tif 000009
【図８】
2017068817.tif 000010
【図９】
2017068817.tif 000011
【図１０】
2017068817.tif 000012
【図１１】
2017068817.tif 000013
【図１２】
2017068817.tif 000014
【図１３】
2017068817.tif 000015