グループの所でアトリビュートを直で指定


こんにちは、篠島です。

SOPを特定のグループに対して処理したい場合は、Groupノード等でグループを作ると思いますが、@ を使って特定のアトリビュートのみに適用させることが可能です。

今回のサンプル・ファイルです。
attributeGroup.zip

例えば Color SOP を使い、Groupの所でY座標の位置が0.4以上のポイントを赤くしたい場合は下のようになります。

@P.y>0.4

ここで注意したいのが、@P.y > 0.4 の様に途中でスペースを入れてはならないのと、Group Typeでどのタイプのアトリビュートかをきちんと指定してやらないとうまく行きません。この場合はPointアトリビュートを読み込んでいるので、Pointsを指定しています。

1

 

例えば、ペイントした部分のポイントを上に持ち上げる要な場合も同様にできます。ベクトルデータの特定のデータにアクセスするときは .x など使います。[0] を使うことも可能です。

@Cd.x>0.5
@Cd[0]>0.5

2

 

このテクニックはパーティクルにも使えます。

3

 

個人的にはアトリビュートを直接指定するよりもGroupノードを付けたほうが、ネットワークを見た時に何をしているのか分かりやすいので良いと思います。簡単なテストなどをパパッと作りたい時にはこのテクニックが重宝します。