On this page |
これは非常に強力なローレベルノードで、VEXに詳しい熟練者がコードを使ってピクセル値を調整することができます。
このノードはVolume Wrangle SOPに相当しますが、入力レイヤを、それにバインドされたボリュームに自動変換します。
すべてのレイヤは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
floatボリュームに呼応するMonoレイヤ。
UV
vector2ボリュームに呼応するUVレイヤ。
RGB
ベクトルボリュームに呼応するRGBレイヤ。
RGBA
vector4ボリュームに呼応するRGBAレイヤ。
ID
intボリュームに呼応するIDレイヤ。
Geometry
指定した内部入力にバインドされるジオメトリ入力。
Binding Name
レイヤの名前。 これは、バインドで指定する名前であり、VEXスニペットから参照される名前です。
Input Index
ジオメトリ入力はこのインデックスで参照することができます。
例えば2
の場合、ポイントの数を読み込むにはnpoints(2)
を使用します。
0
は、暗黙レイヤ入力用に確保されています。
入力 ¶
input1
Wrangleに送信される入力。
出力 ¶
output1
Wrangleで処理された入力。
See also |