POPの基礎 1 ストリーム


こんにちは。篠島です。

今回はPOPについて凄く簡単な説明しようと思います。

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

 

Geometryの中でPOPと打つと2種類のPOP Networkが作れます。POP Network – Old というのは名前の通り昔のPOPです。POP Networkは新しいPOPで、基本的には特に理由が無い限りは新しい方のPOPを使います。

POP Network – Old はSOPレベルで処理されているため、パーティクルを再生した時に前のフレームがキャッシュされません。なのでタイムスライダを動かして前のフレームのデータを調べるにはいちいちデータをBgeoファイルにして書き出さないと行けません。

新しい方のPOP NetworkはDOP内で計算されているために、キャッシュでのプレイバックが可能です。マルチスレッドに対応し、メモリも有効に活用でき、高速で大量のパーティクルの計算が可能です。

POP Networkを作るとデフォルトで下のようなネットワークが自動的に作られます。TabメニューでPOPと名前の付いているノード達は右側にあるラインに繋ぎます。逆に言うと、このラインにPOPではない普通のWind Forceなどは繋げることは出来ません。

Selection_424Selection_413

 

POPを使うのに重要なコンセプトとしてストリームというものがあります。パーティクルを発生するノードは POP Source、POP Location、POP Replicateの3種類がありますが、これらはパーティクルを発生させる際にストリームというグループを作ります。

試しにPOP Locationを2つ使って簡単なネットワークを作ったのが下の図です。見て分かる通りPOP Locationノードが2つMergeノードに繋がっています。

Selection_416

 

どれでも良いのでノードを真ん中クリックして詳細を見てみると、stream_poplocation1とstream_poplocation2というグループが作られ、()の中にポイント数が書かれています。POP LocationノードのStreamを見てみると、$OSというストリームが作られているのがわかります。$OSというのはノードの名前を表す変数です。

Selection_417 Selection_418

 

POP Location1の下にPOP Fan Coneノードを下のように繋いでみます。Fanは右側に配置します。すると、POP Location1から発生したパーティクルのみが影響を受けます。これはPOP Fan ConeノードがPOP Location1のストリームに繋げられているからです。

Selection_426

POP Fan Cone を2つのストリームに影響を与えるようにするには、Mergeノードの下にPOP Fan Coneを繋げます。

Selection_429

 

POPノードがどのように動作するかはネットワークのノードの流れに従っているのでネットワークを見ただけでどのパーティクルがどう動くのかが分かりやすいかと思います。