オブジェクトごとにランダムなテクスチャを割り当てたい

   Views 1052   Replies 1   Subscribers 0
User Avatar
Member
1 posts
Joined: 5月 2023
Offline
Houdini初心者です。

個別のオブジェクトごとにランダムでテクスチャを割り当てたいのですが、どうすればいいでしょうか。

例えばCopy to Pointでビルのようなモデルをアトリビュートを使ってランダムに配置して、それにランダムにテクスチャを割り当てるという感じです。
アトリビュートを作るところまではいけましたが、マテリアルの部分がよくわかりません。
マテリアルはMaterialXを使っています。

ちなみにMAYAで同様に作ったときはSwitchノードを使いましたが、HoudiniでもSwithのようなノードを使うのですか?

Attachments:
build01.jpg (828.1 KB)
スクリーンショット 2024-06-14 203613.png (827.2 KB)
スクリーンショット 2024-06-14 200600.png (83.8 KB)

User Avatar
Member
1 posts
Joined: 5月 2020
Offline
かなり前のご質問に対しての返答なのでこの質問をされた方はもしかすると解決してるかのうせいがありますが、私もこれについて困って試行錯誤したのでまとめてみたいと思います。

まず、mtlxswitchというノードを作成しますこれはMayaのswitchと同じ役割です。
signatureの項目をColorに変更してoutをmtlxstandard_surfaceノードのbase_color等に繋ぐとよいでしょう。
mtlxswitchのinにテクスチャ画像を繋げます。ここまではMayaと同じです。

では、本題。どのようにしてcopy to pointで作成したgeometryにランダムにテクスチャを割り当てるためにswitchさせるのか

まずはMtlx geometry Property Valueというノードを作成しswitchノードのwhichに繋げます。
このMtlx geometry Property Valueノードでは geometryのattributeの値を参照することができます。

つまりSOP階層側で copy to pointする際に マテリアル設定用にattributeを作成しランダムに番号を付与するようにすればよい

copy to pointノードをforeachで囲い 繰り返した回数を テクスチャのパターンの数で割るなどして 
ランダムに割り当ててみると
この問題は解決するかもしれません。

私も初心者で勉強中なので もしかするともっと良い方法があるのかもしれませんが私がわかる範囲ではこのような感じです。
  • Quick Links