HOME

SDFでVolumeVOPを利用する

VolumeVOPでSDFを調整したい場合に覚えておくこと

そもそもSDFとは

SDF(Distance)ボリュームとは格子点ごとにフェースまでの距離を格納しているボリューム。
分類としてはFogボリューム、Vectorボリューム、Velocityボリュームなどと同系列の単語でありHoudiniVolume、VDB各々にSDFの形式がある。

標準ボリュームのSDFとVDBのSDF

SDF内部のデータのイメージとしてはインディゾーンさんのこのページの画像が比較的理解しやすそう

インディゾーンHoudini情報日本語ブログ/ SDFについて

(画像リンクの埋め込み)

岩のデティールの調整にSDFを使う理由

僕としては以下の理由から岩のデティール調整にはSDFの方が向いていると感じています。

  • Fogよりプレビューが早い
  • Fogよりメモリ消費が軽い(より詳細な表現ができる)
  • 表面だけで内部の情報が無いので内部に穴の開いたメッシュにならない

ボリュームの領域を拡張する

SDFは単一の平面を扱うデータであるため設定領域を超える位置にフェースが存在してしまった場合はフェースに穴が空いてしまう

領域からはみ出るとSDFに穴が開く

volume noise sdfなどは自動で拡張してくれる機能があるが、volume vopなどは自動で拡張してくれる機能が無いので領域からはみ出るノイズをかけたい場合は自分で拡張する。
VDBActive、VDBActivateSDFなどで拡張できる。

VDB Activateで拡張する

VolumeVopでSDFを調整する

VolumeVOPはデフォルトだとDensityに対しての調整しかできない状態になっている

SDFにVolume Vopを接続しただけだと変形しない

VOPの設定で参照値を変更することができるのでdensityのバインド先をsurfaceとして置き換える

densityのbind先を指定する

その他
ドキュメントを読み限り、autobindでnameで指定されたパラメータに設定されるようだけどSDFだと設定できない感じ?

fish_ball

プロシージャル魚類