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

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

Sphere POP の球面点群生成を示す図

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

概要 📖 – 球面の点群を生成

Sphere POPは、測地・グリッド・四面体・共有極の 4 方式から選んで球面の点群とプリミティブを出力する POPです。Type を切り替えると点の分布規則 (測地球は三角形の均一分割、Grid は緯度経度マッパー、Tetrahedron は最小頂点) が変わります。Radius / Frequency / Columns / Rows で密度を、Anchor / Translate / Rotate / Uniform Scale で配置を、Normal / Texture Coordinates / Texture Method で属性出力を細かく制御できます。

主な用途 🎯

  • 球形ジオメトリのプリミティブ生成 (パーティクル発生源・装飾・参照)
  • 測地球による均一分布点群の作成 (サンプリング・GLSL 検証用)
  • 緯度経度グリッド球で UV テクスチャを貼った球体の生成
  • 魚眼・全天球の点位置リファレンスとしての半球・全球生成
  • 後段の Copy POP / Particle POP に渡す発生点ソースの作成

データフロー 🔄

入力: (任意の bounds 用 POP)

Sphere POP(Type で生成方式を選び、Radius / Frequency / Rows / Columns で密度を制御)

出力: 点群+指定プリミティブを持つ POP

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Sphere Page 📋

Type .type 🎛️

球の生成方式を決定する基本メニュー

項目 内部名 説明
Geodesic .geodesic 正二十面体ベースの測地球。三角形を細分化して均一分布の点群を生成
Grid .grid 緯度経度方向の Rows × Columns で球面をグリッド分割 (UV マッピング向き)
Tetrahedron .tetrahedron 正四面体ベースの最小頂点球 (低密度プレースホルダー)
Shared Points at Poles .sharedpoles 両極で点を共有する緯度経度球。Grid のシーム重複を回避

Geodesic Connectivity .geodesictype 🔗

測地球の点をどのプリミティブで接続するか

項目 内部名 説明
None .none 接続を行わず点のみを出力
Point Primitives .point 各点を独立した Point プリミティブとして出力
Triangles .triangles 細分化された三角形プリミティブとして接続

Grid Connectivity .surftype 🔗

緯度経度グリッド球の点接続方式

項目 内部名 説明
None .none 接続を行わず点のみを出力
Point Primitives .point 各点を独立した Point プリミティブとして出力
Rows .rows 行方向のラインだけで接続
Columns .cols 列方向のラインだけで接続
Rows and Columns .rowcol 行と列の両方をラインで接続 (ワイヤー球)
Triangles .triangles セルを 2 つの三角形に分割して出力
Alternating Triangles .alttriangles セルごとに対角線方向を交互に切替えて偏りを軽減
Quadrilaterals .quads セルを 4 頂点の四辺形プリミティブとして出力

Line Type .linetype 📏

Rows / Columns / Rows and Columns 接続時のライン形式

項目 内部名 説明
Lines .lines 隣接 2 点ごとの独立 Line プリミティブとして出力

Orientation .orient 🧭

球の極軸 (両極を結ぶ軸) を X / Y / Z のどれに揃えるか

項目 内部名 説明
X Axis .x 両極を X 軸 (左右方向) に揃える
Y Axis .y 両極を Y 軸 (上下方向) に揃える (一般的な初期値)
Z Axis .z 両極を Z 軸 (奥行き方向) に揃える

サイズと入力 bounds 📐

Modify Bounds .modifybounds 🧭
Modify Bounds (バウンディング上書き) — 入力 POP が接続されている場合にのみ有効
– オン時は入力 POP のバウンディングボックスを基準として、下記の Radius / Translate / Rotate / Scale で更に球の形状を変形させる

Radius .rad 📏
Radius (半径) — 球の XYZ 方向の半径
– 内部名 radx / rady / radz の 3 成分で軸ごとに指定でき、楕円球も生成可

測地球の分割 🔢

Frequency .freq 🔢
Frequency (細分化頻度) — 測地球の三角形をどれだけ細かく分割するか
– 値が大きいほど点数とプリミティブ数が増え、滑らかな球になる (Type=Geodesic のときに有効)

Fuse .fuse 🧷
Fuse (頂点の融合) — 細分化で発生した重複頂点をまとめて 1 点に縮約するトグル
– オンにするとシームが消え、後段の法線計算やスムーズシェーディングが綺麗に通る

Fuse Technique .fusetechnique ⚙️
Fuse Technique (融合アルゴリズム) — 重複点をどの方式でマッチさせるかを選択
– 候補: Brute Force (全探索) / Shared Memory (共有メモリ最適化) / Spatial Grid (空間グリッド)

緯度経度の分割数 🔢

Columns .cols 📊
Columns (経度方向の列数) — 経度方向 (周回方向) に並べる点の列数
– Type が Grid / Shared Points at Poles のときに有効

Rows .rows 📊
Rows (緯度方向の行数) — 極から極へ並べる点の行数 (緯度方向の分割数)
– 値を増やすほど球が滑らかになる

アンカー位置 📍

Anchor U .anchoru ↔️
Anchor U (U 方向アンカー) — 左端・中央・右端のいずれを原点 0 に揃えるかを指定
– 球を原点基準で配置する際の整列基準として使用

Anchor V .anchorv ↕️
Anchor V (V 方向アンカー) — 下端・中央・上端のいずれを原点 0 に揃えるかを指定

Anchor W .anchorw 🔃
Anchor W (W 方向アンカー) — 後ろ端・中央・前端のいずれを原点 0 に揃えるかを指定 (奥行き方向)

トランスフォーム 🧮

Translate .t ➡️
Translate (平行移動) — 生成された点群を XYZ 軸方向に平行移動
– 内部名 tx / ty / tz の 3 成分

Rotate .r 🔄
Rotate (回転) — 各点を XYZ 軸まわりに回転 (角度は度数法)
– 内部名 rx / ry / rz の 3 成分

Uniform Scale .scale 🔍
Uniform Scale (一様スケール) — 全軸に均等に作用するスケール係数
– 1.0 が等倍、0.5 で半分、2.0 で 2 倍

Normal .normal 🧭

法線属性 (Normal) を生成するかと、属性クラスの選択

項目 内部名 説明
None .none 法線属性は生成しない

Texture Coordinates .texture 🗺️

UV テクスチャ座標属性の生成設定

項目 内部名 説明
None .none UV 座標属性は生成しない

Texture Method .texmethod 🗺️

UV 座標を球面にどう貼り付けるかのマッピング方式

項目 内部名 説明
Equirectangular Inside (Spherical Polar) .equirectangularin 正距円筒図法 (内側貼り)。全天球パノラマを内側から見る形で UV 展開
Equirectangular Outside (Spherical Polar) .equirectangularout 正距円筒図法 (外側貼り)。地球儀のように外側から UV を貼る
Equidistant Azimuth (Fish Eye) .equiazimuth 等距離方位図法 (魚眼)。中心からの角距離に比例した UV 配置

魚眼マッピング設定 🐟

FOV Angle .fov 📐
FOV Angle (視野角) — Texture Method が Equidistant Azimuth (Fish Eye) のときに有効
– 魚眼テクスチャマッピングで使う視野角 (度) を指定。180 で半球、360 で全球の範囲をカバー

Shared Poles Connectivity .sharedpolessurftype 🔗

共有極球 (Shared Points at Poles) の接続形状

項目 内部名 説明
None .none 接続を行わず点のみを出力
Point Primitives .point 各点を独立した Point プリミティブとして出力
Rows .rows 行方向のラインだけで接続
Columns .cols 列方向のラインだけで接続
Rows and Columns .rowcol 行と列の両方をラインで接続
Triangles .triangles セルを 2 つの三角形に分割して出力
Alternating Triangles .alttriangles セルごとに対角線方向を交互に切替えて偏りを軽減
Quadrilaterals and Triangles .quadsandtriangles 中央セルは四辺形、極周辺は三角形で構成 (極の縮退を吸収)

Detail Page 📑

U 方向 (経度) の閉じ・範囲 🌐

U Closed .closedu 🔒
U Closed (U 方向を閉じる) — 経度方向 (U) のジオメトリを閉じるトグル
– オンにすると 360 度をぐるりと閉じた球面、オフにすると経度方向にスリットの入った開いた形状になる

Angle U .angleu 📐
Angle U (U 方向の角度範囲) — 球が U 方向 (経度) にカバーする開始角と終了角
– 内部名 beginangleu / endangleu の 2 成分で半球やオレンジの皮のような部分球を作れる

Tex Coords Range U .texrangeu 🗺️

Angle U が部分範囲のときの UV 座標の張り方

項目 内部名 説明
Respect Angles .partial Angle U の実角度に対応した部分 UV を出力 (0-1 のうち実際の角度比だけを使用)
0 to 1 .full 部分範囲でも UV を 0-1 に正規化して全幅へ展開

V 方向 (緯度) の範囲 🌐

Angle V .anglev 📐
Angle V (V 方向の角度範囲) — 球が V 方向 (緯度) にカバーする開始角と終了角
– 内部名 beginanglev / endanglev の 2 成分で上半球・下半球・赤道帯などを作れる

Tex Coords Range V .texrangev 🗺️

Angle V が部分範囲のときの UV 座標の張り方

項目 内部名 説明
Respect Angles .partial Angle V の実角度に対応した部分 UV を出力
0 to 1 .full 部分範囲でも UV を 0-1 に正規化して全高へ展開

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: 球状パーティクル発生源 ✨

Sphere POP (Type=Geodesic, Connectivity=None) → Particle POP → Render TOP

Type を Geodesic、Geodesic Connectivity を None に設定して、均一分布の点群だけを取り出す基本フロー。測地球は正二十面体を細分化する性質上、緯度経度グリッドと違って極で点が密集しないため、パーティクルやインスタンス配置の発生点ソースとして偏りなく使えるのが強み。Frequency で密度を、Radius で発生範囲を制御する。

  1. Sphere POP の TypeGeodesic に設定
  2. Geodesic Connectivity = None で点群だけを取り出す
  3. Frequency で細分化レベル (=点数) を調整
  4. Radius で発生範囲のサイズを指定
  5. Particle POP の発生点入力に接続し、Render TOP で可視化

Example 2: 全天球パノラマ用 UV 球 🌐

Sphere POP (Type=Grid, Texture Method=Equirectangular Inside) → PBR MAT (パノラマ画像) → Render TOP

Type を Grid、Texture Method を Equirectangular Inside (Spherical Polar) に設定すると、内側から見る球面に正距円筒図法の UV が貼られ、360 度パノラマや HDRI 環境マップを覆い被せた球内空間を作れる。VR / プロジェクションマッピング用の全周映像表示に頻用される。Rows / Columns を増やすほど球が滑らかになり、テクスチャの歪みも目立たなくなる。

  1. Sphere POP の TypeGrid に設定
  2. Texture Coordinates を point に設定し UV 属性を生成
  3. Texture MethodEquirectangular Inside に変更
  4. Rows / Columns を増やして滑らかさを確保
  5. PBR MAT にパノラマ画像をアサインし、Render TOP に出力

Example 3: 半球ドーム形状の生成 🏛️

Sphere POP (Type=Grid, Angle V=0〜90) → Transform POP → Render TOP

Detail Page の Angle V で V 方向 (緯度) の範囲を 0 度から 90 度に絞ると上半球ドームが、-90 度から 0 度にすると下半球が得られる。プラネタリウム・スカイドーム・建築モチーフなど「半球で十分」な場面で、フル球を生成するより頂点数を半減でき軽量化できる。Tex Coords Range V を Respect Angles にしておくと UV も実角度通りに張られ、テクスチャが歪まない。

  1. Sphere POP の TypeGrid に設定
  2. Angle Vbeginanglev / endanglev で 0〜90 度に絞る
  3. Tex Coords Range VRespect Angles に設定
  4. Rows / Columns でドームの滑らかさを調整
  5. Transform POP で配置を整え、Render TOP でマテリアル付きでレンダリング

関連オペレータ 🔗

類似機能OP 🔍

  • Box POP — 立方体形状の点群を生成 (球と並ぶ基本プリミティブ)
  • Grid POP — 平面・立体格子点群を生成 (球と違い直交格子)
  • Torus POP — ドーナツ形状の点群を生成 (球と同じ回転体系プリミティブ)
  • Tube POP — 円筒・円錐形状の点群を生成
  • Circle POP — 2D 円・楕円の点群を生成 (球の 1 断面に相当)

組み合わせ推奨OP 🔄

  • Transform POP — 生成した球を後段で平行移動・回転・スケールするための定番後処理
  • Math POPP 等の属性を算術変換して球を歪ませる・正規化する
  • Noise POP — 球面の点に Perlin / Simplex 等のノイズで変位を加える (惑星表面表現等)
  • Particle POP — Sphere の点群を発生源として時間発展させる
  • Copy POP — 球面各点をテンプレートにして別ジオメトリをインスタンス配置
  • Attribute POP — Color / カスタム属性を点ごとに付与してから後段に渡す

前処理・後処理POP 🎯


Info POP情報 📊

Sphere 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: 生成された出力ポイント数 (Type / Frequency / Rows / Columns に依存)
  • num_point_attribs: 出力 POP の point 属性数 (Normal / Texture Coordinates の有無で増減)
  • num_vertex_attribs: 出力 POP の vertex 属性数
  • num_prim_attribs: 出力 POP の primitive 属性数
  • num_prims: 生成プリミティブ数 (Connectivity の選択により決定)

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

よくある問題と解決策 🔧

❌ Problem: 極で点が密集する / テクスチャが伸びる
✅ Solution:

  • TypeGeodesic に切替えると、極を持たない均一分布球になり密集が解消
  • Grid 系を使い続ける場合は TypeShared Points at Poles にして両極で点を共有し、シーム重複を回避
  • Texture MethodEquidistant Azimuth (Fish Eye) に変更すると、極の伸びとは別の歪み方になる (用途に応じて選択)

❌ Problem: 球がジャギーで滑らかにならない
✅ Solution:

  • Type=Geodesic の場合は Frequency を上げて細分化レベルを増やす
  • Type=Grid の場合は Rows / Columns を増やして緯度経度の分割数を増やす
  • Fuse をオンにして測地球の重複頂点を融合させ、後段の法線スムージングを通す

❌ Problem: 半球・部分球にしたいのに全球が出る
✅ Solution:

  • Detail Page の Angle Vbeginanglev / endanglev で緯度範囲を絞る (上半球なら 0〜90)
  • Angle Ubeginangleu / endangleu で経度範囲を絞る (オレンジの皮状の部分球)
  • UV の歪みを避けたい場合は Tex Coords Range U / Tex Coords Range VRespect Angles に設定

❌ Problem: VRAM 使用量が増えてパフォーマンスが落ちる
✅ Solution:

  • Frequency または Rows / Columns で点数が過剰になっていないか確認 (Frequency=6 で約 6 万点まで増える)
  • Common Page の Delete Input Attributes で下流に不要な属性を残さず、必要なものだけ通す
  • Common Page の Free Extra GPU Memory パルスで未使用 VRAM を返却

参考資料 📚

その他 🔗

公式リソース 📖

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