SuiTechLog

Unity,Arduino,RaspberryPiなど、モノづくり系を気ままに書き残すブログ。

Houdini Tips WrangleでUVいじったりとかしたときのメモ


Wrangleでuvをいじる

 Vertexに対してWrangleで@uv(vector2型)に直接値をいれると、その頂点のuvを直接いじることができます。

プレーンな状態であれば「uvlayout」SOP等を前にはさんでおかないと、ビューポートには反映されるもののレンダリングに反映されない現象が発生するようです。注意。

 

TextureUVの簡易確認

UV Quick Shadeをつなぎます。デフォルトのUVチェッカーがつながりますが、変更することもできます。

 

ポイント番号と頂点番号

 Wrangleで現在の頂点番号は@vtxnum。ちなみにポイント番号は@ptnum、プリミティブ番号は@primnum。

 

 

Primitiveのintrinsicアトリビュートを取得

 Primitiveにはintrinsicと名付けられた「内在的」アトリビュートがあります。Geometry Spread SheetからPrimitiveに行くと、右側intrinsicのドロップダウンに隠れています。Primitiveがもつ頂点数など色々とれます。Wrangleで取得する場合は以下の関数でとれます。

primintrinsic(0, "vertexcount", @primnum);

 

Wrangleで複数の引数からアトリビュートをひろってくる

 まず、単純にpointWrangleで@Cdとかやると取得できるのは第一引数につながったノードのアトリビュートです。じゃあ、第二引数の@Cdが取りたい場合は?以下の方法でできます。

 

@opinput1_Cd

もしくは

 point(1, “Cd”, @ptnum)

 

前者は省略系で、pointから取ってくることは省略しています。これは、WrangleノードのRun Overの値によってどこからCdをとってくるかが変わるようです。

後者は詳細タイプで、point()でポイントから、と@ptnumで指定のポイント番号から取ってくることを明示しています。

ちなみにこの場合の1は第二引数の意味です。引数は0スタートですから。

 

参考

houdini.indyzone.jp

 

textureのリピートをしない

 principal shaderだと、Textureを選択するところのすぐしたに、WrapというドロップダウンがあるのでそれをDecalか、Streakにします。Decalが良さそうです。そこまでは簡単なのですが、PC(グラボ)によって?それがビューポートに反映されないみたいです。私はこれで引っ掛かってなぜ反映されんのだ、となっておりました。