| On this page |
これは非常に強力なローレベルノードで、VEXに詳しい熟練者がコードを使ってピクセル値を調整することができます。
このノードはVolume Wrangle SOPに相当しますが、入力のレイヤまたはVDBを、それにバインドされたボリュームに自動変換します。
すべてのレイヤまたはVDBは1つのジオメトリ入力0にバインドされます。
したがって、追加のジオメトリでは、より大きい入力番号を使用する必要があります。
@Pを使用することで、処理されるピクセルの現在のワールド位置を取得することができます。
Note
VEXはOpenCLよりもかなり分かりやすいですが、それでもWrangleではなくOpenCL COPを使用することをお勧めします。 ハイレベルのジオメトリ関数にアクセスする場合は、Wrangleを使う必要があります。 WrangleはCPUノードなので、ネットワークの速度が大幅に低下する可能性があります。
構文 ¶
ピクセル値を読み込んで修正する ¶
レイヤの現行ピクセル値は、@‹layer_name›として利用可能です。
この変数を読み込んで現行値を取得したり、この変数に値を割り当てることで値を変更することができます。
VEXタイプはレイヤと同じになります。つまり、UVレイヤはvector2タイプとなり、.xと.yを持ちます。
パラメータ ¶
Volumes to Write to
レイヤ名がこのパターンに一致した場合にのみ、レイヤを修正します。 デフォルトのパターンでは、どのレイヤも修正することができます。 スニペットによって 実際に 修正されるレイヤのみをリストすることで、このノードを高速化することができます。
例えば、以下のスニペットでは、densityレイヤのみが修正されます。
temperatureレイヤは修正されず、読み込まれるだけです。
@density = @temperature;
しかし、曖昧な記述なので、このノードはdensityを修正し、なおかつtemperatureを コピー します。
このため、時間もメモリも消費されます。
これを回避するには、このパラメータをdensityに設定して、このノードがtemperatureをコピーしないようにします。
もちろん、そのためには書き込み可能なレイヤのリストを明示的に管理する必要があります。
Enforce Prototypes
スニペット内でまず型宣言として@バインドを宣言しないと、それらのバインドが使用できないようにします。
これは、アトリビュート(例えば、@Cd)と@ptnumや@Frameといった“便利”バインドのどちらにも当てはまります。例:
// バインドを宣言します。 int @ptnum; float @Frame; vector @Cd; // 宣言の後にバインドを使用します。 int pointnum = @ptnum; float red = @Cd[0] / @Frame;
@構文を使った自動バインドは便利ですが、シーンが複雑になるにつれて、@バインドのタイプミスが原因で不意に存在しないアトリビュートをバインドしてしまう危険性があります。
Evaluation Node Path
ch()などのVEX関数は、通常、このノードを基準に評価します。
ここでパスを指定すると、パス検索の開始位置を上書きすることができます。
これは、トップレベルのデジタルアセットが検索ルートになるようにデジタルアセットへ組み込む場合に役立ちます。
Export Parameters
このパターンを使ってVEXシェーダのExportオプションを上書きすることで、特定のボリュームへの書き込み回避することができます。 このパターンは、バインドされたボリュームではなくて、VEXパラメータにマッチします。 ボリュームは、引き続き読み取り用にバインドされます。
Number of Inputs ¶
Type
入力のタイプ。 レイヤ入力は、指定した名前のボリュームにバインドされます。 ジオメトリ入力は、Input Indexでアクセス可能な追加のジオメトリ入力になります。
Mono
浮動小数点ボリュームに呼応するMonoレイヤ。
UV
vector2ボリュームに呼応するUVレイヤ。
RGB
ベクトルボリュームに呼応するRGBレイヤ。
RGBA
vector4ボリュームに呼応するRGBAレイヤ。
ID
整数ボリュームに呼応するIDレイヤ。
Geometry
指定した内部入力にバインドされるジオメトリ入力。
Float VDB
浮動小数点VDBに呼応する浮動小数点VDB入力。
Vector VDB
ベクトルVDBに呼応するベクトルVDB入力。
Integer VDB
整数VDBに呼応する整数VDB入力。
Binding Name
レイヤの名前。 これは、バインドで指定する名前であり、VEXスニペットから参照される名前です。
Input Index
ジオメトリ入力はこのインデックスで参照することができます。
例えば2の場合、ポイントの数を読み込むにはnpoints(2)を使用します。
0は、暗黙レイヤ入力用に確保されています。
入力 ¶
input1
Wrangleに送信される入力。
出力 ¶
output1
Wrangleで処理された入力。
| See also |