FumeFXのシミュレーションをアンダーサンプリングする
概要
このチュートリアルは、Velocity SourceとしてKrakatoa PRT FumeFXオブジェクトを中間で使用してSitni Sati社のFumeFXの流体シミュレーションをアンダーサンプリングする方法について説明します。
このチュートリアルは、Krakatoa MX v2.1.8以上をインストールしている必要があります。(無料)評価版でも可能です。
基本的なシーン
前回のStokeとFumeFXのチュートリアルで作成して保存したテストシーンから続きを始めます。
追加の設定
前回のチュートリアルでは、FumeFXシミュレーションをサンプリングし、希望どおりのパーティクルを生成するDistribution sourceとしてKrakatoa PRT FumeFXオブジェクトをすでに使用しました。これは、FumeFXオブジェクトをStokeMX Distributionソースとして直接的に選択された際には提供されなかった、FumeFXに関連するすべてのチャンネルへのアクセスも提供しています。
今回は、シミュレーションのすべてのボクセルをサンプリングし、Stokeにベロシティフィールドを提供するために、Krakatoa PRT FumeFXを使用します。これは、Velocity Field From Particlesを使用してグリッドの間隔を変化させたり速度のデータをぼかしたりすることができます。
- PRT FumeFXオブジェクトを再表示し、モディファイアをすべて除去します。
- シーン上でStokeオブジェクトを選択します。
- Distributionロールアウトで、FumeFX001のみDistributionオブジェクトとしてチェックし、他のソースはチェックをはずします。
- Velocity Fieldロールアウトで、以前使用していたFumeFX001のチェックをはずします。
- Pick…ボタンをクリックして前回のチュートリアルで作成したPRTFume _FumeFX001 _001 オブジェクトを選択(pick)するか、By Name…ボタンを使用してリストから選択します。
- リストに新しく登録したものを選択し、シーンのフレームレートに30 FPSを使用していると想定して、Velocity Scaleを30.0にします。これは、私たちが毎秒単位として速度の値を必要としますが、PRT FumeFXオブジェクトは毎フレーム単位として速度の値を提供するからです。
- シミュレーションを行ったときのFumeFXのgrid sizeが4.0だったため、Grid Spacingを4.0に変更します。
- 新しく登録したものを右クリックし、メニューからSelect Object…を選択します。
- Seed In Smokeオプションにチェックし、Minimum値を0.0に設定します。
- グリッドを作成するためJitter Positionのチェックをはずします。
- PRT FumeFXオブジェクトを再度隠します。
- SIMULATEボタンを押します。
結果:パーティクルが、各FumeFXボクセルの中央部でPRT FumeFXオブジェクトによって作成され、関連づいた速度は、グリッド上で弾けて、Stokeパーティクルに引き継がれます。
下部のアニメーションでは、赤いパーティクルが独立したシミュレーションの実行で保存された実際のFumeFXの速度を使用して作成したStokeシミュレーションを、PRT Loaderでロードしたものを表しています。
黄色のパーティクルは、PRT FumeFXパーティクルの速度を使用しているStokeシミュレーションです。前者のシミュレーションアプローチは、FumeFXグリッドの任意の点での速度値を補完することができ、後者は別々のパーティクルのサンプルを使用しているので、ふたつは非常に似ていますが同一ではありません。
そのパーティクルアプローチの精度で高めることが可能だろうか?とあなたはお尋ねになるかもしれません。
ある程度は賛成ですが、事実上意味がありません。PRT FumeFXは、サブディビジョンを使用して、より多くのパーティクルを作成できます。Subdivide Regionを2に設定すると、グリッドの間隔を1.0より低くすることができますが、結果は近いものの同一ではなく、シミュレーションの時間はずっと長くなります。
FumeFXのシミュレーションをアンダーサンプリングする
では、FumeFXシミュレーションの実際の間隔(Spacing)よりも大きなGrid Spacingの値を使用して、入ってくるデータにブラーをかける方法について見ていきます。
- Grid Spacingを12.0に変更します。
- SIMULATEを再度押します。
結果:黄色のパーティクルが新しい大きなグリッドにしたがって動き、パーティクルの動作にとても小さなディテールが現れます。
より一層少ないディテールを生成するために、例えば。Grid Spacing を24.0の単位まで増やせます。
ダイバージェンスの流体運動を作成する
FumeFXは、空気中での燃料の燃焼をシミュレーションし、その結果ベロシティフィールドは、(本当に非圧縮性である液体のための)ダイバージェンスフリーである必要はありません。
上記のアプローチを利用して、かなり異なるパーティクルの動作を生成するために、サンプリングしたFumeFX Velocity FieldでCreate Fluid Motion機能を使用することができます。
- Grid Spacingを4.0に戻します。
- Create Fluid Motionオプションをチェックします。
- SIMULATEボタンを押します。
結果:本来のFumeFX Velocity Fieldによって移動しているオリジナルの赤いパーティクルに比べてパーティクルはかなり異なった動きをしています。



