メッシュのサイズを変更して小さくした状態ですが、メッシュの解像度の指標になるボックスが 不自然な大きさ、形状で表示されています。 特に、縦横比を変更したときに表示が妙なことになっています。 実際にシミュレーションを行うと、ドメインを Resolution Divisions (分割の解像度)で分割した、 (意図通りの)解像度で計算されているようなのですが、指標の表示が変なので不安になります… メッシュではなく、オブジェクトとしてのサイズを変更した方が安心です。 |
流入口(選択されているキューブ)の下に、受け皿になるオブジェクトを配置しました。 キッチンシンク程度のスケールを想定して、ドメインのサイズは 30cm x 30cm x 20cm 程度にしてあります。 また、計算速度を速くするため、解像度は48とやや下げています。 今回、程よく簡単な形状として、図のような切り込みのある容器を作成しました。 また、スケール比較用に、フリー素材を使って実寸の瓶と缶を近くに置きました。 (受け皿は、Domainの内部に作成してあります。Domainはワイヤーで表示しました) | |
受け皿にも流体(Fluid)の設定をします。 タイプをエフェクター(Effector)、エフェクタータイプをコリジョン(Collision = 衝突)にします。 閉じた形状のメッシュであれば、これで流体に対する障害物として機能するはずです。 | |
また、ドメインの設定で、流体の拡散(Diffusion)を設定します。 用語がガス用の用語になっていますが、流体の場合は粘性に相当するものです。 水のプリセットを選び、ドメインのサイズが(今回は長辺30cmなので)0.3と設定します。 | |
前頁通りの手順で、そのほかの設定(キャッシュの保存先やモード、初期速度など)を行い、 シミュレーションを実行すると、容器に液体がたまり溢れ出しました。 |
Meshパネル中の生成メッシュ(Mesh Generator)で選択します。 具体的な差を実際に試して確認はしていないのですが、マニュアルの記述では Final 設定は Preview 設定に比べて、 より細かいオプション設定をすることができ、より Smooth である(そしてその分重い)としています。 |
XYZ方向沿ったシミュレーションのメッシュの形に水面の形が影響されているのがわかります。 (旧システムでのシミュレーション例) | |||||||||
Mantaflow によるシミュレーションは、より改善されたアルゴリズムなので、 縞は目立ちづらくなっていますが、やはり若干メッシュの形状が見て取れます。 なにより、斜面を流れる水の動きがぎこちなくなっています。 (注)以前に旧システムで上の図を作った時のパラメータを残していないかったので、同一な条件ではないです。
| この問題は、Liquid の設定中の Fractional Obstacles (分割障害物)をチェックすることで、 | 軽減することはできますが、あくまで軽減で解決はできません。 (斜面が階段状に処理される部分を細かくできるようです)
| Mantaflow によるシミュレーションは、ドメインを傾けるとシミュレーションのメッシュも傾むくようです。 | そこで、板とドメインの傾きを合わせてみます。
| シミュレーション自体も、表示に関しても、より滑らかに自然になりました。 |
| 傾いた水路に障害物などを配置した場合です。 | マテリアルも水(ガラス)に設定してCycles でレンダリングしたものです。 メッシュが充分に細かければ、なかなかの結果になりました。 この場合は、水路が2.5m程度の長さを想定して、長さ方向に192メッシュの細かさの計算になっています。 水滴が大きいところが不自然ではありますが、なかなか水の雰囲気が出ています。 |
同じ1つの流入口(初速度をx軸方向に0.3与えています)と、 2つのドメイン(z軸回りに90度回転させています)を使って2つの流体シミュレーションを走らせて重ねて表示しました。(*) 流入する向きも90度回転しており、初速度がグローバル座標ではなくローカル座標で評価されていることが分かります。 ドメインを回転させて使う場合には、ちょっと気を付けておきたい挙動です。 |