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

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

Subdivide POP の点群細分化機能を示す図

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

概要 📖 – 点群を滑らかに細分化

Subdivide POPは、入力の点群ジオメトリを GPU 上で反復的に分割し、より滑らかな曲面に変換する POPです。Depth で分割段数を、Crease Weight で残したい折り目の鋭さを指定し、滑らかなハイポリ形状を生成します。

主な用途 🎯

  • 低密度の点群ジオメトリを滑らかな曲面に変換 (粗いメッシュを反復分割して丸める)
  • Depth で細分化の段数を制御し、見た目の滑らかさと処理負荷のバランスを取る
  • Crease Weight で折り目の鋭さを調整し、角を残すか完全に丸めるかを連続的に切り替え
  • GPU 上で細分化を実行し、大規模点群でも軽量に滑らかな形状を生成
  • 後段の変形・描画向けにハイポリ素体を用意 (Noise POP / 描画パイプラインに載せる土台)

データフロー 🔄

入力: 細分化したい点群ジオメトリ (POP)

Depth で反復回数を指定

Crease Weight で折り目の鋭さを制御

出力: 細分化された滑らかな点群 (POP)

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Subdivide Page 📋

細分化深度パラメータ 🔢

Depth .iterations 📈
Depth (細分化の反復回数) — 点群を何回細分化するかを指定
– 値が大きいほど面はより滑らかになるが、点数が指数的に増加して処理負荷が急増する
– 1 から段階的に上げて、求める滑らかさが得られる最小段数を見つけるのが実用的

折り目の鋭さパラメータ ⚖️

Crease Weight .creaseweight ✂️
Crease Weight (折り目の鋭さ) — ジオメトリ内の鋭いエッジをどの程度保持するかを指定
– 0 = 完全に滑らか (折り目を保持しない)、大きい値ほど鋭い角として残される
– 工業製品のエッジやキャラクターの輪郭を残しつつ全体を丸めたいときに使う

平滑化係数パラメータ 🎛️

Simple Coefficients .simplecoeffs
Simple Coefficients (簡易係数による平滑化) — 補間された点を平滑化する際に簡易的な係数計算を使うかを切替
– オンにすると計算が軽くなるが、平滑化の品質は通常計算より単純になる
– 処理負荷を抑えたい大規模点群で挙動を比較しながら使う

CPU 転送パラメータ 🧠

Copy Topology Info Back to CPU .cpureadback 🔁
Copy Topology Info Back to CPU (トポロジ情報を CPU に書き戻し) — GPU 上に保持される点数とトポロジ情報を CPU 側にコピーするかを切替
– 細分化後の点数やトポロジを CPU 側のスクリプトや下流オペレータから参照したいときにオンにする
– 不要なときはオフのままにすると GPU から CPU への転送コストを避けられる


Common Page 🔧

Bypass .bypass 🚫

POP の処理をスキップして入力をパススルーする設定:

  • オン: 最初の入力 (input1) をそのまま出力にパススルー、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: 粗い点群を滑らかに変換 🟢

Box POP → Subdivide POP (Depth=2) → Null POP → 描画パイプライン

Box POP のカクカクした素体を Subdivide POP で 2 段細分化し、滑らかな丸みのある形状に変換する最小構成。粗いプレースホルダ形状を一気に有機的なシルエットに仕上げる定番パターン。

  1. Box POP を配置して素体となる点群を生成
  2. Subdivide POP を後段に接続し Depth を 2 に設定 (1 から始めて段階的に上げると挙動が掴みやすい)
  3. Crease Weight を 0 にして全エッジを均等に丸める
  4. Null POP を後段に置いて出力を確認し、描画パイプラインに接続
  5. Depth を上げると滑らかさが増すが点数も指数的に増えるので、負荷を見ながら段数を調整

Example 2: 折り目を残して細分化 ✂️

Box POP → Subdivide POP (Crease Weight=5, Depth=2)

鋭いエッジを保持したまま他の部分だけを滑らかに細分化する例。工業製品のエッジやキャラクターの輪郭を残しつつ全体を丸める用途で、Crease Weight を高めに設定して折り目の鋭さを制御する。

  1. Box POP で素体の点群を生成
  2. Subdivide POP を後段に接続し Crease Weight を 5.0 程度に設定 (鋭く保持)
  3. Depth を 2〜3 に上げて、鋭いエッジ以外がしっかり丸まることを確認
  4. Crease Weight を段階的に下げて、折り目の鋭さがどう変化するかを比較

Example 3: Noise で有機形状を作る 🌊

Box POP → Subdivide POP (Depth=3) → Noise POP → 描画パイプライン

Subdivide POP で点密度を上げた点群を後段の Noise POP で変位させてプロシージャル形状を作る典型パターン。Noise の細かい揺らぎを乗せるには十分な点密度が必要なため、Subdivide で素体の解像度を確保する。

  1. Box POP で素体の点群を配置
  2. Subdivide POP を後段に置き Depth を 3 に設定して点密度を確保 (低い Depth では Noise の細かい揺らぎが乗らない)
  3. Noise POP を後段に接続して点を変位させ、形状を変形
  4. 点数が増えすぎると処理負荷が急増するため、Depth は必要最小限に留める
  5. Null POP に接続して結果を確認

関連オペレータ 🔗

類似機能OP 🔍

  • Subdivide SOP — 同名の SOP 版。CPU 上でポリゴンメッシュを細分化する (POP は GPU 上で点群を細分化)
  • Facet POP — 点結合・法線処理など細分化以外の面属性編集を行う POP
  • Convert POP — ジオメトリ型を変換する POP (細分化前後で型を整える)

組み合わせ推奨OP 🔄

  • Noise POP — Subdivide で増やした点をノイズで変位させて有機形状を作る
  • Transform POP — 細分化後の出力にさらに移動・回転・スケールを掛ける
  • Attribute POP — 細分化前後で属性を作成・リネームして整える
  • Math POP — 細分化結果の属性値をスケーリング・正規化
  • Convert POP — 細分化結果を別のジオメトリ型に変換して下流へ渡す

前処理・後処理POP 🎯


Info POP情報 📊

Subdivide POPは Info CHOP / Info DAT による詳細情報取得に対応しています。

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

点群・属性情報 🧬

  • num_points: num_points — この POP に含まれる点数 (細分化後の値、Depth に応じて指数的に増加)
  • num_prims: num_prims — この POP に含まれるプリミティブ数
  • num_point_attribs: num_point_attribs — 出力 POP の point 属性数

クック統計 ⏱️

  • total_cooks: total_cooks — プロセス開始以降にこのオペレータがクックされた合計回数
  • cook_time: cook_time — 直近のクック所要時間 (ミリ秒、Depth を上げると急増しやすい)
  • cook_frame: cook_frame — このオペレータが最後にクックされたフレーム番号

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

よくある問題と解決策 🔧

❌ Problem: Depth を上げるとフレームレートが急激に落ちる
✅ Solution:

  • Subdivide は点数を指数的に増やす仕様 — Depth を 1 段下げるだけで処理負荷が大幅に減るので、最小段数で求めるシルエットが得られないか試す
  • 細分化後の点数は Info CHOPnum_points / num_prims で常に把握しておく
  • Common Page の Free Extra GPU Memory パルスで未使用 VRAM を返却し、メモリ逼迫を緩和

❌ Problem: 折り目として残したいエッジが丸まってしまう
✅ Solution:

  • Crease Weight を 5.0〜10.0 と大きめに設定すると鋭いエッジが折り目として保持される
  • Crease Weight を 0 にすると全エッジが折り目なし扱いとなり完全に滑らかになるため、意図と逆になっていないか確認
  • 細分化前のジオメトリに想定どおりの鋭いエッジがあるか、前段の Convert POP 等で形状を確認

❌ Problem: 細分化後の点数やトポロジを CPU 側スクリプトから参照できない
✅ Solution:

  • Copy Topology Info Back to CPU をオンにして GPU 上の点数・トポロジ情報を CPU 側にコピー
  • 参照が不要なら同パラメータはオフのままにして GPU から CPU への転送コストを避ける
  • 点数だけ知りたい場合は Info CHOPnum_points から取得する方法も検討

❌ Problem: 細分化後のメッシュが想定より滑らかにならない
✅ Solution:

  • Crease Weight が大きい値になっていないか確認 — 折り目が強く保持されると滑らかさが出ない
  • Depth を 1 から段階的に上げ、目的の滑らかさが得られる最小段数を見つける
  • Simple Coefficients のオン/オフで平滑化の品質が変わるため、両方の挙動を比較する

参考資料 📚

その他 🔗

公式リソース 📖

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