31
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

TouchDesigner Advent Calendar 2019Advent Calendar 2019

Day 22

TouchDesignerのパフォーマンス測定

Last updated at Posted at 2019-12-22

サンプルファイル

SOPレベルのジオメトリ操作には注意!

/project1/TRANSFORM_SOP_OR_GEO

Image

たとえば、↑ のようなネットワークがあったとします。片方はSOPレベルで回転をさせていて、もう片方は同じ操作を Geometry COMP で行っています。

こういう事をしたい時には絶対に Geometry COMP でトランスフォームをするべきです

なぜなのかは、Dialogs > Performance Monitor を選択して、Performance Monitorを見てみるとわかります。また F2 キーでも開くことができます。

Image

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

Image

次に、こういったネットワークがあったとします。

Noise CHOP で2000サンプル弱のxyzを生成しているものですが、Info CHOPcook_time を比較してみるとノイズのタイプによって生成時間が4倍ほど違うのがわかります。

マニュアルを見てみると、デフォルトの SparseHermite に比べてクオリティが高いがCPU時間がかかるというような記述がありました。Noise CHOP も結構サンプル数の多いものを作りがちなので、パフォーマンスが気になってきたらノイズタイプ Hermite に変更して、その上で作り込んでいったほうがフレームレートを維持する上でよいと思います。

また、CPUやGPUのcook timeはオペレーターを中クリックした時に出るウィンドウでも確認できます。簡易的な確認にはこちらを使うとよいでしょう。

Image

Probe

/project1/PROBE

PaletteTools > probe を使うともっとグラフィカルにネットワークの負荷状態を知ることができます。probe を配置して、パラメーターウィンドウの Open を押すとprobeのウィンドウを開くことができます。

Image

probe のウィンドウではネットワークエディタを模した図形が表示されており、時間がかかったりメモリ使用率の高いものがより赤く表示されるようになっています。

Image

各オペレーターを模した四角形を左クリックするとその中のネットワークに移動、中クリックでパラメーターを表示、右クリックで実際のオペレーターを別ウィンドウで表示、といった操作方法になっています。

まとめ

TouchDesigner上で行なえるパフォーマンス測定の手法をいくつか紹介してきました。

個人的にはシステム全体に対する負荷がわかりやすいので Performance Monitor を一番よく使っています。

ネットワークエディターを開いたままだとそれも含めてのプロファイリングになってしまうので、ちゃんと計測をする時には Performe Mode にした上で計測を行う必要がありますが、それでも F1 を押した後に F2 を押すだけなので非常に楽に計測を行うことができます。

中クリックでの表示は、Base COMP でまとめたときにそれらの処理全体でどれぐらいの負荷がかかっているかなどを知る時に便利です。

Probeはグラフィカルでわかりやすいのですが、それ自体の負荷がけっこうあるのでCPU/GPU時間の計測にはあまり向いていないのではないかと思っています。使用メモリ量の多い部分を探すのには非常にいい手法です。

パフォーマンス測定ひとつとっても色々な調べかたがあります。用途に応じて使いわけて、FPS警察に逮捕されないように頑張りましょう。

31
12
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?