フォローする

Pyro エフェクト (煙と炎)

シェルフツールを使ってシミュレーションを作成する方法をご紹介いたします。

原文はこちら:http://www.sidefx.com/docs/houdini/pyro/pyro

方法

目的... 行うこと
煙やpyroのエフェクトを作成する
  1. 煙/炎のソースとして使用するジオメトリオブジェクトを選択します。Houdiniは、pyroのソースとしてボリュームを含むあらゆる種類のジオメトリを使用できます。

  2. Pyro FXシェルフ上のいずれかのツールをクリックします。

  3. シェルフツールは3つの別々のノードセットを作成し、solver DOPを選択します。

  4. シミュレーションを表示するには、再生します。

煙/炎の最大サイズを大きくする デフォルトでは、自動サイズ変更ボックスの最大サイズはPyro / Smokeオブジェクトのサイズを反映します。 ダイナミクスネットワークでオブジェクトを選択し、PropertiesタブをクリックしてSizeparameterを設定します。
急速に変化するシミュレーションのサイズ変更を調整する resize_containerであるGas Resize Fluid Dynamicノードの[Boundary]タブで[Padding]パラメータを増やします。  シミュレーションの現在のサイズの周りに余分なスペースを追加して、リサイズノードがサイズを変更する前に急激に増加するシミュレーションがコンテナのエッジに当たらないようにします。

 

Pyro ノードネットワーク

ネットワーク 重要なノード
ソースオブジェクト内では、ソースボリュームを作成するサーフェスノードが追加されます。 Fluid source node

Pyroシミュレーションを実施するのに適したボリューム(温度と燃料)に初期ジオメトリを変換します。 このノードのパラメータを使用して、ソースボリュームなどのノイズを制御することができます。

Fluid sourcing にて多くの情報を確認可能です。

DOPネットワークでは、ツールがダイナミクスノードを設定してpyro / smokeオブジェクトを作成し、ジオメトリネットワークからソースをインポート、Pyroソルバーに接続、pyroコンテナを自動的にサイズ変更します。 Pyro/Smoke object 煙/炎オブジェクトの3D解像度、サイズ変更可能なコンテナの最大サイズ(デフォルト)、およびコンテナが両側で開いているかどうかを制御します。 また、オブジェクトの内容を視覚化するための広範なコントロールも備えています。

Pyro solver または Smoke solver(エフェクトに依存)

 
シミュレーションがどのように発展するか(熱によってどのくらいの浮力が発生するかなど)、ノイズ、炎の形状などのルールを制御します。 また、ソルバによって作成された力を視覚化するための広範囲な制御(shreddingなど)もあります。
このツールは、オブジェクトレベルの表示とレンダリングのためにシミュレーションの出力をインポートする別のオブジェクトも作成します。 DOP Import 1つのDOPインポートノードはレンダリングのためのすべてのフィールドをインポートし、もう1つはビューポートに表示するための高速の表示関連フィールドのみをインポートします。

 

 

Fields

  • Multifieldは熱(炎)と密度(煙)を可視化します。
  • ソースはシミュレーションに温度と燃料を追加します。
  • 燃料が存在し、温度がある点を上回る場合、「燃焼」が生成されます。
  • 燃焼は熱(目に見える炎)を作ります。 燃え尽きると、燃費効率が悪くなります。
  • Gas released = expansion(ガス放出=膨張)
  • 冷却速度、散逸
  • Velocity = start velocity + temperature * buoyancy(速度=開始速度+温度*浮力)
  • Advection(移流)は温度、熱、密度、燃料に影響する*

Houdiniでは、temperature = buoyancy, velocity = momentum(温度=浮力、速度=運動量)

Temperature(温度)は、シミュレーションを実行するための最も重要なフィールドの1つ(Velocityと一緒に)で、シムの振る舞いや見た目を大幅に拡張するコントロールです。レンダリングやビジュアライゼーションによく使用されるわけではありませんが、内部的には多くの力とシェイプオペレーター(Buoyancy/浮力、Shredding/破砕、Dissipation/散逸など)が発生します。

災シミュレーションを作成するとき、その制御は燃焼モデルに拡張されます。 Temperature Diffusion(温度拡散)とCooling Rate(冷却速度)はtemperature field(温度フィールド)に直接作用し、速度とシミュレートされたディテールにおけるシミュレーションの減衰を大幅に制御します。

衝突および拡張フィールド

Smoke / Pyroソルバーを使用すると、衝突フィールド(煙/災が避けるエリア)と拡張フィールド(シミュレーションに外向きの速度を加えるエリア)を追加できます。

これらのツールは、Pyroツールが燃料源として使用するのと同じSOPボリュームセットアップを作成しますが、ソルバに燃料フィールドを提供する代わりに、衝突または拡張フィールドを提供します。

目的... 行うこと
オブジェクトを衝突フィールドに変換する
  1. pyroエフェクトを作成する.

  2. エフェクトを衝突させるジオメトリオブジェクトを選択します。

  3. Populate containersのシェルフタブで,   Make Collisionをクリック

  4. コンテナを選択して(Enter)を押します。

オブジェクトをフィールドフィールドに変換する
  1. yroエフェクトを作成する.

  2. エフェクトを拡張するジオメトリオブジェクトを選択します。

  3. Populate containersシェルフタブで,  Make Collisionをクリックします。

  4. コンテナを選択して(Enter)を押します。

 

 

拡張フィールドは、フィールド内のシミュレーションに外向きの速度を追加します。 その後、その速度は移送され、連続的な外向きの力を生成します。 これは、あなたのシミュレーションを素早く爆破することができます

爆発を作成しているのであれば、それは望ましいことかもしれませんが、もっと微妙なことを望むなら、次のことを試すことができます:

  • ソルバーの後にDrag force ノードを追加して、velocity が永遠に続くのを防ぎます.

  • 拡張ソースを縮小します(Source volume DOP > Scale Source Volume)、またはアニメーションをオン/オフします。

DOPのフォースを使って煙/火を押し込むこともできます。 しかし、ソルバーのプロジェクトの非発散ステップによって、力の効果が弱められます。 拡張フィールドをソルバーへの直接入力として設定するため、ソルバは拡張フィールドをプロジェクトの非発散計算から除外することができます。

 

pyroを使用してDOPジオメトリのポイントを運ぶ方法

pyroシミュレーションのフィールドを使用して、DOPジオメトリのポイントを運ぶことができます。

  • Smokeコンテナに編集可能なジオメトリデータを添付します。 編集可能なジオメトリを作成するには、SOP Geometry DOPを使用してジオメトリをインポートし、Copy Geometry DOPを使用してジオメトリをコピーします。 次に、Apply Data DOPを使用して、ジオメトリを煙オブジェクトDOPにアタッチします。 コピーしたジオメトリのデータ名をジオメトリに設定します。

  • Pyroソルバー(3番目の緑色の入力)のAdvection入力にガス流を接続します。Gas Advect のGeometryパラメータを編集可能なジオメトリのデータ名に設定する(Geometry)Velocityフィールドをvelに設定し、Collisionフィールドを衝突に設定します。

Smoke solver vs. Pyro solver

Houdiniには、グリッドベースの煙/災シミュレーションのソルバが2つ含まれています。 Smokeソルバは、基本流体シミュレーションエンジンを実装します。 基本的な煙の効果をシミュレートしますが、火をシミュレートしません。 PyroソルバはSmokeソルバの上に構築され、災や制御を追加します。

Pyro FXシェルフタブのツールで作成されたハイレベルのエフェクトは、Pyroソルバを使用します。

Temperature diffusion(温度拡散)とviscosity(粘性)はブラー

Temperature diffusion(温度拡散)は温度フィールドでのぼけです。 増やすと、高温と低温の境界がぼやけて、ソースからシステムへの温度の拡散が増えます。

Viscosity(粘性)は速度フィールドのぼけです。 これを増やすと、シュレッディングや渦巻き(小さなピンホイールタイプの渦)などの速度変化がぼやけます。 好ましい見た目を持っていても、速度ノイズがあまりにも大きければ、それをぼかしていくために少しViscosity(粘度)を加えてみてください。

これらのコントロールはフィールドをぼかすので、高い拡散/粘度値はシステムの温度/速度を低下させ、温度/速度の高い領域(例えば、ソースの近く)と周囲の(通常はるかに大きい)領域とを平均化しているためです。

Pyroエフェクトをレンダリング

  • レンダリングする前に、コンテナの分割サイズを小さくする(つまり、解像度を上げる)ことができます。
  • マイクロポリゴンエンジン(Mantraレンダーノード>Propertiesタブ>Renderタブ>Rendering Engine)を使用してPyroエフェクトをレンダリングします。
  • ライトのシャドウパラメータ(Light object > Shadowタブ)を設定し、シャドウタイプをデプスマップシャドウ、ピクセルサンプルを2×2、シャドウクオリティを2に設定します。
  • レンダーの詳細を取得するには、レンダラーのVolume step size を小さくしてみてください(Mantraレンダリングノード>Propertiesタブ>Samplingタブ)。 レンダリングの詳細が不足している理由がPyroボリュームのコンテナが低解像度である場合、変化はありません。

0 コメント

記事コメントは受け付けていません。