On this page | |
Since | 14.5 |
概要 ¶
このノードは、入力ジオメトリのポイントに対してスニペットを実行します。
コードは、vector pos
変数を新しく変形させた位置に更新するはずです。
xform
変数をご存知であれば、オプションで、その変形の微分を使ってmatrix3 xform
変数をセットアップすることができます
(詳細は、Derivatives Methodヘルプを参照してください)。
@
スニペット構文を使用することでアトリビュートを読み込むことができます。
しかし、微分を計算する時には、ポイント番号は計算領域に対して一定であることを留意してください。
そのため、@P
の関数を記述すると、おそらく自動的にアトリビュートを回転させることができなくなることでしょう。
代わりに、局所的な位置の変形には常にpos
を使ってください。
-
スニペットからのエラー出力を確認するには、ノード上でを押してください。
-
VEX関数
ch
を使用すれば、パラメータを評価することができます。 このパスは、このノードを基準としています(ch("parm")
は、このノードのパラメータparm
を評価します)。 この関数は、現行時間で評価されます。
構文 ¶
パラメータ ¶
Code ¶
Group
プログラムを実行するための入力ジオメトリ内のポイントのサブセット。 ここを空っぽのままにすると、入力内のすべてのポイントに影響を与えます。
Group Type
グループの構成要素。
VEXpression
Pointアトリビュートを操作するVEXコードのスニペット。
@variable_name
構文を使えば、ジオメトリアトリビュートにアクセスすることができます。
Attributes to Transform
このパターンに一致するPoint/Vertexアトリビュートがトランスフォームされます。
ベクトル、法線は異なる処理が必要なので、それらのType Infoはどのようにトランスフォームすべきかを決定するために使われます。
Type Infoがpoint
またはhpoint
のアトリビュートはトランスフォームされません。
P
がこの文字列に一致する場合、プリミティブトランスフォームも回転されます。
Recompute Affected Normals
トランスフォームされたポイントとトランスフォームされていないポイントの両方を使用したポリゴンから影響を受ける法線を再計算します。
フルジオメトリや完全に繋がったコンポーネントをトランスフォームする時、その結果は、このオプションをオフにした時と同じになるはずです。
つまり、法線がトランスフォームされるだけで再計算されません。もしP
がトランスフォームされない場合は、これは何もしません。
Preserve Normal Length
法線長さを保持します。
Derivatives ¶
Method
位置ではなく、Velocityや法線といったアトリビュートをトランスフォームするには、
その変形が単一ポイントをどのように扱うかということだけではなく、その変形が空間に対してどのように変化するのかを知らなければなりません。
もしこの計算方法をご存じなら、その微分をxform
パラメータに記述し、Explicitly Set Xform
を選択することができます。
しかし通常は、その変形の挙動を計算するのは難しいことがあるので、このノードに、その変形の挙動を自動的に計算させるのがベストです。
Four Points は、その名が示すように、x、y、z方向でどのように変形が変化するのかを決定するために、追加で3つの変形を行ないます。 これは、 Central Differences より高速ですが、1つの方向だけを見るので、偏ります。
Central Differences は、変形されるポイントの近隣でバランスのとれた変化を見つけるために、追加で6つの変形を行ないます。 これは、自動計算に対しては最高の結果を生みますが、デフォーマを2倍多く呼び出さなければなりません。
Step Size
デフォーマが空間をツイストする方法を決めるために、各方向で小さいステップを取ります。 このステップサイズは、その空間のキーとなる特徴部分を取得するのに十分に小さいサイズでなければなりませんが、数値的な問題を引き起こすほどの小さいサイズにしないでください。 モデルから中間点までの間隔の半分がちょうど良いです。
Rigid Projection
自動計算または手動計算されたマトリックスでは、その中にスケールまたはシアー(せん断)のコンポーネントを持っていることがあります。
これは、それらのコンポーネントを抜き出して、そのマトリックスを強制的に回転マトリックスにします。この目的のためにpolardecomp
が使用されます。
Prevent Inversion
微分マトリックスの符号は、トランスフォームの特定の領域で反転することがあります。 これは、その反転を検出し、その符号を元に反転させるので、マトリックスの行列式は常に正です。
Bindings ¶
Attributes to Create
名前がこのパターンに一致した場合にのみアトリビュートを作成します。
デフォルトでは、アトリビュートの作成が許可されていません。
vtxnum
のようなバインドされたアトリビュートは作成されず、無視されます。
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パラメータをエクスポートした時、そのバインドされたアトリビュートが存在していない場合は、そのアトリビュートが作成されます。 このパターンを使えば、特定のアトリビュートへの書き込みや作成を回避するように、VEXシェーダのエクスポートオプションをオーバーライドすることができます。 そのパターンはVEXパラメータと一致し、バインドされたアトリビュートには一致しません。 そのアトリビュートは、読み込みに関してはバインドされたままになります。
See also |