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