簡単なVOPの説明 (SOP)


こんにちは、篠島です。

VOPネットワーク内でVOPノードを組み合わせていろんな事をすることが出来ます。普通のノードはマルチスレッド対応してなかったりしますが、VOPネットワークを自分で組むとマルチスレッド対応なので処理速度も普通のノードよりも早いです。

サンプルのHipファイルです。ファイルを見ながら読んだほうがわかりやすいです。
basic_vop.zip

例えばSOPの中でジオメトリに対して処理するVOPネットワークを作るノードは以下のものがありますが、基本的にはすべて同じAttribute VOPで、パラメーターのRun OverがPointやPrimitivesと変わっていて、VOPの処理をする対象が変わってきます。もしRun Overの部分がDetail (only once) になっているとそのVOPは1回だけDetailアトリビュートに対して実行されます。

  • Attribute VOP
  • Point VOP
  • Primitive VOP
  • Vertex VOP

Selection_437

例えば下のようにラインのジオメトリがあり、ポイントの数が10だとします。ここでPoint VOPを使うと、そのVOPネットワークの処理が全てのポイント1つずつに対して行われ、合計10回実行されます。

Selection_440

試しに簡単なVOPを作ってみます。ポイントのY座標をポイント番号で置き換えたものが下になります。Pは位置を表すVectorなので、Vector to Floatで一度Floatに分解して値を変更してからFloat to VectorでVectorになおしてPに出力します。ptnumがポイント番号を意味し、これをそのままY座標の値として使っています。

Selection_451

 

VOPネットワークのGeometry VOP Global Parametersで表示されている名前ですが、Preferenceで変えることが出来ます。PreferenceのNetwork,Editor,Nodes, and Treesのところから、Show Full Input and Output Names on VOP NodesをOFFにすると、Point Numberなどの名前がptnumと省略されます。
VOPにまだ慣れない最初はフルネーム表示でも良いとは思いますが、慣れたらぜひ省略された名前を使ってください。なぜかというと、ptnumやらnumptなどはWrangleノードでそのまま使われているので、知っておくと便利です。
Selection_443Selection_447