>   >  Houdini Cook Book:Vol.97 Smoke Solver
Vol.97 Smoke Solver

Vol.97 Smoke Solver

03 Solver Setting

Smoke Solverのセットアップを解説します。


はじめに、先ほど作成したObjectのグループを、Multi Solver DOP【A】へ接続します。続いて、Source【B】のセッティングをします。まず、"density" と "temperature" をそれぞれ読み込んで来ます。読み込む際にGas Match Field DOP【C】を使ってField【1】をサンプリングし、もともとDataにあるField【2】とマッチさせます。次に、そのFieldに対してSOP Merge Field DOP【D】を用いて、SOP【3】からVolume【4】を読み込み、元のField【5】へ加算します【6】。これを必要なField分行い、最後にMulti Solver DOP【E】もしくはSwitich Solver DOPを使って計算させます。

次に、Advectionと浮力を設定します。Advectionは、FieldをVelocityによって進展させるためのセッティングです。まず、Gas Advect Field DOP【F】を使って、vel【7】をvel自身【8】で移流させます【9】。同じようにdensityとtemperatureもvelで移流します【G】。続いて、Gas Buoyancy DOP【H】を使って浮力を計算します。これは、tempertureによって発生した浮力をvelへ流し込む作用があります。その後、Gas Blur DOP【I】を使って、temperatureが拡散する様子をシミュレーションします。これはひとまずなくとも問題ありません。

いよいよ、Fluidの要となるGas Project Non Divergent DOP【J】とGas Project Non Divergent Multigrid DOP【K】です。これらのノードは、Divergenceをなくした状態にしてくれる機能をもっています。そもそもDivergenceとは何かと言うと、VelocityのVoxelへの入出量が不均衡になっている状態を言います。侵入してくる量に対して出力される量が少ない場合、簡単に言えば、Voxelが圧縮されたような状態になっています。

そういった不均衡をなくすことで、見た目では空気抵抗によって渦が巻いているような状態になります【10】。Divergenceが多い状態、いわばNon Divergentが効いていない状態では、そこに渦はありません【11】。Gas Repeat Solver【L】を噛ませた状態で、これらを複数回実行できるように準備しておきます。最後にGas Substep DOP【M】にまとめ、それをMulti Solver DOP【A】へ接続すれば、Smoke Solverのミニマム版の完成です。

04 Operators

主要ノードを解説します。

●SOP Merge Field DOP

今回紹介するノードは、SOP Merge Field DOPです。本編でも少ししか登場しなかったオペレータがなぜ? と思われた方もいるかと思いますが、実はこのオペレータはHoudini 17から搭載されたもので、地味ですが、今後のHoudiniにおけるFluid発展の足がかり的存在とも言えるものだと、個人的には感じています。

何を隠そう、このオペレータはFieldをSOPから直接Mergeできるすぐれものですが、本質は、VDBを直接、アクティブな領域のみを考慮して読み込むことができるのです。これにより、HoudiniのFluidのワークフローは格段に向上したと言えます。VDBを直接読めることで、Vector Fieldも直接簡単に読み込めます。

VDBを利用したワークフローは年々浸透していっていると感じます。その恩恵をFluidでももっと受けられるようにと、ひっそりと搭載されたこのDOPを眺めながら願うばかりです。


  • 「Houdini COOKBOOK +ACADEMY」
    Houdiniを基礎から楽しく学ぶオンライン講座

    公開日程:毎週金曜日公開(予定)
    価格:1,200円(税込)
    ※第一回「Houdiniの基本概念とインターフェイス」は無料公開中
    受講対象:Houdiniをこれから学びたい方、Houdiniの勉強で挫折した方など
    cgworld.jp/special/houdinicookbookacademy

その他の連載