流体の新アップレゾ手法(研究開発報告)
2016/12/19
皆さん、こんにちは。開発室の川田です。
過去の記事でも書いたように、DFでは流体における『新しい高解像度化手法』の研究開発を行っておりました!
今回は、その進捗をここで発表いたします。よろしくお願い致します。
▼目次
アップレゾ(高解像度化)とは
アップレゾ(高解像度化)とは、流体シミュレーション(以後、SIM)の入力データを、そのデータが持つ動きや形状を基本的に維持したまま、渦などのディテールを加えた高解像度の情報(高解像度化したSIM)に変換して出力する事です。
高解像度化の一例は以下です。
左:低解像度SIM(入力), 右:高解像度化したSIM(出力)
アップレゾの詳しい背景やこれまでの研究開発の経緯については、過去の記事を参照ください。
[DF_talk] 流体シミュレーションのアップレゾ(高解像度化)について
今回はベースとして格子(グリッド)を用いながら、パーティクルも応用した独自の『新アップレゾ手法』について説明します。グリッド法とパーティクル法の基本的な違いについては、以下を参照ください。
[DF_talk] 流体シミュレーションを使った自然現象の表現
今回の手法の結果動画
偉大なる先人達のこれまでの研究に敬意を表しながら、これまで研究開発を行って来ました。前回の記事後、高解像度化の成果として、現在では以下のような結果を得られています。
左:低解像度SIM[x,y,z]=[300,300,300], 右:アップレゾ後(本手法)[x,y,z]=[600,600,600]
左の結果は純粋なSIM結果です。また、今回の手法によるアップレゾ後の解像度は、低解像度SIMの2倍となっています。
※劣化無しの綺麗な状態で見たい方はコチラ
挙動の偏りがなく、動的かつ複雑に変化していく詳細を実現出来ていることが分かります。低解像度SIMでは表現出来ていなかった多くの情報が、高解像度SIMの圧力計算を今回特に近似することで生成出来るようになっています。
挙動の詳しい特徴については、順に説明していきます。
手法のキーアイデア1
今回の研究開発のいくつかのキーアイデアについて、その概要を説明します。数式等ではなく直感的にイメージしやすい言葉で書いたつもりですので、ぜひとも一度読んで見ていただければと思います!
キーアイデア1: 本手法では、低解像度SIM(入力)の特に高周波成分を利用し、その速度場情報をパーティクルに保持させます。そして、それを時間の経過に伴って流動させることを考えます。パーティクルの流動時に様々な処理を施すことで、グリッド計算だけの低解像度SIMにはなかった複雑な挙動のディテールを作り出します。
特に、キーアイデア1によって、本手法は次のような特徴を持つことが出来ます。
- パーティクルで渦の移動や分離等も表現することで、時間的な連続性を持った詳細を生成
- エネルギーのカスケード(段階的な状態遷移)を表現するような、動的に変化できる挙動(非定常的な流れを近似)を生成
グリッドだけでは基本的に流れの隣接情報しか扱えませんでした。グリッドだけでなく今回はパーティクルも利用することで、流れの大きさの変化や時間の経過と共に流れのかたまりが運ばれるといった表現が、より明示的に出来るようになりました。
最終的な計算結果である速度場を用いて、密度を流動させて詳細な流れを生成します。全体的なフレームワークについては、具体的な処理の流れにて図で説明しました。
『本アイデアの詳しい説明』
|
手法のキーアイデア2
キーアイデア2: 1つ目のキーアイデアで考慮する全パーティクルが流動していく領域に対して、よりスケールの小さい成分の詳細を段階的に計算します。
キーアイデア2の具体的内容は、簡潔にまとめると次のようになります。
- パーティクルの流動空間を時間と共に動的に変化させられる事に着目し、その空間に渦を擬似表現する関数を適用
- さらに、パーティクルの大きさとその速度場の強度を下げていく形で渦のエンハンスを行い、段階的な乱流の変化を表現
これによって、相互干渉の挙動を考慮した形で様々なスケールをもった渦を作り出せます。また、ここでの段階的処理によって、エネルギーが徐々に小さくなっていく渦を比較的壊すことなく、詳細を自然に生成出来ます。なぜなら、パーティクルとそのライフ情報等を応用して、時間の経過と共に渦の強度等を変化させることが可能だからです。また、流れのスケールに応じた局所的な渦のエンハンスも可能となります。このように、今回のパーティクルの考え方が多くの特徴的な挙動を実現しています。
具体的な処理の流れ
キーアイデア1,2を基に、以下のような流れの処理をフレーム毎に行います。
フレーム毎に最終生成される高解像度速度場である、グリッド情報としての High Vel(P処理) を用いて、高解像度の密度を流動させて、その結果をレンダリングします。
※低解像度SIM情報はキャッシュからフレーム毎に取得し、また、仮想 High Velは次のフレームへ継承されることで時間的な連続性が保たれます。また、パーティクルも継承され、速度場へ様々な処理を行いながらライフを終えたものは消滅します。
本手法の効果とその特徴
本手法によって、高解像度の純粋なSIMの約半分程度に計算コストを下げることが可能です。
また、利点として例えば以下が挙げられます。
- イテレーション回数の削減
純粋な高解像度SIMでは通常、低解像度SIMの動きに合わせるために多くのイテレーション(試行錯誤の繰り返しの回数)が必要になりますが、本手法は低解像度SIMの挙動に比較的一致させることが出来ます。よって、純粋なSIMに比べてイテレーション回数を大幅に少なくできます。 - 一時的なキャッシュの削減
そのため、イテレーション中の一時キャッシュも膨大な蓄積量にならずに済みます。
『本手法のアイデアの特徴』
|
その他の結果
DFでの研究開発において、前回の時点の手法と今回の手法について比較した結果が以下です。
(いずれも解像度は[x,y,z]=[600,600,600])
左:前回の時点の手法, 右:今回の手法
※劣化無しの綺麗な状態で見たい方はコチラ
今回の手法では、前回の手法のように特定の挙動に偏ってしまうこともありません。また、複数の流れを重ね合わせたような線形挙動ではなく、時間や空間的な変化やその連続性をより考慮する形で、より動的で複雑な詳細を生成できている(非線形な挙動に近づいた、非定常的な流れを近似)ことが分かると思います。詳細の流れが不自然にすぐ減衰することもなく、徐々にスケールが小さくなりながら、渦が自然に微細な成分になっていく挙動も確認できると思います。
また、以下は流動させる密度の濃さを変えて比較したものです。左の方が密度が少し濃いことで詳細が強調されています。
左:少し濃い密度、右:もとの密度(どちらも本手法を用いた結果で125フレーム目)
今回の提案手法の効果についての参考に、以下の既存手法の高解像度化例もご覧ください。
Preview-based Sampling for Controlling Gaseous Simulations(著者の公式動画、2:15ごろから3次元の例あり)
この結果では元々の解像度が低いため、最終的に得られる解像度はそれほど高くありません。[x,y,z]=[600,600,600]といった高い解像度でも今回のようにアップレゾの有効性を示した手法はほぼ前例がない事からも、本手法の効果が分かると思います。
まとめと今後
コストが膨大になる圧力計算を行わずに高解像度の純粋なSIMに近づける方法のため、生成できる挙動や物理的な正確さにどうしても限界は存在します。しかしながら、主にパーティクルに着眼したキーアイデア1、2を新規に考案することで、時間や空間的な変化やその連続性をより考慮する形で、動的な挙動をもった複雑な詳細を新たに生成出来るようになりました。
さらに、本手法の特徴であるパーティクルが速度を流動させる空間を効果的に利用することで、特徴的な詳細の存在する領域に特化した形でディテール計算を行えるようにもなっています。パーティクルを応用した本アイデアは、他にも多くの拡張可能性を持つ考え方であると言えます。
今後は、たとえば次のようなことが考えられると思います。
『発展研究の可能性』
|
今回の結果で様々な拡張や将来性を持ったアイデアを提示できたと考えており、今後も関連研究を続けたいと思っています。
最後まで記事を読んで頂き、ありがとうございました!
※免責事項※
本記事内で公開している全ての手法・コードの有用性、安全性について、当方は一切の保証を与えるものではありません。
これらのコードを使用したことによって引き起こる直接的、間接的な損害に対し、当方は一切責任を負うものではありません。
自己責任でご使用ください。
コメント
コメントフォーム