チャンネル(フィールド)
チャンネル(フィールドまたはボリューム)は、特定の物理特性、例えば圧力や速度、距離、煙の濃度などを表す値が含まれた3Dボリュームです。チャンネルは、各ポイントの値が数学関数に基づく場合(例: E_Sphere ノード)は陰的に、値が3Dグリッドの値から補間されている場合(例: シミュレーションエレメントや読み込まれたキャッシュ)は離散的になります。
チャンネルは、Nukeで直接可視化したり、レンダリングすることができるほか、Eddyや他のツールでの後処理向けにOpenVDBボリュームとしてエクスポートおよびインポートすることができます。
スカラーチャンネル
スカラーチャンネルは、空間の各ポイントで1つの浮動小数点小数値を保存します。スカラーチャンネルのシミュレーションの例としては、温度や圧力、密度などがあります。
符号付き距離チャンネル
(Signed Distance FieldsまたはSDFともよく呼ばれる) 符号付き距離チャンネルは、サーフェスを表現するために使用することができるタイプのチャンネルです。
SDFは、ジオメトリの表面上で一番近い点との符号付き距離を格納する空間内の各点によって、間接的にジオメトリの表面に陰的な幾何学的表現を行います。ジオメトリの表現が複雑すぎるように見えますが、SDFには、ジオメトリの変形や衝突を高速に検知することができる特性がいくつかあり、SDFをシミュレーションにうまく適合させます。
Eddyでは、Mesh to Volumeノードを使用してメッシュから、もしくはParticle to Volumeノードを使用してパーティクルからSDFを生成することができます。シンプルな形状のチャンネルノード (例:E_Sphere, E_Box) もSDFチャンネルを出力します。
ご注意
Eddyでは、SDFはジオメトリの表面の内側は負の値、外側は正の値を持つという慣例を使用します。
ご注意
修正/歪曲されたSDFチャンネルを可視化する場合、Eddyは、チャンネルをサーフェスとして可視化すべきかどうか、自動的に判断できないことがあります。その場合、「Force SDF」チェックボックスにチェックを入れて、SDFジオメトリとしてデータを変換するように、Eddyに指示を出す必要があります。
フォグボリュームとして可視化されたスカラーチャンネル | 符号付き距離チャンネル |
|---|
ベクトルチャンネル
ベクトルチャンネルは、空間の各ポイントで3つの浮動小数点小数値を保存します。ベクトルチャンネルの例としては、速度、渦度、カラーなどがあります。
ベクトルチャンネルのトランスフォーム
ベクトルチャンネルにトランスフォームを適用する場合(例: 回転やスケール)、各ポイントのベクトルの値も変換する必要があります。例えば、速度チャンネルを回転させると、速度値自体の方向も回転します。ノードは、可能であれば、トランスフォームタイプを自動的に決定しますが、時には手動で指定する必要があり、上書きすることができます。
ベクトルチャンネルのトランスフォームには3つの方法があります。
Vector: デフォルトのトランスフォームタイプです。ベクトル値は、適用されたトランスフォームにより回転し、スケールします。速度, フォース, 方向チャンネルは、すべてこの方法でトランスフォームする必要があります。
Normal: 法線ベクトルは、標準のベクトルと同じ方法で回転により影響を受けますが、スケール時は挙動が異なります。これは、 E_MeshToVolume ノードによりメッシュからボクセル化される法線ベクトルチャンネルに使用されたり、E_FiniteDifferenceノードから計算された勾配に使用されます。
Coordinate: 座標ベクトルは、トランスフォームによる影響を受けません。これは、カラーチャンネルやテクスチャ座標チャンネルなどに使用されます。
ベクターチャンネル |
|---|
Channel Sets
Eddyのチャンネルセットは、単なるチャンネルの集まりで、各チャンネルには名前が与えられています。チャンネルセットは、elements, cache loadersまたはvoxelizersのような複数のチャンネルを生成するいろいろなノードから出力されます。
チャンネルセットから個別のチャンネルを抽出するには、E_Channel ノードを使用します。
Channel Setのウィジェット
チャンネルセットのウィジェットは、チャンネルセットを出力するノードのほとんどのプロパティパネルに表示されます。これにより、個別のチャンネルでいくつかのプロパティを指定したり、デフォルトのチャンネル定義を追加することができます。これは、E_CacheLoaderノードに表示されているウィジェットです。
E_CacheLoaderに表示されているChannel Setのウィジェット |
|---|
そのノードに適するものに応じて、ノードごとに異なる列が表示されます。
選択チェックボックスにより、チャンネルを出力チャンネルセットに表示するかどうかを制御します。
Name: チャンネルの名前です。これは、 個々のチャンネルを抽出するためにE_Channelノードで指定する必要があるものです。
T: スカラーやベクトルのようなチャンネルのタイプです。
type: ベクトルチャンネルのトランスフォームタイプです。ベクトルチャンネルのトランスフォームを参照してください。
Value: チャンネルのデフォルト値です。
Interpolator: 離散チャンネルをサンプリングする際に使用する補間です。
Exists: 読み込み中のキャッシュにチャンネルが存在するかどうかを表示します。キャッシュに存在しないチャンネルは、デフォルトチャンネルに置き換えられます。
新しいデフォルトチャンネルをウィジェットに追加するには、ウィジェットの下部にあるテキストボックスにチャンネル名を入力し、新しいチャンネルのタイプを選択して、+のアイコンをクリックします。
Interpolators
離散的な3Dグリッドから自身の値をサンプリングするチャンネルでは、補間方法を指定する必要があります。補間は、グリッドで隣接する値をどのように組み合わせて最終値を生成するかを記述します。
Trilinear: 最もシンプルで高速な補間方法です。これはデフォルトで、推奨された安全な選択肢です。
B-Spline: このタイプは、他の三次補間より少し速いトリキュービック補間ですが、チャンネルに多くのスムージングを施してくれます。
Tricubic: これは標準のトリキュービック補間です。この方法は、Trilinearより速度は落ちますが、B-Splineの過度なスムージングを適用しなくても滑らかな結果が生成されます。Tricubicはデータをオーバーシュートすることがあります。
Monotonic tricubic: これは、モノトニックなトリキュービック補間のバージョンのため、データのオーバーシュートは発生しません。
High order: これは、Eddyのカスタムの高次補間です。Tricubicより速く、トリリニアより滑らかな結果を生成しますが、Tricubicほど滑らかにはなりません。この方法では通常、データのオーバーシュートは発生しません。
Clamped high order:これは、データのオーバーシュートが発生しないようにするために、滑らかさを少し犠牲にするHigh order補間のバージョンです。
ご注意
補間によって、既知のデータポイント間にある空間の値を推定します。それらの場所での「本当」の値がわからないため、空間内の値は近似値となります。したがって、補間方法の選択は、知覚されるデータの品質に微妙に影響を与えることがあります。Trilinearは保守的で良好な選択ですので、デフォルトになっています。知覚される品質の改善は、他の補間方法を使用することで達成することができますが、通常、それと引き換えに計算時間が増加します。