てんちょーの技術日誌

自分がつまづいたこととかメモ

[Houdini] Vellum Constraints を読んでみた その11

概要

こちらの続きです

shop-0761.hatenablog.com

環境

OS: Windows 10
Houdini: 19.0.622
Redshift: redshift_v3.0.62 (たぶん)

一部下記で確認しています
Geforce Game Ready ドライバー 526.98 Houdini 19.0.796 (daily)

Vellum Open CL Error on new install | Forums | SideFX

読んでいく

scale_stretch_constraints

色々やっています

Attach To Geometry かつ Tangent Stiffness が有効なとき 以外

type が attachnormal のときです

@stiffness *= Stretch の Stiffiness の 乗数 をしています

Cloth かつ Enable Warp(縦糸) / Weft(横糸) が有効のとき

warpWeftScale にて、
対象の線分と materialuv 空間上でのx軸がなす角 (degree) を求め、0 ~ 90 に変換します

45度未満、以上で scale の計算式を変えています

その後、logscaleStiffness にて、
stiffness = e^(scale * log(stiffness + 1)) - 1 とします
このとき、負 or +∞ にならないよう clamp しておきます


scale_stretch_constraints に戻りまして、
stiffness を attribute で scale する場合は反映しつつ
先程と同様に logscaleStiffness も使います
(damping も 同様にここで scale しています)

Stretch の Enable Plasticaly が有効な場合、下記も scale します
(全て attribute での scale です)

  • plasticthreshold
  • plasticrate
  • plastichardening

後続の scale_bend_constraints では引数を bend のものに変えて、同じ処理をします

Tips

matrix の初期化

どうやらいくつか初期化方法があるようです

3@m1 = 1;

 \begin{pmatrix}
1&0&0\\
0&1&0\\
0&0&1
\end{pmatrix}

3@m2 = set(1, 2, 3);

 \begin{pmatrix}
1&1&1\\
2&2&2\\
3&3&3
\end{pmatrix}

3@m3 = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
3@m3 = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };

 \begin{pmatrix}
1&2&3\\
4&5&6\\
7&8&9
\end{pmatrix}

参考

www.sidefx.com

primgroupmask

パターンに一致する group名を space 区切りの文字列で取得するやつ

www.sidefx.com

まとめ

これで、 contraint の出力分まで読みました
あとは guide を読めば終わるはず...

何かあれば Twitter までお気軽にどうぞ~ twitter.com