忙しくて全く更新できていなかった。
よく使うAttribute Interpolateのメモ。
Scatter
多分これが一番有名?
Time Shift で止めたあとのジオメトリに、Scatterし
ScatterのOutput AttributesタブにあるPrim Num, Prim UVW Attributeをオンにする。
そしてAttribute InterpolateにつなぐとPointが止める前と同じ動きをする。
Ray
実はRayでも同じことができて、Pointにしたくない場合に使う。
ちょうど質問されたので意外と知らない人もいるのかもしれない。
なにかしたい処理をしたもの(画像ではColor)をRayの第一入力に、それと同じソースを第二入力につなぐ。
RayのEntityをPointsに変更し、MethodをMinimum Distanceに変更。Transform Pointsもオフにする。
Prim Num, Prim UVW Attributeをオンにする。
ただしこのときのPrim Num, Prim UVW Attributeの名前がScatterとは異なるので、Attribute InterpolateのAttribute名も変更すること。
個人的にはPointにしたくないとき以外にも、Remeshしたい場合に使う。
最近接点の動きを取るので場合によってはだめなこともあるが、ある程度うまく行く。
Intersect
こういうときにはあまり使わないけど一応紹介
こいつは結構失敗することが多い。
上記画像のように接続する。
検索する向きが必要なので、NormalノードでNをPointに作る。
Wrangleに以下を記述 2行目はメッシュの形状が変わらない場合はこの処理にしておくとうまく行く。そうでないなら不要。
vector pos,uvw; vector norm = v@N *-1; i@hitprim = intersect(1, @P, norm, pos, uvw); v@hitprimuv = uvw;
intersectのメリットは、指定した向き(今回はN)と交差するPrim NumとPrim UVWが取得できること。
メッシュの追従以外のことをするときに使うのが多い。
intersectを使わなくても、RayのMethodをProject Raysに変更し、Direction FromにN(好きなVector Attribute)を入れればほぼ同じ。
xyzdist
有名なやつ。
上記画像のように接続する。
Wrangleに以下を記述
int prim; vector uvw; float dist = xyzdist(1, @P, prim, uvw, 1); i@hitprim = prim; v@hitprimuv = uvw;
Ray(Minimum Distance)の中身もこれだと思うのでほぼ同じ動作が期待できる。
これも今回みたいな場合に使うというよりは、primuv
と併用して最近接点のアトリビュートの取得などに使う。