On this page |
概要 ¶
このシェルフツールは、GPU上でシミュレーションを実行できるようにPyro Solverの Minimal 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 SOPの Center パラメータをアニメーションさせることで、シミュレーションコンテナを動かすことができます。 例えば、これによって、炎をシミュレーションしながら移動する松明のワールド空間の動きを追跡することができます。
高速にシミュレーションを生成するために、 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 Guide 、 Shape ▸ Shape Guides ▸ No Guide 。
-
できるだけループソースを使用してください。
-
マイクロソルバを使用する場合、ボトルネックを回避する Use OpenCL オプションが有効になっているかどうか確認してください。
Tip
パフォーマンスとソルバ設定をテストする場合は、Simple GPU Ground Explosionがうってつけです。
Note
ビューポートのレンダリングを担っているGPUをOpenCLデバイスに設定すると最高のパフォーマンスが得られます。
Simple GPU Torchを理解する ¶
このシェルフツールは、数個のノードだけで構成されたノードネットワークを作成します。
-
sphere
は、炎が着く松明の形状を生成します。 -
pyrosource
は、Pyroソース用のアトリビュートを生成します。 -
attribnoise_density
は、ポイントをボリュームソースにラスター化する前に、その生成されたdensity
アトリビュートをさらに修正します。 -
attribadjustvector_velocity
は、松明シミュレーションの初期Velocityを生成するためのv
アトリビュートを作成します。 -
volumerasterizeattributes
は、ソースポイントを受け取り、それらのPointアトリビュートをボリュームに変換します。 ラスター化されたdensity
ボリュームとv
ボリュームがPyroシミュレーションを駆動させます。 -
pyrosolver
は、シミュレーションを実行します。 このノードのパラメータは、シミュレーションの物理学的な挙動に最も影響を与えます。 Solving タブと Look タブの大部分のパラメータをシミュレーションの実行中にインタラクティブに調整することができます。Note
入力のボリュームソースの位置は、時間が経過しても原点に固定されたままになっています。 松明ソースのアニメーションは、
animate_transform
ノードで駆動されています。 このanimate_transform
ノードは、pyrosolver
の Source Location Offset パラメータを駆動させています。Tip
Edit メニューの Live Parameter Display during Playback を有効にすることで、シミュレーション中にパラメータを調整した時にソルバインターフェースが更新されるようにすることができます。
To... Do this コンテナサイズを大きくする
Setup タブ下の Center パラメータと Max Size パラメータを変更します。
コンテナが大きいほどシミュレーションは遅くなり、ビデオメモリを消費するようになります。
ソースの周期を変更する
Sourcing タブ下の Cycle Length パラメータを変更します。
このパラメータは、ソースが再スタートされる頻度を制御します。 この値を下げると、途切れなく続く爆発のバーストの時間が短くなります。