OpenVDBMesherをレベルアップしよう

X-particlesのメッシュ生成はOpenVDBMesherで行いますが、こちらの記事(x-particles(1030) ではxpSkinnerの代わりにxpOpenVDBMesherを使う)で使い方は解説していますが、デフォルトの状態では球体が大きくて液体とは言い辛い状態になります。
scene
このシーンのメッシュは、こんなに大きくなります。
デフォルトの状態
そこで今回はOpenVDBMesherのメッシュの形を整えるfilterについてご紹介します。

OpenVDBMesher

Generalタブ

OpenVDBMasher > Generalタブ > Generalタブ
ここで生成するメッシュの細かさを設定していきます。

openVDBMasher_set1
【Voxel Size】
生成されるメッシュの大きさ、小さい方が精度の高い表現になるがそれなりの処理能力が必要

【Point Radius】
パーティクルに対して生成するメッシュの半径

Point Radiusを小さくしました。

Filtersタブ

OpenVDBMasher > Generalタブ > Filtersタブ
Use Filters にチェックを入れフィルターを有効にします。
生成されるメッシュはパーティクルに対して球状に生成されますので、その球体間の距離に応じてどのような影響を与えるのかをこのフィルターで設定していきます。

filter
【Gaussian】 ガウス
【Laplacian】 ラプラシアン
【Mean】 平均
【Curvature】 曲率
【Median】 中央値
【Offset】 オフセット

フィルタの効果

Gaussian(ガウス)

ガウス関数:正規分布、電子の状態密度等で使用される、釣鐘状のグラフで表現される

f_gaussian
Mesh_gauusian

Laplacian(ラプラシアン)

ラプラス作用素:熱や流体の拡散方程式、波の伝達といった現象の表現に使用される

f_laplacian
mesh_laplacian

Mean (平均)

f_mean
Mesh_mean

Curvature (曲率)

f_curvature
Mesh_curvature

Median (中央値)

f_median
Mesh_median

Offset (オフセット)

f_offset
Mesh_offset

まとめ

液体っぽい表現には、Laplacian(ラプラシアン)を選択するのが正解のような気もしますが、物理的に正しいものが目指す演出と一致するとは限りませんのでこのように比較したデータを残しておくことで後の制作の際に参考になれば良いなと思います。流体の表現を制作する際にはどうしても時間がかかってしまうのですがこれらのトライ&エラーの積み重ねによる経験値が制作時間の短縮につながれば良いなと思います。