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