Primitive POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

※当サイトにはプロモーションリンクが含まれます。

Primitive POP の点群からプリミティブを生成する機能を示す図

記事更新の通知はXでアナウンス٩(๑❛ᴗ❛๑)
@maru6o6をフォロー

概要 📖 – 点群からプリミティブを生成

Primitive POPは、入力された点群からライン・三角形・四角形などのプリミティブを GPU 上で生成する POPです。新しいアトリビュートの追加や、点をどうまとめてプリミティブにするかのルール設定が中心です。

主な用途 🎯

  • 入力した点群からライン・三角形・四角形などのプリミティブを生成
  • 新しいアトリビュート(色・テクスチャ座標・点サイズ等)を点に追加
  • 点をN個ずつのグループに束ねてプリミティブ化するパターン生成
  • GPU 上でジオメトリのトポロジー(接続情報)を構築
  • パーティクルやプロシージャル形状の下地となる構造作り

データフロー 🔄

入力: 点群(位置を持つポイント)

処理(点をプリミティブにまとめ、アトリビュートを付与)

出力: プリミティブ付きジオメトリ

Tips

初心者の方は、以下日本語書籍も手元にあると安心です。

まる。
まる。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!


パラメータ解説 ⚙️

Setup Page 📋

基本設定 .setup 🧷

Delete Primitives and Keep Points .keep 🧹
Delete Primitives and Keep Points (既存プリミティブを削除して点だけ残す) — 入力に含まれるプリミティブを取り除き、点 (ポイント) だけを残します。

Add Points .addpts
Add Points (点を追加) — 新しい点を追加するかどうかを切り替えます。

Pre-Multiply RGB by Alpha .premultcolor 🎨
Pre-Multiply RGB by Alpha (RGB をアルファで事前乗算) — RGB 値をアルファ値で事前に掛け合わせます。

新規アトリビュート名 .attr0name 🏷️

New Attribute (新規アトリビュート) ブロックで作成するアトリビュートの種類を選びます。定義済みの種類か、自由に命名するカスタムを選択します。

項目 内部名 説明
Custom .custom 自由に命名するカスタムアトリビュート
N .n N 個ごとや N グループ単位でプリミティブを作るときの N 値
Color .color 色 (Color) アトリビュート
Tex .tex テクスチャ座標 (Tex) アトリビュート
PointScale .pointscale 点サイズ (PointScale) アトリビュート
LineWidth .linewidth 線幅 (LineWidth) アトリビュート

アトリビュート型 .attr0type 🔢

Type (型) — 新規アトリビュートが保持する値の型を決めます。

項目 内部名 説明
float .float 単精度浮動小数点 (float)
double .double 倍精度浮動小数点 (double)
int .int 符号付き整数 (int)
uint .uint 符号なし整数 (uint)
dir .dir 方向ベクトル (dir)
dbl dir .ddir 倍精度の方向ベクトル (dbl dir)

成分数とデフォルト値 .attr0comps 📐

Number of Components .attr0numcomps 🔢
Number of Components (成分数) — 新規アトリビュートの成分数を 1 / 2 / 3 / 4 から選びます。

Custom Name .attr0customname 🏷️
Custom Name (カスタム名) — 自由に命名するアトリビュートの名前を指定します。

Default Value .attr0value 🎚️
Default Value (デフォルト値) — アトリビュート各成分の初期値を attr0value0attr0value3 で設定します。


Points Page 📍

点の追加 .pt 📍

Point .pt 📍
Point (点) — 追加する点を定義する連続パラメータブロックの先頭です。

Position .pt0pos 🧭
Position (位置) — 追加する点の座標を pt0posx / pt0posy / pt0posz で指定します。


Primitives Page 🔺

生成方法 .method 🧩

Method (生成方法) — 点をどのルールでまとめて新しいプリミティブを作るかを決めます。

項目 内部名 説明
None .none プリミティブを生成しない
By Set .set 点をセット (まとまり) 単位でグループ化して生成
By Pattern .pattern [0-5] のような番号パターンで点を指定して生成

セット種類 .setprimtype 🔺

Primitives Type (プリミティブ種類) — セットから出力するプリミティブの形状を選びます。

項目 内部名 説明
None .none 形状を生成しない
Points .points 点 (Points) プリミティブ
Lines .lines 線 (Lines) プリミティブ
Triangles .triangles 三角形 (Triangles) プリミティブ
Quads .quads 四角形 (Quads) プリミティブ

点のまとめ方 .set 🧷

Set (まとめ方) — 全点を 1 つにまとめるか、N 個ずつのグループに分けるかを選びます。

項目 内部名 説明
All Points .all すべての点を 1 つのセットとして扱う
Groups of N Points .group N 個ずつの点のグループに分割して扱う

個別プリミティブ定義 .prim 🛠️

N .n 🔢
NGroups of N Points 選択時に、1 グループあたりの点数を指定します。

Primitive .prim 🛠️
Primitive (プリミティブ) — プリミティブを個別に作成する連続パラメータブロックの先頭です。

Point Index Pattern .prim0pattern 🔢
Point Index Pattern (点インデックスパターン) — プリミティブに含める点を番号 (インデックス) で指定するパターンです。

個別プリミティブ型 .prim0type 🔺

Type (型) — 個別作成するプリミティブの形状を選びます。

項目 内部名 説明
None .none 形状を生成しない
Points .points 点 (Points) プリミティブ
Lines .lines 線 (Lines) プリミティブ
Triangles .triangles 三角形 (Triangles) プリミティブ
Quads .quads 四角形 (Quads) プリミティブ

Post Page 📤

未使用点の処理 .unusedpointsop 🧹

Unused Points (未使用点) — プリミティブに使われなかった点をどう扱うかを決めます。

項目 内部名 説明
Do Nothing .donothing 何もせずそのまま残す
Remove .remove 未使用点を削除する
Turn into Point Prims .pointprims 未使用点を点プリミティブに変換する

CPU 読み戻し .cpureadback 💻

Copy Topology Info Back to CPU .cpureadback 💻
Copy Topology Info Back to CPU (トポロジー情報を CPU に書き戻す) — GPU 上の点数とトポロジー (接続) 情報を CPU 側にコピーします。


実践アイデア 💡

Example 1: 点群を三角メッシュ化 🔺

Point Generator POP → Primitive POP (By Set / Triangles) → Render

Point Generator POP で散らした点群を Primitive POP に通し、点をセット単位で三角形プリミティブにまとめて、面のあるジオメトリとして描画できる状態にする基本フローです。

  1. Point Generator POP で点群を用意
  2. Primitive POP の Method を「By Set」に設定
  3. Primitives Type を「Triangles」に設定して三角形を生成
  4. 出力をレンダリング経路に接続して面として表示

Example 2: 点に色を付与 🎨

Grid POP → Primitive POP (New Attribute: Color) → GLSL POP

Grid POP で並べた点に対し Primitive POP で Color アトリビュートを新規追加し、後段の GLSL POP で色を使った表現に繋げる、アトリビュート付与の例です。

  • Grid POP で格子状の点を生成
  • Primitive POP の New Attribute で「Color」を選択して色アトリビュートを追加
  • Default Value で初期色を設定

Example 3: N 個ずつ線で接続 📏

Pattern POP → Primitive POP (Groups of N Points / Lines)

Pattern POP で生成した点列を Primitive POP の Groups of N Points モードで N 個ずつ束ね、線プリミティブとして接続することで、プロシージャルなライン形状を作る用途です。

  • Pattern POP で点列を生成
  • Primitive POP の Set を「Groups of N Points」に設定し N 値を指定
  • Primitives Type を「Lines」にして点を線で接続

関連オペレータ 🔗

類似機能OP 🔍

  • Convert POP — プリミティブの種類を相互に変換
  • Polygonize POP — プリミティブをポリゴンに変換

組み合わせ推奨OP 🔄

前処理・後処理POP 🎯


Info情報 📊

Primitive 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: エラー数

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: プリミティブが生成されない
✅ Solution:

  • Method が「None」になっていないか確認し、「By Set」または「By Pattern」に設定
  • Primitives Type / Type が「None」のままだと形状が出ないため、Lines / Triangles / Quads 等を選択
  • 入力に十分な点が存在するか前段の Point Generator POP を確認

❌ Problem: 追加したアトリビュートが反映されない
✅ Solution:

  • New Attribute の Name とアトリビュート型 (Type)・成分数 (Number of Components) が用途に合っているか確認
  • Default Value (attr0value) に初期値を設定しているか確認
  • Delete Input Attributes で必要なアトリビュートを誤って除外していないか確認

❌ Problem: 動作が重い・GPU メモリを消費する
✅ Solution:

  • Copy Topology Info Back to CPU は必要なときだけ有効にする (GPU→CPU 転送はコスト大)
  • Free Extra GPU Memory を有効にして余分なメモリを解放
  • 未使用点は Post ページの Unused Points を「Remove」にして削減

参考資料 📚

その他 🔗

公式リソース 📖

この記事はLLMと共に内容を執筆、更新しています。
最新バージョンとの項目差異など、情報の不一致を見つけた心優しい方はXもしくはInsta、メールなどよりサイト管理者までご連絡ください😎


まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
Python/Touchdesigner/M5Stackをこよなく愛すフルスタックエンジニア。
専門は生理心理学、趣味はヨガやサウナ、EMS電気風呂などヘルスケア全般。
脳波や筋電、心拍を中心とした生体情報のセンシング&インタラクティブアートづくりがライフワーク。

普段はワントゥーテンという会社で空間演出エンジニアをしています。
リファラル採用お繋ぎできますので、我こそはという尖った方は経歴と希望職種添えてDMください(エンジニア以外、営業職等もOK)。
ご飯行きましょう。

↓日常垢
Instagram:@malmal0v0

まる。をフォローする
その他の記事はこちら
Math Combine POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED Select TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Window COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Widget COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

タイトルとURLをコピーしました