数学

パースペクティブ射影変換行列

パースペクティブ射影変換行列はレンダリングやカリング等に使われている。カメラ視点の平面で内外判定することができるので、対象のオブジェクトがカメラに写っているかを判定するのに便利。この座標変換をHoudini上で再現してみる。Houdiniで...
Polyline

ポリラインを任意の長さで分割する

//// 線分を分割するためのフラグを立てる// RunOver:Primitives//float threshold = 5000; // 区切る長さ(m)float curveLength = primintrinsic(0, "me...
Polyline

任意の長さ以下のポリラインを消去する

//// 任意の長さ以下のポリラインを消去する// RunOver: Primitives//float threshold = 100;float curveLength = primintrinsic(0, "measuredperim...
VEX

合計が1になるn個の乱数を返す

オブジェクトを並べる時に、最初と最後の位置は確定しているけど、途中はランダムに揺らぎのある配置にしたいような目的に使う関数。// 合計が1になるn個の乱数を返すfunction float[] randomArray(int num; fl...
VEX

境界外を考慮したRay Intersect

intersect()で判定が取れない場所も平面式を使い、近いプリミティブの平面を延長した平面とみなして衝突点を計算する。//// 境界外を考慮したRay Intersect//// input0: 対象// input1: 実際のコリジョ...
SOP

Font SOP

他のノードのアトリビュートを参照するforach_begin2ノードからポイントのvariantアトリビュートを参照する`point("../foreach_begin2",0,"variant",0)`pointwrangle2ノードのD...
SOP

Switch SOP

Switch SOPの条件に書くエクスプレッション例。他ノードのアトリビュートを参照するdetail("op:../pointwrangle1/", "type", 0)アトリビュート「type」の値で分岐を分ける。空だったら選択しないnp...
Polyline

ポリラインをメッシュで区切る

メッシュ内を削除するプリミティブの三角形の内外判定をして、内包されている場合はフラグを立てる。//// 点がプリミティブ内に内包されているか判定する// RunOver: Points// input1: primitive////// 外...
SOP

Blast SOP

変数でフィルタリングできる便利なノード。X座標が0以下のものを消したい場合@P.x < 0変数の値で評価したい場合@id==”SM_Building”@value==0
Polyline

縦断勾配を計算する

ポリラインの勾配を計算する。傾きと角度それぞれをアトリビュートに追加している。ポイントの勾配を計算//// 縦断方向の勾配と角度を計算する// Run Over: Primitives//int pts[] = primpoints(0, ...
スポンサーリンク