SOPレベルのジオメトリ操作には注意!
/project1/TRANSFORM_SOP_OR_GEO
たとえば、↑ のようなネットワークがあったとします。片方はSOPレベルで回転をさせていて、もう片方は同じ操作を Geometry COMP
で行っています。
こういう事をしたい時には絶対に Geometry COMP
でトランスフォームをするべきです
なぜなのかは、Dialogs > Performance Monitor
を選択して、Performance Monitorを見てみるとわかります。また F2
キーでも開くことができます。
Analyse
と書いてあるボタンを押すと、現在TouchDesignerで実行中のネットワークのCPU利用状況の結果(プロファイル)が表示されます。注目すべきポイントは transform1
のSOPの部分です。
Performance Monitor
では、CPU時間がかかったものほど緑色のバーの幅が広くなるようになっています。スクロールしてみてもこのオペレーターはとくにCPU時間が長いことがわかります。
Copying Input SOP Data
と書かれた所で 1.7ms、さらに transform
の処理に 0.8ms かかっています。
一方、Geometry COMP
では同様の操作をしているにもかかわらずCPU時間のかかっているオペレーターはほとんど見つけられません。
これは、Geometry COMP
の変形はレンダリング時、モデルビュー行列によって行われているからです。モデルビュー行列での変形はSOPをレンダリングする時には必ず起きる計算で、そこに対して回転をかけているので実質オーバーヘッド無く変形が行われています。
一方、SOPレベルで変形をしてしまうと毎フレームポイントのコピーと変形が行われ、さらにSOPの情報をGPUにアップロードする部分まで時間がかかっています。
こういった問題が起こるのは頂点数の多いSOPを操作する時に限りますが、普段からアニメーションをする時にはなるべく Geometry COMP
側でやるようにするとよいと思います。
CHOPのノイズタイプについて
/project1/NOISE_TYPE
次に、こういったネットワークがあったとします。
Noise CHOP
で2000サンプル弱のxyzを生成しているものですが、Info CHOP
で cook_time
を比較してみるとノイズのタイプによって生成時間が4倍ほど違うのがわかります。
マニュアルを見てみると、デフォルトの Sparse
は Hermite
に比べてクオリティが高いがCPU時間がかかるというような記述がありました。Noise CHOP
も結構サンプル数の多いものを作りがちなので、パフォーマンスが気になってきたらノイズタイプ Hermite
に変更して、その上で作り込んでいったほうがフレームレートを維持する上でよいと思います。
また、CPUやGPUのcook timeはオペレーターを中クリックした時に出るウィンドウでも確認できます。簡易的な確認にはこちらを使うとよいでしょう。
Probe
/project1/PROBE
Palette
の Tools > probe
を使うともっとグラフィカルにネットワークの負荷状態を知ることができます。probe
を配置して、パラメーターウィンドウの Open
を押すとprobeのウィンドウを開くことができます。
probe
のウィンドウではネットワークエディタを模した図形が表示されており、時間がかかったりメモリ使用率の高いものがより赤く表示されるようになっています。
各オペレーターを模した四角形を左クリックするとその中のネットワークに移動、中クリックでパラメーターを表示、右クリックで実際のオペレーターを別ウィンドウで表示、といった操作方法になっています。
まとめ
TouchDesigner上で行なえるパフォーマンス測定の手法をいくつか紹介してきました。
個人的にはシステム全体に対する負荷がわかりやすいので Performance Monitor
を一番よく使っています。
ネットワークエディターを開いたままだとそれも含めてのプロファイリングになってしまうので、ちゃんと計測をする時には Performe Mode
にした上で計測を行う必要がありますが、それでも F1
を押した後に F2
を押すだけなので非常に楽に計測を行うことができます。
中クリックでの表示は、Base COMP
でまとめたときにそれらの処理全体でどれぐらいの負荷がかかっているかなどを知る時に便利です。
Probeはグラフィカルでわかりやすいのですが、それ自体の負荷がけっこうあるのでCPU/GPU時間の計測にはあまり向いていないのではないかと思っています。使用メモリ量の多い部分を探すのには非常にいい手法です。
パフォーマンス測定ひとつとっても色々な調べかたがあります。用途に応じて使いわけて、FPS警察に逮捕されないように頑張りましょう。