No More Retake

3DCG屋さん向けTips&Referenceサイト

メニュー

Houdini:水を貯める

Houdini Advect Calendar2018 20日目の記事に投稿します。

ビンに水を貯めました。FLIPです。
メッシュ化してません。

テーマと問題点

この作例のテーマは、「水を貯める」です。
HoudiniのFLIPでは、水を貯めようとすると、なぜか水かさが減ります。

こんな感じ。

満タンまで、入れても半分くらいに減っちゃってます。
減る割合は一様ではなく、パーティクル一粒のサイズ(Particle Separation)が小さいほど、また水の動きが大きいほど、よく減ります。
原因は理解していませんが、このように器の中に水を貯めようとすると必ず減ります。

そもそも、本当に水は減っているのでしょうか?

Node Infoで調べてみると、水が溜まってからのパーティクル数は変わっていませんでした。(Reseedの設定は無効にしてパーティクル数を数えています)

どうやら、水のパーティクル数が減っているのではなく、ギュッと圧縮されてパーティクル間の密度が高くなったことで、結果的に水かさが減ったように見えているようです。

なぜこうなるのでしょうね? わかりませぬ。

ともかく困るので、対策します。

対策

いくつか対応策は考えられますが、ここではFLIP Solver(DOP)のRessedingパラメータを使いました。

Reseedingは、密度が増えすぎた所のパーティクルを削除したり、逆に足りないパーティクルを追加してくれたりする機能です。

マニュアル曰く、「パーティクル数を大きく下げたボクセル内に新しいパーティクルを作成し、 パーティクルが非常に密集したボクセル内のパーティクルを削除します」とのこと。
また、「Reseeding の値を非常に高い値に設定すると、非常に飛沫のある流体シミュレーション内で時間と共にボリュームが増える流体にすることができます」ともあるので、今回も使えそうです。

デフォルトで有効になっているのですが、それでも水かさが減ってしまうので、もっと攻めたパラメータ設定にしてみます。

パラメータ”Surface Oversampling”=10に、”Birth Threshold=1″設定しました。

設定の意味としては、”Birth Threshold”を高くしパーティクルが追加されやすくして、”Surface Oversampling”を高くして追加されるパーティクルの数を増やしています。
(多分その認識であっているはず。Reseedの効果について実はふわっとした理解のまま使ってます)

この設定で、シミュレーションしたのがこちら。

水かさが減るのが解消できました。
めでたし、めでたし。

「注意」
ここで試した方法は、万能ではないと思っています。
水の動きに緩急があるような場合では、水が増えたり減ったりしておかしなことになりそうですし。

何年か寝て待てばSideFXが万能薬を開発してくれると信じてます。


Houdini Advent Calender2018 12月20日枠
https://qiita.com/advent-calendar/2018/houdini

関連記事

  1. 2014.07.14

    Houdini:○○OP

コメントをお待ちしております

このサイトについて

3DCG Tipsサイト。Houdiniの記事が多めです。

RSS

follow us in feedly

アンケート

どのようなタイプのセミナを好みますか?(複数可)

View Results

Loading ... Loading ...

言語切り替え

  • English (United States)
  • 日本語

Archives

  • 2019 (2)
  • 2018 (33)
  • 2017 (29)
  • 2016 (36)
  • 2015 (64)
  • 2014 (54)
  • 2013 (60)
  • 2012 (55)

スポンサードリンク