kick the base

好きな映画、音楽、マンガ、プログラム、デザイン、3DCG、ゲームのこと。

Houdini: 0-1の範囲を利用してアレコレする

様々な手法で0-1の範囲を作成する(思いついたら随時追加する)

アトリビュート、ローカル変数など0-1の範囲でおさめるとよいことが多い。(パーセントを出せたり)

また0-1の値を利用して分布をコントロールすることもできる。

本記事は個人的な備忘録となっており、補足も最低限となっています。
詳しくはHoudini: ノード備忘録 - 目次をご覧ください

ご指摘等ありましたらこちらまでお気軽にお声がけください。泣いてよろこびます。

ポイントナンバーを利用する

無茶苦茶よく使う。他の実装との組み合わせによるがVOPだと少々ノードが多いので、できればWrangleでやりたい。

@ptnum/(@numpt - 1.0)のポイントは1.0のとこで、ここでfloatキャストしている。

f:id:kickbase:20190121000846g:plain

VOPだとこう

f:id:kickbase:20190121000914j:plain

UVを利用する

UVはテクスチャ貼らなくてもよく使う。ポイントとしてはUVTexture SOPで対象をPointにすること。(デフォルトではVertex)

f:id:kickbase:20190121001121j:plain

rand関数の利用

多用する。@ptnumをシードにするのも鉄板。

f:id:kickbase:20190121001306j:plain

Sort SOPと組み合わせる

f:id:kickbase:20190121001429g:plain

Modulo VOP

VEX、h_expressionでは%。ある値を超えない値を取得し続ける。

f:id:kickbase:20190121001759g:plain

VOPの中身

f:id:kickbase:20190121001825j:plain

relbbox関数を利用する

relbboxはvectorが返ってくるが、XYZの値はそれぞれ0-1。(相対値が返る)

getbbox関数はバウンディングボックスを構成する最少と最大のベクトルを取得するものなので異なる。

作例ではジオメトリの一番高い位置と低い位置を取得して色をつけている。

f:id:kickbase:20190121002510g:plain

サンプルファイル

サンプルhip

参考リンク