※記事製作時のバージョン:Blender2.92
先日(2021年2月25日)リリースされたBlender2.92で、流体シミュレーションのシミュレーション方式に「APIC」が追加されました。
これまでは「FLIP」の一種類だけでしたが、今後は状況に応じて使い分けられるようになります。
今回は速報的な番外編として、FLIPとAPICについて簡単に調べてみました。
「FLIP」と「APIC」って、何?
流体シミュレーションの計算処理方法の種類です。
FLIP(フリップ)は Fluid Implicit Particle、
APIC(エーピック)は Affine Particle In Cell です。
詳しい仕組みに興味のある方は、記事末尾の参考リンクをおすすめします。
FLIPとAPICは「ドメイン > 流体 > シミュレーション方式」から切り替えられます。
シミュレーション設定は、FLIPとAPIC共通です。
なので、各パラメーターの設定はそのままに、FLIPとAPICを切り替えるだけで済みます。
FLIPとAPICの切り替えをシミュレーションに反映するには、再ベイクが必要です。
※FLIP専用のパラメーターもありますが、それらはFLIPを選択した時だけ表示され、APICには影響しません。
なお、FLIPとAPICが選択できるのは液体のシミュレーションだけです。
ドメインタイプが気体の時は、「シミュレーション方式」の項目が非表示になります。
液体の動きの違い
検証 1
FLIPは飛沫がたくさん飛び、波立ちも強く、派手な動きになります。
APICは飛沫も波立ちもおとなしく、控えめな感じになります。
また、大きい波が早く静まるので、「液体の塊をただ落とすだけ」のような単純なシーンでは、液体が重く、もったりした感じになります。
APICにはもう一つ、「大きい液体の塊が落下する時に、溶けるように変形しながらゆっくりと落ちていく」という奇妙な特徴があります。
上の動画のようにフローがジオメトリの場合や、流入口の「フローを使用」を途中でOFFにする場合などで、違和感のある動きになります。
検証 2
水をぶっかけるようなダイナミックなシーンは、FLIPが向いています。
検証 3
液体の細かい動きを表現する場合は、APICが向いています。
上の動画では
- 注水のふるまい
- 器からあふれる水の動き
- 水が床の上を流れる速度感
など、全体的にAPICの方が「もっともらしく」表現されています。
※液体の細かい動きを表現するには、分割の解像度を充分に大きくする必要があります。上の動画は分割の解像度128です。
これは推測ですが、APICはパーティクル同士がお互いに押し合うような相互作用をしていると思います。
パーティクルが進もうとする先に別のパーティクルがいると、それ以上進めなくなっているようです(たとえ空中であっても)。
この相互作用が良い方に働くのが水しぶきのリアルさであり、悪い方に働くのが大きい液体の塊が落下する時の不自然さと、大きい波が早く静まりすぎるということではないかと思います。
これらはあくまで推測なので、詳しい方がいたら教えてください。
検証 4
FLIPに比べAPICは、細かい波や渦が綺麗に保たれます。
上のシーンをパーティクル表示で見ると、APICは渦が綺麗に保たれているのが分かります。
FLIPは渦がすぐにバラけて、ランダム性の強い流れになっています。
リリースノート(Dev:JA/Ref/Release Notes/2.92/Physics - wiki)に
FLIP より APIC の方がノイズが少ないまま、渦をうまく維持する
とあるのは、この事のようです。
ベイク時間とキャッシュサイズについて
「水しぶきの多い方」が、ベイク時間もキャッシュサイズも大きくなります。
FLIPとAPIC、どちらの水しぶきが多くなるかは、シーンによります。
というわけで、ざっと触ったところでは、以上のような特徴がありました。
私自身まだまだ使い込んではいないので速報的な内容ですが、使い分けの参考にしてください。
※念のため補足。今回の見本動画は、すべてEEVEEでレンダリングしています。
以上、FRIPとAPICでした。
※添削・構成アドバイス:相方
参考サイト
Material Point Method (物質点法)の雑な解説 ~基本理論編~ - 重み元帥によるねこにっき
Material Point Method (物質点法)の雑な解説 ~APIC編~ - 重み元帥によるねこにっき
CG-ARTS教育リポート 日本と世界のCG教育のいまが見える