fluid,maya皆さん、こんにちは。過去の記事でも書いたように、DFでは流体における『新しい高解像度化手法』の研究開発を行っておりました!今回は、その進捗をここで発表いたします。手法のキーアイデア1手法のキーアイデア2具体的な処理の流れ本手法の効果とその特徴その他の結果まとめと今後アップレゾ(高解像度化)とはアップレゾ(高解像度化)とは、流体シミュレーション(以後、SIM)の入力データを、そのデータが持つ動きや形状を基本的に維持したまま、渦などのディテールを加えた高解像度の情報(高解像度化したSIM)に変換して出力する事です。高解像度化の一例は以下です。右:高解像度化したSIM(出力)アップレゾの詳しい背景やこれまでの研究開発の経緯については、過去の記事を参照ください。流体シミュレーションのアップレゾ(高解像度化)について今回はベースとして格子(グリッド)を用いながら、パーティクルも応用した独自の『新アップレゾ手法』について説明します。グリッド法とパーティクル法の基本的な違いについては、以下を参照ください。偉大なる先人達のこれまでの研究に敬意を表しながら、これまで研究開発を行って来ました。成果として、現在では以下のような結果を得られています。右:アップレゾ後(本手法)[x,y,z]=[600,600,600]左の結果は純粋なSIM結果です。今回の手法によるアップレゾ後の解像度は、低解像度SIMの2倍となっています。※劣化無しの綺麗な状態で見たい方はコチラ挙動の偏りがなく、動的かつ複雑に変化していく詳細を実現出来ていることが分かります。低解像度SIMでは表現出来ていなかった多くの情報が、高解像度SIMの圧力計算を今回特に近似することで生成出来るようになっています。挙動の詳しい特徴については、順に説明していきます。手法のキーアイデア1今回の研究開発のいくつかのキーアイデアについて、その概要を説明します。本手法では、低解像度SIM(入力)の特に高周波成分を利用し、その速度場情報をパーティクルに保持させます。それを時間の経過に伴って流動させることを考えます。パーティクルの流動時に様々な処理を施すことで、グリッド計算だけの低解像度SIMにはなかった複雑な挙動のディテールを作り出します。キーアイデア1によって、本手法は次のような特徴を持つことが出来ます。パーティクルで渦の移動や分離等も表現することで、時間的な連続性を持った詳細を生成エネルギーのカスケード(段階的な状態遷移)を表現するような、動的に変化できる挙動(非定常的な流れを近似)を生成グリッドだけでは基本的に流れの隣接情報しか扱えませんでした。グリッドだけでなく今回はパーティクルも利用することで、流れの大きさの変化や時間の経過と共に流れのかたまりが運ばれるといった表現が、より明示的に出来るようになりました。最終的な計算結果である速度場を用いて、密度を流動させて詳細な流れを生成します。全体的なフレームワークについては、具体的な処理の流れにて図で説明しました。本来は圧力を高解像度で解く事で表現される詳細を、グリッド手法に加えてパーティクルを応用して、近似的に生成しています。低解像度SIM(入力)の高周波成分は圧力をグリッドで解いた結果なので、本手法ではそれをパーティクルでエンハンスするなどの特徴的かつ効果的な処理を行っています。※これまでは、高解像度の純粋SIMはコストが高すぎること(特に圧力計算)から、ユーザがSIMのイテレーションを稼げない事が常に大きな問題となっていましたパーティクルとグリッドを用いる既存手法との違いこれまでにも例えば、流体計算の各項目(移流項等を参照)についてパーティクルとグリッドを使い分けて解くハイブリッド法は存在しました(代表例としてFLIP法)。それに対して今回は、重要と考える圧力項目にパーティクルとグリッドを同時に用いることにより、高解像度での圧力挙動を近似的に表現したという点が既存手法と異なる特徴的な手法となっています。低解像度SIM(入力)への一致さらに、低解像度SIM(入力)の高周波成分を本手法のアルゴリズムを用いて、詳細として高解像度速度場に合成しているため、低解像度SIM(入力)の動きに比較的一致した結果が得られます。※高解像度の圧力計算を施すと低解像度SIM(入力)から結果がずれてしまう点を、解決出来ることになります※本手法の別のアルゴリズムも用いて一致の精度を更に高めていますが(パーティクル流動領域も利用)、割愛します一方で、アップレゾの代表例として、ウェーブレットノイズを利用した複数の流れを重ね合わせる詳細生成手法があります(下記がその手法の動画例)。高速で優れている(CGソフトへの機能実装例もある)一方、動的に変化する複雑な特徴をあまり持たず、局所的な範囲での特定の挙動に留まってしまうという事もありました。1つ目のキーアイデアで考慮する全パーティクルが流動していく領域に対して、よりスケールの小さい成分の詳細を段階的に計算します。キーアイデア2の具体的内容は、簡潔にまとめると次のようになります。パーティクルの流動空間を時間と共に動的に変化させられる事に着目し、その空間に渦を擬似表現する関数を適用さらに、パーティクルの大きさとその速度場の強度を下げていく形で渦のエンハンスを行い、段階的な乱流の変化を表現これによって、相互干渉の挙動を考慮した形で様々なスケールをもった渦を作り出せます。ここでの段階的処理によって、エネルギーが徐々に小さくなっていく渦を比較的壊すことなく、詳細を自然に生成出来ます。パーティクルとそのライフ情報等を応用して、時間の経過と共に渦の強度等を変化させることが可能だからです。流れのスケールに応じた局所的な渦のエンハンスも可能となります。このように、今回のパーティクルの考え方が多くの特徴的な挙動を実現しています。具体的な処理の流れキーアイデア1,2を基に、以下のような流れの処理をフレーム毎に行います。用いて、高解像度の密度を流動させて、その結果をレンダリングします。Velは次のフレームへ継承されることで時間的な連続性が保たれます。パーティクルも継承され、速度場へ様々な処理を行いながらライフを終えたものは消滅します。本手法によって、高解像度の純粋なSIMの約半分程度に計算コストを下げることが可能です。利点として例えば以下が挙げられます。純粋な高解像度SIMでは通常、低解像度SIMの動きに合わせるために多くのイテレーション(試行錯誤の繰り返しの回数)が必要になりますが、本手法は低解像度SIMの挙動に比較的一致させることが出来ます。よって、純粋なSIMに比べてイテレーション回数を大幅に少なくできます。一時的なキャッシュの削減そのため、イテレーション中の一時キャッシュも膨大な蓄積量にならずに済みます。自己参照的に低解像度SIMの高周波成分を利用する大きな長所として、生成した詳細と低解像度SIMとの「親和性」が高くなる点があります。空間的なズレや時間的断続性については問題がなくなります。※一方で、他の高解像度SIMの結果を利用するようなデータベース手法を仮に考えるとき、類似したSIMからの学習が必要となります。学習データの低解像度SIMへの親和性に十分な注意が必要となります低解像度のSIMの高周波成分を利用するというアイデア低解像度SIMの低周波成分はもとの挙動を変えてしまう可能性がありますが、低解像度SIMの「高周波成分」であれば基本的にそのようなことはありません。この高周波成分をパーティクルと複合的に処理して様々な複雑な挙動を作り出せた点が、今回の新発想の核となる部分になっています。※時間的にも比較的長く、そして空間的にも広い意味で流れの「相関関係」が表現できて、より自然でリアルな挙動が実現出来る事になります解像度が高くない場合の問題点アップレゾ後の解像度があまり高くない場合、計算した詳細成分をグリッドで表現出来なくなる事があります。※一方で、低解像度SIMについて解像度がそもそもかなり高い場合は、充分なグリッドがあれば最終的な詳細表現がさらに向上することも期待できますその他の結果DFでの研究開発において、前回の時点の手法と今回の手法について比較した結果が以下です。※劣化無しの綺麗な状態で見たい方はコチラ今回の手法では、前回の手法のように特定の挙動に偏ってしまうこともありません。複数の流れを重ね合わせたような線形挙動ではなく、時間や空間的な変化やその連続性をより考慮する形で、より動的で複雑な詳細を生成できている(非線形な挙動に近づいた、非定常的な流れを近似)ことが分かると思います。詳細の流れが不自然にすぐ減衰することもなく、徐々にスケールが小さくなりながら、渦が自然に微細な成分になっていく挙動も確認できると思います。以下は流動させる密度の濃さを変えて比較したものです。左の方が密度が少し濃いことで詳細が強調されています。左:少し濃い密度、右:もとの密度(どちらも本手法を用いた結果で125フレーム目)今回の提案手法の効果についての参考に、以下の既存手法の高解像度化例もご覧ください。Simulations(著者の公式動画、2:15ごろから3次元の例あり)この結果では元々の解像度が低いため、最終的に得られる解像度はそれほど高くありません。[x,y,z]=[600,600,600]といった高い解像度でも今回のようにアップレゾの有効性を示した手法はほぼ前例がない事からも、本手法の効果が分かると思います。まとめと今後コストが膨大になる圧力計算を行わずに高解像度の純粋なSIMに近づける方法のため、生成できる挙動や物理的な正確さにどうしても限界は存在します。パーティクルに着眼したキーアイデア1、2を新規に考案することで、時間や空間的な変化やその連続性をより考慮する形で、動的な挙動をもった複雑な詳細を新たに生成出来るようになりました。本手法の特徴であるパーティクルが速度を流動させる空間を効果的に利用することで、特徴的な詳細の存在する領域に特化した形でディテール計算を行えるようにもなっています。パーティクルを応用した本アイデアは、他にも多くの拡張可能性を持つ考え方であると言えます。今後は、たとえば次のようなことが考えられると思います。『発展研究の可能性』アップレゾのみならず、詳細生成手法として汎用化する新たな種類の流体挙動(高解像度SIM特有のものも含めて)を表現するような処理を追加する解像度アップによる挙動の向上を超える、流体の物理表現の追求を目指す今回の結果で様々な拡張や将来性を持ったアイデアを提示できたと考えており、今後も関連研究を続けたいと思っています。公開している全ての手法・コードの有用性、安全性について、当方は一切の保証を与えるものではありません。これらのコードを使用したことによって引き起こる直接的、間接的な損害に対し、当方は一切責任を負うものではありません。自己責任でご使用ください。(※必須):Website:Comment:コメントは承認制ですので、即時に反映されません。上に表示された文字を入力してください。月別アーカイブ2018年5月2017年1月2月3月4月6月10月11月2016年1月2月3月4月5月6月7月8月10月11月12月2015年1月2月3月4月5月6月7月8月9月10月11月12月2014年1月2月3月4月5月6月7月8月9月10月11月12月2013年1月2月3月4月5月6月7月8月9月10月11月12月2012年2月3月4月5月6月7月8月9月10月11月12月2011年1月2月3月4月5月6月7月8月9月10月11月12月2010年12月Footer。