#Houdini 18.5 建築:ノーマルの向きを整える方法

Rebuild Factoryzの礒です。
今回は建築の屋根を題材に、ジオメトリのノーマルを扱うテクニックについて書いていきたいと思います。


やりたいこと

BoxのPoint Normalの向きを直線上に整えます。

Normalの向きを整えることで、Rayを使って屋根の形に密着させるといったモデリングが可能となります。

1.Box

Boxは何もいじらずそのままです。

2.Normal

NormalノードでPrimitiveにNormalをもたせます。

3.Blast

BlastノードでZ軸方向のNormalが0のプリミティブを削除します。

4.Normal

NormalノードでPointにNormalをもたせます。
これで一直線上にNormalが設定されます。

5.Attribute Transfer

AttributesでPointsにNと入力します。
これでBlastとNormalで作ったノーマルアトリビュートをBoxに持たせることができます。

公式では、

2つのモデル間で頂点/ポイント/プリミティブ/Detailのアトリビュートを転送します。

https://www.sidefx.com/ja/docs/houdini/nodes/sop/attribtransfer.html

と書かれています。

6.ここまでのまとめ

ここまでで、特定方向のNormalを持っていなかったBoxに、Z軸方向のNormalを持たせることができました。

ここからは上の画像のように、屋根を模したGeometryにBoxをぴったりとくっつけます。

7.Box作成しGroup化

Boxを作成し、GroupノードでKeep by NormalsをEnableにチェックを入れて利用します。
DirectionはY軸に1と入力、それ以外は0。
Spread Angleを調整して、上側のPointだけを選択できるようにします。

8.VEXで点を合致させる

@P.z = 0;

Wrangleで上のコードを書きます。

9.Fuseで点を結合

VEXでは点を移動させただけなので、結合する必要があります。
なのでFuseノードで密着した点を結合します。

10.Transformで少し移動

Transformで少し移動させます。

11.RayでBoxを密着させる

RayのInput1には「5.Attribute Transfer」の出力を入れて、Input2にはRayの照射対象となるGeometryを入力します。
今回の例では三角形にしたBoxをつなぎます。

12.Merge

Mergeで2つの結果をつなげます。

13.最後にNormal

最後にNormalで面情報を整えておきます。

こんな感じで屋根の自動生成などを行う際に、メインの屋根の形状に合わせてサブ屋根の形状を変化させることができます。

終わり

では今回はこれで終わります。

投稿者: 矶信一

大家好!我在学习汉语。I like Houdini.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

%d人のブロガーが「いいね」をつけました。