Help us understand the problem. What is going on with this article?

TouchDesignerのパフォーマンス測定

サンプルファイル

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警察に逮捕されないように頑張りましょう。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした