Houdini 20.0 シェルフツール

Simple GPU Torch shelf tool

GPU上で完全にシミュレーション可能な松明を作成します。

On this page
ビューポート内のPyroシミュレーション。カラー空間: ACES, Voxels Size: 0.005。

概要

このシェルフツールは、GPU上でシミュレーションを実行できるようにPyro SolverMinimal OpenCL Solve を使用した非常に単純な松明セットアップを作成します。 これによって、できるだけ高速にシミュレーションを実行し、シミュレーション中にライブでパラメータ制御することができます。 これを実現するためには、ソルバの一部の機能を無効にする必要があります。

Minimal OpenCL Solve

Pyro Solver SOPには Minimal OpenCL 計算を実行する機能があります。 この機能は非常に速くプロトタイプを組むのに役立ちます。 このオプションは Simulation Type ドロップダウンメニューの General タブにあります。 これはシミュレーションの実行中にパラメータをインタラクティブに操作することができるので、シミュレーションの効果に素早くフィードバックを反映させることができます。

このオプションを選択すると、すべてのシミュレーションデータがビデオメモリ内に残せるようにするためにソルバの一部の機能が無効になり、 Use OpenCL が有効になっている時にのみ必要になる負荷の重いコピーが回避されます。

Tip

シミュレーション中にパラメータを調整している時にソルバインターフェスが更新されるようにするには、 Edit メニューの Live Parameter Display during Playback を有効にしてください。

Tip

Pyro Solver SOPCenter パラメータをアニメーションさせることで、シミュレーションコンテナを動かすことができます。 例えば、これによって、炎をシミュレーションしながら移動する松明のワールド空間の動きを追跡することができます。

高速にシミュレーションを生成するために、 Minimal OpenCL はOpenCLデバイスを使用し、以下の制限事項が課されます。

  • シミュレーションのキャッシュ化が無効になります。つまり、タイムラインをスクラブさせて保存結果を確認することができません。

  • Advection-Reflection には対応していません。

  • Denseシミュレーションしか実行できません。

  • コンテナの動的なサイズ変更が無効になります。 Bound タブで静的なサイズを設定する必要があります。

  • ソルバは CFL Condition に基づいた動的なサブステップを行わなくなります。

  • ソーシングとコリダー対応に制限がかかります。どちらもフレーム範囲を指定する必要があり、ソルバはシミュレーション全体でこれらの入力ソースをループさせます。さらに、コリダーは必ず(collisionという名前の)符号付き距離フィールドと(vという名前の)Velocityフィールドに変換しなければなりません。

さらに以下の処理によってパフォーマンスを上げることができます:

  • ルックデブの間はパフォーマンスを維持できるようにPyro Bake Volume SOPノードの使用を控えてください。

  • Pyro Solver SOPノードのFieldsタブとShapeタブでガイドを無効にしてください: Fields ▸ Field Guides ▸ Field Guide ▸ No GuideShape ▸ Shape Guides ▸ No Guide

  • できるだけループソースを使用してください。

  • マイクロソルバを使用する場合、ボトルネックを回避する Use OpenCL オプションが有効になっているかどうか確認してください。

Tip

パフォーマンスとソルバ設定をテストする場合は、Simple GPU Ground Explosionがうってつけです。

Note

ビューポートのレンダリングを担っているGPUをOpenCLデバイスに設定すると最高のパフォーマンスが得られます。

Simple GPU Torchを理解する

このシェルフツールは、数個のノードだけで構成されたノードネットワークを作成します。

  1. sphereは、炎が着く松明の形状を生成します。

  2. pyrosourceは、Pyroソース用のアトリビュートを生成します。

  3. attribnoise_densityは、ポイントをボリュームソースにラスター化する前に、その生成されたdensityアトリビュートをさらに修正します。

  4. attribadjustvector_velocityは、松明シミュレーションの初期Velocityを生成するためのvアトリビュートを作成します。

  5. volumerasterizeattributesは、ソースポイントを受け取り、それらのPointアトリビュートをボリュームに変換します。 ラスター化されたdensityボリュームとvボリュームがPyroシミュレーションを駆動させます。

  6. pyrosolverは、シミュレーションを実行します。 このノードのパラメータは、シミュレーションの物理学的な挙動に最も影響を与えます。 Solving タブと Look タブの大部分のパラメータをシミュレーションの実行中にインタラクティブに調整することができます。

    Note

    入力のボリュームソースの位置は、時間が経過しても原点に固定されたままになっています。 松明ソースのアニメーションは、animate_transformノードで駆動されています。 このanimate_transformノードは、pyrosolverSource Location Offset パラメータを駆動させています。

    Tip

    Edit メニューの Live Parameter Display during Playback を有効にすることで、シミュレーション中にパラメータを調整した時にソルバインターフェースが更新されるようにすることができます。

    To...Do this

    コンテナサイズを大きくする

    Setup タブ下の Center パラメータと Max Size パラメータを変更します。

    コンテナが大きいほどシミュレーションは遅くなり、ビデオメモリを消費するようになります。

    ソースの周期を変更する

    Sourcing タブ下の Cycle Length パラメータを変更します。

    このパラメータは、ソースが再スタートされる頻度を制御します。 この値を下げると、途切れなく続く爆発のバーストの時間が短くなります。

シェルフツール

シェルフの使い方

テクニカル