Houdini勉強回。最近知った関数。
makebasis()
以下、マニュアルのURL
https://www.sidefx.com/docs/houdini/vex/functions/makebasis.html
マニュアル曰く、”指定したzaxisベクトルから正規直交基底を作成して、xaxisとyaxisの基底ベクトルを構成”、するらしい。
なんのこっちゃ。
その機能を意訳すると、あるベクトルに直行するベクトルを2つ作ってくれる関数。
例えば、{1,0,0}に対してmakebasis関数を使うと、{0,1,0}, {0,0,1}の2つのベクトルを作ってくれると。
使い方は
void makebasis(vector &xaxis, vector &yaxis, vector zaxis, vector u)
1番目と2番目の引数、xaxisとyaxisが生成されるベクトル。3番目の引数zaxisが入力として使うベクトル。4番目の引数uはupベクトルかな?yaxisがuの方向を基準になります。
例えば、L-systemで作ったラインに対して使ってあれやこれやすると、
orientが作れる。
ネットワークこんな感じ。
ラインに対してpolyframeでタンジェント方向にアトリビュートNを作り、あとWrangleでかきかき。
vector x, y; makebasis(x, y, v@N, {0,1,0}); p@orient = quaternion(set(x, y, v@N));
これでorientアトリビュートの出来上がり。
以上!
コメント