比較バージョン

キー

  • この行は追加されました。
  • この行は削除されました。
  • 書式設定が変更されました。

チャンネル(フィールドまたはボリューム)は、特定の物理特性、例えば圧力や速度、距離、煙の濃度などを表す値が含まれた3Dボリュームです。チャンネルは、各ポイントの値が数学関数に基づく場合(: E_Sphere ノード)は陰的に、値が3Dグリッドの値から補間されている場合(: シミュレーションエレメントや読み込まれたキャッシュ)は離散的になります。

チャンネルは、Nukeで直接可視化したり、レンダリングすることができるほか、Eddyや他のツールでの後処理向けにOpenVDBボリュームとしてエクスポートおよびインポートすることができます。

アンカー
scalar-channels
scalar-channels

スカラーチャンネル

スカラーチャンネルは、空間の各ポイントで1つの浮動小数点小数値を保存します。スカラーチャンネルのシミュレーションの例としては、温度や圧力、密度などがあります。

アンカー
signed-distance-channels
signed-distance-channels

符号付き距離チャンネル

(Signed Distance FieldsまたはSDFともよく呼ばれる) 符号付き距離チャンネルは、サーフェスを表現するために使用することができるタイプのチャンネルです。

SDFは、ジオメトリの表面上で一番近い点との符号付き距離を格納する空間内の各点によって、間接的にジオメトリの表面に陰的な幾何学的表現を行います。ジオメトリの表現が複雑すぎるように見えますが、SDFには、ジオメトリの変形や衝突を高速に検知することができる特性がいくつかあり、SDFをシミュレーションにうまく適合させます。

Eddyでは、SDFは、Mesh to Volumeノード向けに使用するメッシュや、ノードを使用してメッシュから、もしくはParticle to Volumeノードによるパーティクルから生成することができます。シンプルな形状のチャンネルノードノードを使用してパーティクルからSDFを生成することができます。シンプルな形状のチャンネルノード (例:E_Sphere, E_Box) もSDFチャンネルを出力します。


情報
titleご注意

Eddyでは、SDFはジオメトリの表面の内側は負の値、外側は正の値を持つという慣例を使用します。

...

情報
titleご注意

修正/歪曲されたSDFチャンネルを可視化する場合、Eddyは、チャンネルをサーフェスとして可視化すべきかどうか、自動的に判断できないことがあります。その場合、「Force SDF」チェックボックスにチェックを入れて、SDFジオメトリとしてデータを変換するように、Eddyに指示を出す必要があります。

...

アンカー
vector-channels
vector-channels

ベクトルチャンネル

ベクトルチャンネルは、空間の各ポイントで3つの浮動小数点小数値を保存します。ベクトルチャンネルの例としては、速度、渦度、カラーなどがあります。

アンカー
vector-channel-transformations
vector-channel-transformations

ベクトルチャンネルのトランスフォーム

ベクトルチャンネルにトランスフォームを適用する場合(: 回転やスケール)、各ポイントのベクトルの値も変換する必要があります。例えば、速度チャンネルを回転させると、速度値自体の方向も回転します。ノードは、可能であれば、トランスフォームタイプを自動的に決定しますが、時には手動で指定する必要があり、上書きすることができます。

...

  • Vector: デフォルトのトランスフォームタイプです。ベクトル値は、適用されたトランスフォームにより回転し、スケールします。速度, フォース, 方向チャンネルは、すべてこの方法でトランスフォームする必要があります。
  • Normal: 法線ベクトルは、標準のベクトルと同じ方法で回転により影響を受けますが、スケール時は挙動が異なります。これは、 E_MeshToVolume ノードによりメッシュからボクセル化される法線ベクトルチャンネルに使用されたり、E_FiniteDifferenceノードから計算された勾配に使用されます。
  • Coordinate: 座標ベクトルは、トランスフォームによる影響を受けません。これは、カラーチャンネルやテクスチャ座標チャンネルなどに使用されます。

...

アンカー
channel-sets
channel-sets

Channel Sets

Eddyのチャンネルセットは、単なるチャンネルの集まりで、各チャンネルには名前が与えられています。チャンネルセットは、elements, cache loadersまたはvoxelizersのような複数のチャンネルを生成するいろいろなノードから出力されます。

チャンネルセットから個別のチャンネルを抽出するには、E_Channel ノードを使用します。

アンカー
channel-set-widget
channel-set-widget

Channel Setのウィジェット

チャンネルセットのウィジェットは、チャンネルセットを出力するノードのほとんどのプロパティパネルに表示されます。これにより、個別のチャンネルでいくつかのプロパティを指定したり、デフォルトのチャンネル定義を追加することができます。これは、E_CacheLoaderノードに表示されているウィジェットです。

E_CacheLoaderに表示されているChannel Setのウィジェット

...

  • 選択チェックボックスにより、チャンネルを出力チャンネルセットに表示するかどうかを制御します。
  • Name: チャンネルの名前です。これは、 個々のチャンネルを抽出するためにE_Channelノードで指定する必要があるものです。
  • T: スカラーやベクトルのようなチャンネルのタイプです。
  • type: ベクトルチャンネルのトランスフォームタイプです。ベクトルチャンネルのトランスフォームを参照してください。
  • Value: チャンネルのデフォルト値です。
  • Interpolator: 離散チャンネルをサンプリングする際に使用する補間です。
  • Exists: 読み込み中のキャッシュにチャンネルが存在するかどうかを表示します。キャッシュに存在しないチャンネルは、デフォルトチャンネルに置き換えられます。

...

アンカー
interpolators
interpolators

Interpolators

離散的な3Dグリッドから自身の値をサンプリングするチャンネルでは、補間方法を指定する必要があります。補間は、グリッドで隣接する値をどのように組み合わせて最終値を生成するかを記述します。

  • Trilinear: 最もシンプルで高速な補間方法です。これはデフォルトで、推奨された安全な選択肢です。
  • B-Spline: このタイプは、他の三次補間より少し速いトリキュービック補間ですが、チャンネルに多くのスムージングを施してくれます。
  • Tricubic: これは標準のトリキュービック補間です。この方法は、Trilinearより速度は落ちますが、B-Splineの過度なスムージングを適用しなくても滑らかな結果が生成されます。Tricubicはデータをオーバーシュートすることがあります。
  • Monotonic tricubic: これは、モノトニックなトリキュービック補間のバージョンのため、データのオーバーシュートオーバーシュートは発生しません。
  • High order: これは、Eddyのカスタムの高次補間です。Tricubicより速く、トリリニアより滑らかな結果を生成しますが、Tricubicほど滑らかにはなりません。この方法では通常、データのオーバーシュートオーバーシュートは発生しません。
  • Clamped high order:これは、データのオーバーシュートが発生しないようにするために、滑らかさを少し犠牲にするこれは、データのオーバーシュートが発生しないようにするために、滑らかさを少し犠牲にするHigh order補間のバージョンです。
情報
titleご注意
補間によって、既知のデータポイント間にある空間の値を推定します。それらの場所での「本当」の値がわからないため、空間内の値は近似値となります。したがって、補間方法の選択は、知覚されるデータの品質に微妙に影響を与えることがあります。Trilinearは保守的で良好な選択ですので、デフォルトになっています。知覚される品質の改善は、他の補間方法を使用することで達成することができますが、通常、それと引き換えに計算時間が増加します。

...

情報
titleご注意
補間モードは、チャンネルを入力として使用するノード、例えば シェーダーノードの速度および知覚される品質に影響を与えるため、レンダリングに影響します。

アンカー
choosing-interpolation-method
choosing-interpolation-method

補間方法の選択

使用に最適な補間は、残念ながら問題にもよりますが、滑らかな結果を確保する必要がない限り、一般的にはTrilinearを使用します。滑らかな結果を確保したい場合は、High orderの方法を推奨します。Trilinearでは満足な結果が得られず、High orderでは遅すぎる場合、B-Spline, TricubicまたはMonotonic tricubicを使用すると、速度と品質間の妥協を図ることができます。

アンカー
interpolation-overshoots
interpolation-overshoots

補間のオーバーシュート

非線形補間では、データのオーバーシュートまたはアンダーシュートが発生するおそれがあります。これはつまり、既知の2つのデータポイント、例えば、01の間の値を推定する場合、推定値は、0より小さい、または1より大きくなることがあります。つまり、値の区間の外側にある値が補間されるということです。この現象は、補間されるデータの値が急激に変化し、問題となる可能性のある領域で発生します。補間される値が密度などを表している場合、補間によってこの状況では無効になる0未満の値が生成されることがあります。

SDFチャンネルを補間する場合と同様に、オーバーシュートを発生させる補間方法は、角のようなシャープな形状の近くにあるジオメトリを歪曲させることがあります。

...

アンカー
compositing-operations
compositing-operations

合成操作

TODO作成中: マスクする、マスクの反転、最小/最大、加減の例

アンカー
sdf-compositing
sdf-compositing

SDFの合成

TODO作成中: 最小/最大のSDF挙動の例