2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Houdini】Point操作逆引き

Last updated at Posted at 2022-09-19

Houdiniでモジュールアセットを活用したプロシージャルモデリングをする場合、Point操作に慣れている必要があると思ったので、まとめました。

Primitive外周のポイントを取得する

GroupノードのBase Group中にあるEnableオフにする。
Groopノードの"Unshared Edges"のオプションをオンにする。

image.png

異なるジオメトリで、同じ位置にあるPointをグループ化する。

Group Transferノードで実現できます。
Primitive Groups、Edge Groupsはオフにします。
Distance Thresholdは要調整。

均等にPointがあるPrimitive 両端と真ん中にポイントがあるPrimitive 位置が重なった場所だけをグループ化
image.png image.png image.png

image.png

Primitiveの真ん中のpointを取得

image.png

  • Assembleノードの"Create Packed Geometry"をオン
  • Addノードの"Delete Geometry But Keep Points"をオン
元の状態 結果
image.png image.png

Ponint番号の並びを逆にする

SortノードのPoint SortをRandomに指定

Box内にあるPointだけを取得

GroupノードのKeep in Bounding Regions(Bouding Type:Bounding Object)を選択する。

image.png

交互にPointを取得したい

Group Rangeノードで2つに1つを選ぶようにする。
image.png

ランダムなPointを1つ取得したい

SortノードでRandomに並び替え後、Groupノードで0番目を取得する。
image.png

Pointの両端を取得したい

  • Group Expressionノードを操作
  • GroupTypeをPointと指定。
  • VexPressionのプリセットから”PointValence”を選択
  • プリセットは入力フィールドの▼ボタンクリックで出てきます。
  • 入力フィールド右端のスライダーボタンをクリック
  • Valenceスライダーが表示されるので、Valenceを1に指定。
  • Valence=2で、両端以外をグループ化できる。

PointValenceでフィールドに入力される以下のエクスプレッションについて。

neighbourcount(0,@ptnum)==chi("valence")

neighbourcount()は、つながっているポイント数を返します。
両端の隣接ポイント数は当然1だから、valence=1で取得できるわけです。

image.png

Pointのノーマル方向を変更する

Attribute Wrangleノードで以下のように方向を指定する。

@N=set(0,0,1);
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?