
概要 📖 – ポイント群からプリミティブを生成する接続定義
Connectivity POPは、入力ポイント群を線・三角形・四角形などのプリミティブに接続してレンダラブルなジオメトリを生成する POPです。接続方式 9 種類 + 次元インデックス指定により、グリッド・パーティクル・パスなど多様な入力からポリゴンサーフェスやワイヤーフレームを構成できます。
主な用途 🎯
- ポイント群を線・三角形・四角形等のプリミティブに接続してレンダラブルな形状に変換
- Grid POP / 行列状ポイント配列からポリゴンサーフェスやワイヤーフレーム生成
- パーティクル / Noise POP の出力ポイントを Line Strip で軌跡として可視化
- 2 次元グリッドポイントを Zig Zag / Spiral 走査で動的曲線・らせん化
- 属性のみを残すために None 接続でポイントクラウド状態を保持しながら処理を続行
データフロー 🔄
入力: ポイント属性付きジオメトリ (接続情報なし or 既存)
↓
接続タイプ + 次元インデックス選択
↓
出力: 指定プリミティブで接続されたジオメトリ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Connectivity Page 📋
Connectivity .surftype 🔗
ポイントを接続して生成するプリミティブの種類を決定するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| None | .none |
プリミティブを生成せずポイントのみ保持 (属性のみ残したい場合) |
| Point Primitives | .points |
各ポイントを単独のポイントプリミティブとして出力 |
| Lines | .lines |
隣接ポイントを 2 点ずつ独立した線分プリミティブで接続 |
| Line Strips | .linestrips |
ポイントを連続した 1 本のラインストリップで接続 (パスや軌跡の可視化に有効) |
| Zig Zag per Plane | .zigzagperplane |
2 次元配列で行ごとに方向を反転させたジグザグライン接続 (蛇行パスを生成) |
| Spiral per Plane | .spiralperplane |
2 次元配列を外周から中心へ向かう螺旋順に接続 |
| Triangles | .triangles |
ポイントを 3 点ずつグループ化して独立した三角形プリミティブを生成 |
| Alternating Triangles | .alttriangles |
2 次元グリッドを交互向きの三角形で接続 (連続トライアングルストリップ相当) |
| Quadrilaterals | .quads |
ポイントを 4 点ずつグループ化して四角形プリミティブを生成 (グリッドのポリゴンサーフェス化) |
次元インデックス 📐
(First) Dimension Index .firstdim 1️⃣
– 接続に使用する次元のインデックスを選択 (0 始まり)
– 2 次元を要求する接続モード (Zig Zag / Spiral / Alternating Triangles / Quadrilaterals 等) では第 1 次元として扱われる
Second Dimension Index .seconddim 2️⃣
– 第 2 次元のインデックス指定 (2 次元接続モードでのみ有効)
– firstdim と組み合わせて 2D グリッドの行・列を指定
次元のクローズ (ループ化) 🔁
(First) Dimension Closed .firstdimclosed 🔁
– 第 1 次元方向の接続をループさせ、終端と先頭を繋ぐ
– Line Strip でリング、Quadrilaterals で筒状サーフェス等の閉じた形状を生成
Second Dimension Closed .seconddimclosed 🔂
– 第 2 次元方向もループさせ、両次元ともクローズすればトーラス相当の閉曲面を生成
– 2 次元接続モードでのみ有効
ポイント順の再構成 🔄
Reorder Points by Prim/ Vertex Order .reorderpoints 🔄
– 出力のポイント順をプリミティブ・頂点参照順に再構成
– 後段でインデックス順アクセスする処理 (例: Lookup Attribute POP / シェーダの SSBO 参照) と整合させたい場合に使用
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: Grid POP をサーフェス化する 🟦
Grid POP → Connectivity POP (Connectivity=quads, firstdim=0, seconddim=1) → Render TOP
Grid POP が出力する 2 次元ポイント配列を Connectivity POP の Quadrilaterals モードで四角形プリミティブに接続し、Render TOP でマテリアル付きでレンダリングして可視サーフェスに変換する基本フロー。
- Grid POP を配置し縦横の分割数を設定
- Connectivity POP の Connectivity を
quadsに設定 - First Dimension Index を
0、Second Dimension Index を1に指定 - Render TOP を接続してマテリアルを割当て
- 四角形のグリッドサーフェスが表示されることを確認
Example 2: パーティクル軌跡の Line Strip 可視化 🛤️
Particle POP → Connectivity POP (Connectivity=linestrips) → Render TOP
時間方向に蓄積されたパーティクルポイント列を Connectivity POP の Line Strips モードで 1 本の連続線に接続し、パーティクルの軌跡・パスをワイヤーフレームとしてレンダリングする用途。
- Particle POP や Trail 系で時系列ポイント列を生成
- Connectivity POP の Connectivity を
linestripsに設定 - (必要に応じ) First Dimension Closed をオンにしてループパスに変換
- Render TOP で軌跡が連続線として描画されることを確認
Example 3: トーラス状の閉曲面生成 🍩
Grid POP → Connectivity POP (Connectivity=quads, firstdimclosed=on, seconddimclosed=on) → Transform POP → Render TOP
2 次元グリッドの両次元をクローズして両端を繋ぎ、Quadrilaterals 接続で位相的にトーラス状の閉曲面を生成、Transform POP で UV 座標を球面・トロイダルに変形して可視化する応用フロー。
- Grid POP で十分な分割数の 2 次元ポイント配列を生成
- Connectivity POP の Connectivity を
quadsに設定 - First Dimension Closed と Second Dimension Closed を両方オンに設定
- Transform POP / Math POP でポイント位置をトーラス座標系に変換
- Render TOP で継ぎ目のない閉曲面が表示されることを確認
関連オペレータ 🔗
類似機能OP 🔍
- Convert POP — プリミティブタイプの変換 (Polygon → Mesh 等)。Connectivity が「接続を作る」のに対し Convert は「既存接続のタイプ変換」
組み合わせ推奨OP 🔄
- Grid POP — 2 次元ポイント配列の生成元、Connectivity の典型的な前段入力
- Transform POP — 接続後のジオメトリ全体を移動・回転・スケールして配置調整
- Attribute POP — 接続前後で N (法線) 等の属性を生成・編集
- POP to SOP — Connectivity で構成したプリミティブを SOP ワークフローに渡す
前処理・後処理POP 🎯
Info POP情報 📊
Connectivity 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: Connectivity が生成したプリミティブ数num_point_attribs: 出力ジオメトリのポイント属性数num_vertex_attribs: 出力ジオメトリの頂点属性数num_prim_attribs: 出力ジオメトリのプリミティブ属性数gpu_memory_used: この POP が使用している GPU メモリ量
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: プリミティブが生成されない / 出力にポイントしか見えない
✅ Solution:
- Connectivity が
noneやpointsになっていないか確認 (どちらもプリミティブ非生成) - 入力ポイント数が選択した接続モードに必要な数を満たしているか確認 (Triangles なら 3 の倍数、Quadrilaterals なら 4 の倍数)
- 下流の Render TOP が正しくプリミティブを描画できる設定か確認
❌ Problem: 2 次元接続モードで意図しない方向に繋がる
✅ Solution:
- First Dimension Index と Second Dimension Index の組み合わせが入力ジオメトリの行・列定義と一致しているか確認
- 上流 Grid POP / Noise POP の出力次元の並びを Info CHOP で
num_points等から確認 - Reorder Points by Prim/ Vertex Order をオンにしてポイント順を再構成し下流処理と整合
❌ Problem: 閉曲面 (ループ) が継ぎ目で破綻する
✅ Solution:
- First Dimension Closed / Second Dimension Closed が必要な次元すべてオンか確認
- 入力ポイントの始端と終端の座標が一致または近接しているか確認 (大きく離れていると見た目に継ぎ目が出る)
- 接続後に Attribute POP で法線 (N) を再計算し継ぎ目のシェーディング不連続を解消
❌ Problem: パフォーマンスが重い / プリミティブ数が爆発する
✅ Solution:
- 前段で Grid POP の分割数を下げて入力ポイント数を削減
- Common Page の Delete Input Attributes で不要属性を破棄してメモリ・帯域を節約
- Free Extra GPU Memory パルスで未使用 GPU メモリを解放
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – Connectivity POP
- POP 概要 (Points, Vertices and Primitives in POPs)
- Grid POP (接続前段の典型入力)
- 属性 (Attribute) の基礎

