すあまの備忘録

誰得内容の自分のための非営利目的備忘録ブログ(筆者がわかっても内緒にしてください)

Whale Jump Vol.4 -TOP Cache

vol.1-3の続き

f:id:godofsuama:20211230174913p:plain

TOPでのキャッシング

基本的にROP Fetchを使用している。

ROP Geometryで直接キャッシュできるが、一度File CacheノードをSOPに作ってそれをROP Fetchで呼び出す方式。

全部TOPで制御してしまうとSOPで調整時のキャッシュとかが取りづらいのでこの方法。

画像の青いノードがWait for Allになっていて、確実に計算を待ってから次が始まるようにはなっています。

Scheduler

今回はすべてローカルなのでlocalschedulerを使用。サーバーなどに投げるときはそれぞれ違うschedulerを使うこと。

シムが重い場合、以下の設定を必ずしておかないと安定しない。

まず、Custom Slot Countを1にし、

f:id:godofsuama:20211230180351p:plain

SchedulingもSingleにする。

f:id:godofsuama:20211230180457p:plain

これをしておかないと余力分ジョブが個別で走ってメモリを食いつぶして落ちてしまう。

軽いWedgeなどの場合はむしろこの設定をしないことによって1代でも並列で処理して高速化を図れるのでうまく設定すると良い。

なお、各FetchにSchedulerをOverrideする項目があるので、設定を変えた別のSchedulerを作って軽いシムのときはこっちーといった使い分けができる。

f:id:godofsuama:20211230180717p:plain

FLIPのCache

FLIPのCacheは更にややこしく、SOPの3つのRBD, Particle, Volume個別で取っているキャッシュを一度outにFetchし、Mergeしたのち、そのMergeをTOPのROP Fetchでキャッシュしている。

TOPで直接3つを同時にキャッシュする仕組みがないらしい?ので一度outに逃している。

out階層 f:id:godofsuama:20211230175327p:plain

このMergeノードを、TOPで読む。 f:id:godofsuama:20211230175415p:plain

こうすることで、一度の計算で3つの分岐したキャッシュを保存している。TOPに3つ並べてしまうと基本的に3つのシムがかかる。

Cache ModeはWriteで、All Frame In One Batchでシム用のROP Fetchになっている。

FLIP MeshのCache

これもFLIPと同様で一度outを経由してキャッシュ。

SurfaceとExtrude Volumeしたものを同時に保存。

White WaterのWedge

f:id:godofsuama:20211230175742p:plain

f:id:godofsuama:20211230175812p:plain

TOPのWedgeノードから、Target ParameterでLabs Mesh SliceのIndexを指定。

Wedge CountにLabs Mesh SliceのDivisionsをすべて掛けたものをいれる。

Start / EndはWedgeの0-最大の数をいれる。

SOPのFile Cacheノードで、既にLabs Mesh SliceのIndexが切り替わるとフォルダ名も切り替わるようになっているため、ROP Fetchは特にFLIPとの違いはない。 f:id:godofsuama:20211230180031p:plain