float vertexcurveparam(<geometry>geometry, int linearindex)
<geometry>
ノード(例えばWrangle SOP)のコンテキスト内で実行する時は、この引数にジオメトリの読み込み元の入力番号(0から始まります)を意味する整数を指定することができます。
別の方法として、読み込み元のジオメトリファイル(例えば、.bgeo
)を示した文字列を指定することができます。
Houdini内で実行する時は、この引数にop:/path/to/sop
参照を指定することができます。
linearindex
頂点の線形インデックス。
Examples ¶
これは、以下のコードとほぼ等価です:
int closed = primintrinsic(0, "closed", @primnum); float u = float(vertexprimindex(opname, @vtxnum)) / (closed ? @numvtx : @numvtx-1);
カーブ上の現行ポイントの位置を使用してランプを照会します:
// 現行頂点のカーブパラメータを調べて、それを使用してランプパラメータを照会します。 // ポイントに対してRun Overさせる場合、@vtxnumも動作します。 float u = vertexcurveparam(0, @vtxnum); // 単位長の空間に変換し、カーブ沿いに不均一に分布したポイントを補正します。 u = primuvconvert(0, u, @primnum, PRIMUV_UNIT_TO_UNITLEN); @width = chramp("width", u);
他のカーブ上で同じ位置にあるアトリビュート値を照会します。これは、片方のカーブ上の不均一に分布したポイントを補正します。
// ポイントに対してRun Overさせる場合、@vtxnumも動作します。 float u = vertexcurveparam(0, @vtxnum); // 単位長の空間に変換し、カーブ沿いに不均一に分布したポイントを補正します。 u = primuvconvert(0, u, @primnum, PRIMUV_UNIT_TO_UNITLEN); // 他のカーブ上の単位空間に変換します。2番目の入力から同等のカーブを使用しています。 int otherinput = 1; int otherprim = @primnum; u = primuvconvert(otherinput, u, otherprim, PRIMUV_UNITLEN_TO_UNIT); // 正しいu座標を使用して値を照会します。 @P = primuv(otherinput, "P", otherprim, u);
See also | |
prim |
|
vertex |
|