
概要 📖 – 形状の種類を変換する
Convert POPは、入力ジオメトリの既存プリミティブを別の種類のプリミティブ (Triangles / Line Strips / Points 等) に変換する POPです。Quads → Triangles の三角形化、Line Strips ↔ Lines の相互変換、Close/Open Line Strips のループ切替、Keep Points のポイント抽出など、下流処理の形式要件に合わせてプリミティブタイプを揃える役割を担います。
主な用途 🎯
- Quads を Triangles に変換してトライアングルベースのレンダラ・シェーダに渡す
- Line Strips と Lines の相互変換で下流処理 (描画モード) の要求形式に合わせる
- Triangle / Quad / Line を Line Strips に集約してワイヤーフレーム表示用ジオメトリを生成
- Close Line Strips / Open Line Strips でラインストリップのループ状態を切替
- Keep Points, Delete Primitives でプリミティブを破棄しポイントクラウド状態に戻す
データフロー 🔄
入力: 既存プリミティブを持つジオメトリ
↓
変換タイプ (Convert メニュー) を選択
↓
出力: 別タイプのプリミティブに置換されたジオメトリ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Convert Page 📋
Convert .convert 🔄
入力ジオメトリのプリミティブまたはポイントに適用する変換操作を決定するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| None | .none |
変換を行わず入力をそのまま出力 (バイパス相当) |
| Keep Points, Delete Primitives | .deleteprims |
すべてのプリミティブを破棄しポイントのみを残す (ポイントクラウド状態に戻す) |
| Points to Point Primitives | .topointprims |
各ポイントを独立したポイントプリミティブに変換 (プリミティブを持たないポイント群に明示的な Point 型を付与) |
| Line Strips to Lines | .linestripstolines |
連続したラインストリップを 2 点ずつ独立した線分プリミティブに分解 |
| Triangle, Quads and Lines to Line Strips | .tolinestrips |
Triangles / Quadrilaterals / Lines をラインストリップに集約 (ワイヤーフレーム表現や軽量パス化に有効) |
| Quads to Triangles | .quadstotriangles |
四角形プリミティブを 2 つの三角形に分割 (トライアングルベースのレンダラ・シェーダに渡す前段として使用) |
| Close Line Strips | .closelinestrips |
オープンなラインストリップを閉じてループ状 (始端と終端を接続) に変換 |
| Open Line Strips | .openlinestrips |
閉じたラインストリップを開いて非ループ状 (始端と終端の接続を切断) に変換 |
Common Page 🔧
Bypass .bypass 🚫
POP の処理をスキップして入力をパススルーする設定:
- オン: 最初の入力 (input1) をそのまま出力にパススルー、POP 内部の処理を無効化
- 用途: デバッグ時に特定 POP の効果を一時的に外して比較する際に使用
Free Extra GPU Memory .freeextragpumem 🧠
蓄積した GPU メモリの解放:
- Free Extra GPU Memory パルス: 出力ポイント数が増減を繰り返した際に確保されたままの GPU メモリを明示的に解放するパルスパラメータ
- 用途: 大規模パーティクル系で出力サイズが大きく変動した後、未使用メモリを返却して VRAM を節約
Delete Input Attributes .delinputattrs 🗑️
出力属性の絞り込みパターン:
- Delete Input Attributes パターン: 出力に残したい属性名のパターン (例:
P N Cd) を指定。指定外の属性は破棄される - 用途: 下流で不要な属性を切り落として分岐ブランチを軽量化、メモリ・帯域を節約
実践アイデア 💡
Example 1: Quads を Triangles に変換してレンダーに渡す 🔺
Grid POP → Connectivity POP (Connectivity=quads) → Convert POP (Convert=quadstotriangles) → Render TOP
Grid POP + Connectivity POP で生成した Quadrilaterals サーフェスを Convert POP で三角形に分割し、トライアングルベースのレンダラ・シェーダで安定描画できる形に揃える基本フロー。
- Grid POP で 2 次元ポイント配列を生成
- Connectivity POP の Connectivity を
quadsに設定して四角形サーフェスを構成 - Convert POP の Convert を
quadstotrianglesに設定 - Render TOP を接続してマテリアルを割当て
- 三角形ベースのサーフェスが描画されることを確認
Example 2: オープンパスを Close Line Strips でループ化 🔁
Curve POP → Convert POP (Convert=closelinestrips) → Render TOP
Curve POP 等で生成したオープンなラインストリップを Convert POP の Close Line Strips モードで始端と終端を繋ぎ、閉じたループパス (リング・ポリゴン輪郭等) として下流に渡す用途。
- Curve POP 等でオープンなラインストリップを生成
- Convert POP の Convert を
closelinestripsに設定 - Render TOP で始端と終端が接続された閉ループとして描画されることを確認
Example 3: プリミティブを破棄してポイントクラウド再利用 ✨
Box POP → Convert POP (Convert=deleteprims) → Particle POP → Render TOP
Box POP 等のサーフェス出力から Convert POP の Keep Points, Delete Primitives でプリミティブを破棄してポイントクラウド状態に戻し、ポイントを Particle POP の発生源として再利用するワークフロー。
- Box POP 等のサーフェス系 POP で初期ジオメトリを生成
- Convert POP の Convert を
deleteprimsに設定 (プリミティブ破棄、ポイントのみ残存) - Particle POP の入力に接続してポイントを発生源として利用
- Render TOP でパーティクルが元サーフェスのポイント位置から発生することを確認
関連オペレータ 🔗
類似機能OP 🔍
- Connectivity POP — Convert がプリミティブの「タイプ変換」を行うのに対し、Connectivity は接続情報を持たないポイントから「新規プリミティブを生成」する
- Convert SOP — SOP 系の同等オペレータ。CPU 側 SOP ワークフローでのプリミティブタイプ変換を担う
組み合わせ推奨OP 🔄
- Grid POP — 2 次元ポイント配列の生成元、Connectivity → Convert の前段入力として典型
- Connectivity POP — 新規プリミティブを構成した直後に Convert でタイプ変換するチェーンが頻出
- POP to SOP — Convert でタイプ整形したジオメトリを SOP ワークフローに引き渡し
- Curve POP — オープンパスを生成し Convert の Close Line Strips でループ化する組合せが頻出
前処理・後処理POP 🎯
Info POP情報 📊
Convert POP は Info CHOP 経由で出力ジオメトリの統計情報を取得できます。
POP固有情報 ✨
num_verts: POP に含まれる頂点 (vertex) 数num_points: POP に含まれるポイント数num_prims: POP に含まれるプリミティブ数
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間 (ミリ秒)cook_frame: 最後にクックされたフレーム番号cook_abs_frame: 最後にクックされた絶対フレーム番号 (アプリケーション起動からの累積)cook_start_time: 最後のクック開始時刻 (ミリ秒)cook_end_time: 最後のクック終了時刻 (ミリ秒)cooked_this_frame: 現フレームでクックされたか (0 / 1)warnings: 警告数errors: エラー数
POP 汎用情報 (Info CHOP 経由) 📊
num_points: 出力ジオメトリのポイント数num_prims: 変換後のプリミティブ数 (Quads → Triangles なら入力の約 2 倍、Keep Points, Delete Primitives なら 0)num_point_attribs: 出力ジオメトリのポイント属性数num_vertex_attribs: 出力ジオメトリの頂点属性数num_prim_attribs: 出力ジオメトリのプリミティブ属性数gpu_memory_used: この POP が使用している GPU メモリ量
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: Convert を切替えても出力が変わらない / プリミティブ数が同じ
✅ Solution:
- 入力ジオメトリに変換元のプリミティブタイプが存在するか確認 (例:
quadstotrianglesは Quadrilaterals が入力に無いと無効) - Info CHOP で
num_primsを変換前後で比較し、想定通り増減しているか検証 - 前段に Connectivity POP を挟んで意図した接続タイプ (Quads / Line Strips 等) を確実に構成
❌ Problem: Quads to Triangles でプリミティブ数が想定の倍にならない
✅ Solution:
- 入力プリミティブが本当に Quadrilaterals か Info CHOP で確認 (Triangle 等は変換対象外)
- Connectivity POP で
quads接続を選択して 4 点ずつの Quadrilaterals を構成しているか確認 - 下流の Render TOP がトライアングル描画モードに対応しているか確認
❌ Problem: Close Line Strips で始端と終端が繋がらない / 視覚的に閉じない
✅ Solution:
- 入力プリミティブが Line Strips であることを確認 (Lines だと先に
tolinestripsで集約が必要) - 始端と終端のポイント座標が大きく離れている場合、見た目上の長い接続線が発生するため上流で座標を近接させる
- 閉じた状態で再オープンが必要なら
openlinestripsを別の Convert POP で適用
❌ Problem: Keep Points, Delete Primitives 後に下流の Render TOP が描画されない
✅ Solution:
- プリミティブが破棄されているためマテリアル描画は不可、Particle POP 等ポイント前提のオペレータに繋ぐ
- サーフェスとして再描画したい場合は後段に Connectivity POP を挟んで再度プリミティブを生成
- Common Page の Delete Input Attributes で必要な属性 (P / N / Cd 等) が誤って破棄されていないか確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Convert POP
- POP 概要 (Points, Vertices and Primitives in POPs)
- Connectivity POP (新規プリミティブ生成、Convert の前段に頻出)
- Convert SOP (SOP 系の同等オペレータ)

