On this page

Shallow Water Solver

  • 新しく追加された Shallow Water Solver SOPノードは、特定の状況における水の挙動をシミュレーションします。典型的な例を挙げると、波紋と非砕波(Non-Breaking Waves)、池と水溜り、または、亀裂や表面の凸凹の上を流れる水です。Shallow Water Solverは、完全にHeight Fieldをベースにしています。Height Fieldは、ペインしたり、スカルプトしたり、ディスプレイスメントマップから生成することができます。このソルバは、そのHeight Fieldに含まれている高さ情報を認識して、そのような環境での水の挙動をシミュレーションします。このソルバの出力もHeight Fieldです。

  • パーティクル流体シミュレーションとは対照的に、Shallow Water Solverは2Dソルバです。この主なメリットは、ソルバのシミュレーション速度です。Shallow Water Solverを使用した巨大な地形の洪水は、パーティクルを使用するよりもはるかに高速です。また、キャッシュデータ量が大幅に小さくなり、パーティクルサーフェスメソッドを使用してメッシュを生成する必要がありません。グラスやプールのように水を注ぐようなエフェクトは、Shallow Water Solverを使用して実行することはできず、やはりパーティクルが必要です。衝突から発生するホワイトウォーター、泡、飛沫といった副次的な効果は、デフォルトでは、Shallow Water Solverで使用することはできません。

  • Shallow Water Solverは、マスクを介して制御します。マスクを使用すると、ソース、シンクの場所、フォースが適用される場所を定義することができます。カスタムVelocityフィールドを接続してシミュレーションを駆動させることも可能です。マスクは、HoudiniのHeight Field用マスク系ノード(例えば、HeightField DrawHeightField Mask by ObjectHeightField Mask by Feature)を介して適用することができます。

  • マスクの値(0-1)は、水のソース(またはシンク)の強度を決めます。0の値はシミュレーションに何の効果も与えず、1はフル強度を意味します。これを踏まえて、例えば、水がゆっくりと滴り落ちる場所にシンクを作成することができます。マスクは、静的でもアニメーションでも変形でもどちらでも構いません。アニメーションマスクと変形マスクは、フレーム毎に評価されますが、その変化が非常に速い場合には、サブステップ毎に評価させることもできます(その場合は遅いです!)。ソルバの Constraint Updates サブペインには、ソース、シンク、フォースに適した Frequency パラメータが用意されています。

  • 移動オブジェクトとの衝突から水を変位させることは可能ですが、それにはカスタムVelocityフィールドとフォースフィールドが必要になります。また、その結果の品質は、オブジェクトの速度とスケール、ソルバのサブステップなどに強く依存します。精度が高くてカスタマイズ性の高い流体とオブジェクトとの相互作用を得たいのであれば、Vellum流体またはFLIP流体を使用するのが良いです。

  • Shallow Water Solverノードの出力には、すべてのHeight Field、マスク、水のVelocityフィールドが別々のチャンネルとして含まれます。このノードの Node Info を見ることで、どのHeight Fieldが利用可能なのかを知ることができます。

オーシャン

  • ほとんどのプラットフォームでは、HoudiniはVolumeFFT SOPocean_sampleVEX関数にてIntelのMKLライブラリのFFT実装を使用するようになりました。この実装は、以前の実装よりも大規模ドメイン(例えば、 Resolution Exponent12(4K)以上のOcean Spectrum)に対して飛躍的に高速です。

  • Ocean Spectrum SOPでは、従来の Phillips に加えて新しく TMA スペクトルタイプを選択できるようになりました。これは、 Encino 波とか Tessendorf 波として広く知られています。

  • Encino波は、Christopher Horavth氏が2015年に発表した Empirical directional wave spectra for computer graphics の論文に基づいています。Christopher氏のニックネームが Blackencino です。2001年1月に、Jerry Tessendorf氏が Simulating Ocean Water の論文を発表しました。このTessendorf実装は、今でもコンピュータグラフィックスにおけるオーシャンウェーブの標準になっています。

  • TMA モードでは、 Swell パラメータは波の方向の範囲を変更して、より平行な波を生成します。 Fetch (km) パラメータは、風が大きな方向転換をすることなく、オープンウォーター上を移動する距離を定義します。これは、架空の海岸線からの距離と解釈することもできます。 SwellFetch (km) を変更することで、海岸付近の高周波な波から大海原の波のうねりといったあらゆるものをシミュレーションすることができます。 Wind を使用すれば、その波の高さと速度を調整することができます。 TMA モードでは、 Depth パラメータもより明らかに影響があります。

Karma CPUによるオーシャンのレンダリング

  • 新しく追加された Karma Ocean LOPノードは、Karma CPUレンダラーによる海のスペクトルと泡をレンダリングするのに役立ちます。海は、Small OceanシェルフツールまたはLarge Oceanシェルフツールを使用して作成することが多いです。

What’s new in Houdini 19.5