TouchDesignerでGeometry Instancingを使う

TouchDesignerでGeometry Instancingを使う

Geometry Instancingとは


簡単に説明すると画面に大量にオブジェクトを描画したい時に、CPU側からの描画呼び出しは1回で同じメッシュのコピーを大量に描画するテクニックです。
これによりドローコールを大幅に抑えることができます。
ゲームではパーティクルや草、木など画面上に大量に必要なものに使われます。

Geometry Instancingの準備


Geometry Instancingを使うためには「大量に生成する元となるメッシュデータ」と「生成させる位置となる座標データ」の2つが必要になります。

この画像では「teapotオブジェクト」を「boxの頂点座標の位置」にinstancingしています。
これを「草」に変えて、生成位置を「平面上のランダムな位置」にすればフィールドに大量の草を生やすことができるというわけです。

TouchDesingerでの使い方


3Dオブジェクトの描画準備

まず始めにGeometry OPCamear OPLight OPRender TOPを配置し、3Dオブジェクト(torus)を描画します。
これは「大量生成する元となるメッシュデータ」になります。

ここまでで基本である3Dオブジェクトの描画ができたと思います。

Geometry OPの設定

次にGeometry OPを選択し、InstanceタブInstancingをオンにします。
画面上に何も表示されなくなりますが、これは「生成する位置となる座標データ」を指定していないからです。

生成する位置となる座標データの用意

今回はShere SOPを使用します。
頂点座標を取得するためにSOP to CHOPにSphere SOPを設定。
これで下準備終了です。

Geometry OPにSOP to CHOPで取得した値を反映

あとはGeometry TOPのInstanceタブを画像のように設定。
Render TOP上で描画結果を確認するとtorusが大きいために重なって表示されているので、大きさを適度なサイズに変更します。

完成


このようにGeometry Instancingを使って「ドーナッツ(torus)」を「球面上の位置」に大量生成することができました。

動きをつける


Transformの値を変えることによって動きをつけることもできます。
次回はGLSL(シェーダー)を使ってGeometry Instancingで生成したオブジェクトに動きをつけたいと思います。

Leave a Comment

©2018 haquxx