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

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

Polygonize POP の画像から立体形状を生成する機能を示す図

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

概要 📖 – 画像から立体形状を生成

Polygonize POPは、TOP の値をしきい値で内外判定し、その境界面を三角形メッシュとして生成する POPです。符号付き距離フィールドや密度マップを Threshold (しきい値) で内外に分け、その境界に三角形サーフェスを GPU 上で構築します。法線・テクスチャ座標の付与にも対応し、生成結果をそのままレンダリングへ流せます。

主な用途 🎯

  • テクスチャ (TOP) の明暗を高さの境界とみなしてサーフェスメッシュを生成
  • 符号付き距離フィールドや密度フィールドから等値面 (アイソサーフェス) を取り出す
  • しきい値 (Threshold) を時間で変化させて形状がモーフィングするアニメーションを作る
  • GPU 上で TOP からジオメトリへ直接変換しポイント・三角形を高速に大量生成
  • テクスチャ座標 (Tex) や法線 (Normal) を付与してそのままマテリアル描画に流す

データフロー 🔄

入力: 明暗・密度を持つ TOP (テクスチャ)

しきい値で内外を判定し三角形メッシュを生成

出力: 法線・テクスチャ座標付きのジオメトリ (POP)

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Polygonize Page 📋

入力テクスチャ .top 🖼️

形状の元データとして読み込む TOP の指定:

  • TOP: TOP (元画像) — 立体化の元になるテクスチャを指定。明暗・密度・距離値などをここから読み取ります

サンプルチャンネル .channel 🎨

Channel (参照する色成分) — TOP のどの色成分を内外判定の値として使うかを選択するメニューパラメータ

項目 内部名 説明
Luminance .luminance 輝度 (明るさ) を値として使用
Red .red 赤チャンネルの値を使用
Green .green 緑チャンネルの値を使用
Blue .blue 青チャンネルの値を使用
Alpha .alpha 不透明度 (アルファ) の値を使用
RGB Average .rgbaverage 赤・緑・青 3 成分の平均値を使用
RGBA Average .average 赤・緑・青・アルファ 4 成分の平均値を使用
RGB Maximum .rgbmax 赤・緑・青 3 成分のうち最大値を使用
RGBA Maximum .max 赤・緑・青・アルファ 4 成分のうち最大値を使用

解像度倍率 .resmult 📏

メッシュの細かさを決める解像度倍率:

  • Resolution Multiplier: Resolution Multiplier (解像度倍率) — 入力 TOP に対して適用するサンプリング解像度の倍率。値を上げるほど細かいメッシュになりますが生成負荷も増えます

内外の判定 .inside 🔀

Inside (どちら側を内側とみなすか) — しきい値より上の値と下の値のどちらを「内側」と扱うかを決めるメニューパラメータ。三角形の巻き方向、ひいては法線の向きが決まります

項目 内部名 説明
<= (Signed Distance) .lteq しきい値以下を内側とみなす (符号付き距離フィールド向け)
> (Density) .gt しきい値より大きい値を内側とみなす (密度フィールド向け)

しきい値 .threshold 🎚️

サーフェスが生成される境界のしきい値:

  • Threshold: Threshold (しきい値) — この値を境にサーフェスが生成されます。時間で変化させると形状がモーフィングします

サンプリング外挿 .extend ↔️

Extend (端の外側の扱い) — TOP をサンプリングする際、画像の端より外側をどう補うかを決めるメニューパラメータ

項目 内部名 説明
Hold .hold 端のピクセル値をそのまま保持して外側へ延長
Zero .zero 端の外側をゼロ値として扱う
Repeat .repeat 画像を繰り返してタイル状に外挿
Mirror .mirror 画像を反転して鏡像状に外挿

頂点と座標再設定 .uniquepoints 🧩

頂点の共有方法と、出力座標の再マッピング設定

Unique Points .uniquepoints 🧩
Unique Points (頂点を共有するか) — オンにすると三角形ごとに独立した頂点を持ちます
– オフでは隣接三角形が頂点を共有し、ポイント数を節約します

ReRange P .rerangep 📐
ReRange P (位置を再マッピングするか) — オンにすると出力ポイント位置 (P) を別の数値範囲に変換します
– 変換後の範囲は以下の Map to Low / Map to High で指定します

再マッピング範囲 .rerange_range 📦

ReRange P がオンのときに適用される新しい座標範囲:

  • Map to Low (tolow): Map to Low (新しい範囲の下限) — XYZ 各軸の最小値 (tolow0 / tolow1 / tolow2) を指定
  • Map to High (tohigh): Map to High (新しい範囲の上限) — XYZ 各軸の最大値 (tohigh0 / tohigh1 / tohigh2) を指定

法線の計算 .nmlmethod 🧭

Normals Method (法線の求め方) — 生成した三角形の法線をどの方式で計算するかを決めるメニューパラメータ

項目 内部名 説明
Field Gradient .gradient フィールドの勾配 (近傍値の変化) から法線を計算 (滑らかな法線が得られる)
From Surface .surface 生成された三角形サーフェスの形状そのものから法線を計算

勾配ステップ倍率 .nmlstepmul 📊

Field Gradient 方式での勾配計算ステップ幅:

  • Step Multiplier: Step Multiplier (勾配ステップ倍率) — 法線が Field Gradient のとき、勾配計算に使う近傍フィールド値のステップ幅に掛ける倍率

テクスチャ座標出力 .texture 🗺️

テクスチャ座標属性 (Tex) の出力設定:

  • Texture Coordinates: Texture Coordinates (テクスチャ座標を出力するか) — オンにするとポイントごとのテクスチャ座標属性 (Tex) を出力し、マテリアル描画でテクスチャを貼れます

メモリと読み戻し .allocfract 💾

GPU メモリの確保割合と、トポロジ情報の CPU 読み戻し設定

Fraction of Max Allocation .allocfract 💾
Fraction of Max Allocation (確保するメモリの割合) — この POP は必要な GPU メモリ量を事前に知れないため、最大確保量に対する割合を指定して節約します
– ポイントやプリミティブが欠ける、または情報ポップアップで最大値に達している場合は、この割合が低すぎる合図です

Copy Topology Info Back to CPU .cpureadback 🔁
Copy Topology Info Back to CPU (トポロジ情報を CPU に戻すか) — GPU 上に保持されるポイント数と接続情報を CPU 側にコピーします
– CPU 側でポイント数や接続を参照する必要があるときに有効にします


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 Tex) を指定。指定外の属性は破棄される
  • 用途: 下流で不要な属性を切り落として分岐ブランチを軽量化、メモリ・帯域を節約

実践アイデア 💡

Example 1: 明暗から立体化 🏔️

Noise TOP → Polygonize POP (Channel=luminance, Threshold=0.5) → Normal POP → Render TOP

Noise TOP で生成したパターンの輝度を Polygonize POP の参照チャンネルにして、しきい値 0.5 を境に三角形サーフェスを起こす基本フロー。明暗の境界がそのまま地形状のメッシュになります。

  1. Noise TOP で明暗のあるパターン画像を生成
  2. Polygonize POP の TOP に Noise TOP を接続し Channel を luminance に設定
  3. Threshold を 0.5 に設定して内外の境界を決定
  4. Normal POP で法線を整えてから Render TOP で立体メッシュを描画

Example 2: 形状のモーフィング 🌊

Field POP → POP to TOP → Polygonize POP (Threshold を LFO で駆動) → Render TOP

密度フィールドをテクスチャ化して Polygonize POP に渡し、Threshold を時間で揺らすことで等値面が膨らんだり縮んだりするメタボール的なモーフィングアニメーションを作る用途。

  1. 密度を持つフィールドをテクスチャ (TOP) として用意
  2. Polygonize POP の Inside を gt (密度フィールド向け) に設定
  3. Threshold を LFO 等で時間変化させて等値面を動かす
  4. Render TOP で形状が連続的にモーフィングする様子を確認

Example 3: 座標付きで描画 🎨

File In TOP → Polygonize POP (Texture Coordinates=On) → POP to SOP → Render TOP

Polygonize POP の Texture Coordinates をオンにして出力メッシュに Tex 属性を付与し、生成したサーフェスへ元画像をテクスチャとして貼り付けて描画するワークフロー。

  1. File In TOP で元になる画像を読み込み
  2. Polygonize POP で Texture Coordinates をオンにして Tex 属性を出力
  3. POP to SOP でジオメトリを SOP ワークフローに引き渡し
  4. Render TOP でテクスチャが貼られたメッシュを描画

関連オペレータ 🔗

類似機能OP 🔍

  • Convert POP — Polygonize が TOP からメッシュを「新規生成」するのに対し、Convert は既存プリミティブのタイプを変換する
  • Connectivity POP — 接続情報を持たないポイントからプリミティブを構成する。Polygonize は TOP の値から直接三角形を起こす点が異なる

組み合わせ推奨OP 🔄

  • Field POP — 密度・距離フィールドを用意し、テクスチャ化して Polygonize の入力にする前段として典型
  • Normal POP — 生成メッシュの法線を整え直す後段に頻出
  • Transform POP — 起こしたメッシュを移動・回転・スケールして配置
  • POP to SOP — 生成したジオメトリを SOP ワークフローへ引き渡し

前処理・後処理POP 🎯


Info POP情報 📊

Polygonize 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 汎用情報 📡

  • num_points: 生成されたメッシュのポイント数
  • num_prims: 生成された三角形プリミティブ数
  • num_point_attribs: 出力ジオメトリのポイント属性数 (Tex / Normal 付与時に増加)
  • num_vertex_attribs: 出力ジオメトリの頂点属性数
  • num_prim_attribs: 出力ジオメトリのプリミティブ属性数
  • gpu_memory_used: この POP が使用している GPU メモリ量

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

よくある問題と解決策 🔧

❌ Problem: メッシュが生成されない / 出力が空
✅ Solution:

  • Threshold (しきい値) が入力 TOP の値域から外れていないか確認。値域内に境界が無いと面が生成されません
  • Channel (参照チャンネル) が実際に値を持つ成分を指しているか確認 (例: グレースケール画像で Alpha を選ぶと空になる場合あり)
  • 前段に Field POP 等で明確な密度・距離フィールドを用意

❌ Problem: ポイントやプリミティブが欠ける / 一部しか出ない
✅ Solution:

  • Fraction of Max Allocation (確保するメモリの割合) を上げて GPU メモリ不足を解消
  • Info CHOP で num_points / num_prims が最大値に張り付いていないか確認
  • Resolution Multiplier (解像度倍率) を下げて生成負荷とメモリ消費を抑える

❌ Problem: 法線の向きが裏返る / 陰影がおかしい
✅ Solution:

  • Inside (内外の判定) を入力データの種類 (符号付き距離なら lteq、密度なら gt) に合わせる
  • Normals Method (法線の求め方) を gradient に切替えて滑らかな法線を試す
  • 後段に Normal POP を挟んで法線を整え直す

❌ Problem: メッシュがカクカクして滑らかにならない
✅ Solution:

  • Resolution Multiplier (解像度倍率) を上げて細かい三角形を生成
  • Step Multiplier (勾配ステップ倍率) を調整して Field Gradient 法線を滑らかにする
  • 入力 TOP 自体の解像度を上げて値の変化を滑らかにする

参考資料 📚

その他 🔗

公式リソース 📖

この記事は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をコピーしました