
概要 📖 – 球体ジオメトリの生成
Sphere SOPは、プロシージャルに球体ジオメトリを生成し、Mesh / NURBS / Bezier / Polygon / Primitive など複数のサーフェスタイプで出力する SOPです。出力はインスタンシングのテンプレートや Bounding Sphere、Render TOP に渡す素材として広く利用されます。
主な用途 🎯
- 球体ジオメトリのプロシージャル生成 (Mesh / NURBS / Bezier / Polygon / Primitive)
- VJ・インスタレーションでの抽象オブジェクトの素材生成
- Instancing のテンプレートジオメトリとして粒子・点群表現に転用
- Bounding Sphere 計算による入力ジオメトリの境界球取得
- UV テクスチャ座標付きのマッピング用素材として 3D シェーダに供給
データフロー 🔄
入力: 任意の SOP (Bounds 用、オプション)
↓
処理: Primitive Type / Radius / Frequency / Texture Coordinates に従って球体を構築
↓
出力: 球体ジオメトリ SOP
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Page 📁
Primitive Type .type 🎛️
球体を構成するサーフェスタイプを選択するメニューパラメータ
| 項目 | 内部名 | 説明 |
|---|---|---|
| Mesh | .mesh |
メッシュサーフェスとして生成 (Rows / Columns で密度を制御) |
| NURBS | .nurbs |
NURBS サーフェスとして生成 (U Order / V Order を使用) |
| Bezier | .bezier |
Bezier サーフェスとして生成 (U Order / V Order を使用) |
| Polygon | .poly |
ポリゴンサーフェスとして生成 (Frequency で分割レベルを制御) |
| Primitive | .prim |
Primitive (内部表現) として生成。インスタンシング時は非推奨 |
※ 注意: Primitive Type に Primitive を選択すると、インスタンシング使用時に推奨されない構造になります。インスタンシングが目的の場合は Mesh / Polygon を選択してください。
Connectivity .surftype 🔗
Mesh Primitive Type のときに有効になるパラメータ:
- Connectivity:
surftype— Mesh Primitive Type のときに有効になるサーフェスタイプ
Bounds 関連パラメータ 📐
Orient Bounds .orientbounds 🔄
– 入力 SOP が接続されているときのみ有効
– オンにすると入力 SOP の向きに合わせて球体ジオメトリを回転
Modify Bounds .modifybounds 🎛️
– 入力 SOP が接続されているときのみ有効
– オンにすると下記の Transform パラメータで Bounds の位置・回転・半径をさらに変更
Accurate Bounds .accurate 📏
– 入力ジオメトリの Bounding Sphere を生成するときに使用
– オンにするとより正確な Bounding Sphere を計算 (処理コストは増加)
Transform 関連パラメータ 🎯
Rotate Order .rord 🔄
– 回転の適用順序を指定するメニューパラメータ
– X / Y / Z 軸の回転順序を 6 通りから選択 (XYZ / XZY / YXZ / YZX / ZXY / ZYX)
Radius .rad 📏
– 球体の半径を X / Y / Z 各軸で指定
– 軸ごとに異なる値を設定すると楕円体として出力
Center .t 🎯
– 球体中心のオブジェクト原点からのオフセット位置 (X / Y / Z)
Rotate .r 🔄
– 球体を X / Y / Z 軸で回転 (単位: 度)
Anchor 関連パラメータ 📌
Reverse Anchors .reverseanchors 🔁
– アンカー方向を反転
Anchor U .anchoru 📌
– X 軸方向のアンカー点 (回転・スケール・位置の基準点)
Anchor V .anchorv 📌
– Y 軸方向のアンカー点
Anchor W .anchorw 📌
– Z 軸方向のアンカー点
Orientation .orient 🧭
球体の極を揃える軸:
- Orientation:
orient— 球体の Pole (極) を整列させる軸を指定
Tessellation 関連パラメータ 🧱
Frequency .freq 📈
– Polygon Primitive Type 使用時のポリゴン分割レベル
– 値を上げるほど球体表面のポリゴン数が増加 (滑らかになるが負荷も上昇)
Rows .rows 📏
– Mesh / 不完全 NURBS / 不完全 Bezier 使用時の行数
Columns .cols 📏
– Mesh / 不完全 NURBS / 不完全 Bezier 使用時の列数
U Order .orderu 📐
– スプライン曲線使用時の U 方向のオーダー (NURBS / Bezier 用)
V Order .orderv 📐
– スプライン曲線使用時の V 方向のオーダー
サーフェス品質関連パラメータ ✨
Imperfect .imperfect 🔧
– Bezier / NURBS 球体専用
– オンで非有理近似曲線、オフで完全な有理曲線として出力
Unique Points per Pole .upole 📍
– Mesh / NURBS / Bezier サーフェス専用
– 極のポイントを各 Column で固有にするか共有するかを指定
Texture Coordinates .texture 🗺️
– 球体に UV テクスチャ座標を付加
Compute Normals .normals 🧭
– ジオメトリに法線を生成
実践アイデア 💡
Example 1: シンプルな球体オブジェクト生成 🟢
Sphere SOP → Geometry COMP → Render TOP
プロシージャルに生成した球体をレンダリングパイプラインに投入する基本パターン。Primitive Type を Polygon に切り替えるとポリゴンモデルとして扱えます。
- Sphere SOP を作成し Primitive Type を Polygon に設定
- Frequency を上げて表面のポリゴン分割数を調整
- Texture Coordinates をオンにして UV を生成
- Geometry COMP の SOP として参照し Render TOP でレンダリング
Example 2: インスタンシング用テンプレートジオメトリ ✨
Sphere SOP → Geometry COMP (Instancing) → Render TOP
小さな球体を粒子表現のテンプレートとして利用し、Instancing で大量に配置するパターン。Primitive Type は Mesh が推奨されます。
- Sphere SOP の Primitive Type を Mesh に設定 (Primitive はインスタンシング非推奨)
- Radius を 0.05 など小さい値にして粒子サイズの基準を作成
- Geometry COMP の Instancing にインスタンス座標 CHOP を接続
- Render TOP で大量の球体粒子を一括描画
Example 3: 入力ジオメトリの Bounding Sphere 取得 📐
Source Geometry SOP → Sphere SOP (Accurate Bounds) → Bounds 可視化
任意の入力ジオメトリに対し、それを内包する球体 (Bounding Sphere) を生成して衝突判定や視野チェックに転用するパターン。
- 対象のソースジオメトリ SOP を Sphere SOP の入力に接続
- Orient Bounds をオンにして入力 SOP の向きに揃える
- Accurate Bounds をオンにして精度を優先 (処理コストは増加)
- 出力された Bounding Sphere を衝突判定や Camera 視野算出に利用
関連オペレータ 🔗
類似機能OP 🔍
- Box SOP — 直方体ジオメトリのプロシージャル生成
- Circle SOP — 円・楕円ジオメトリのプロシージャル生成
- Torus SOP — トーラス (ドーナツ形) ジオメトリのプロシージャル生成
組み合わせ推奨OP 🔄
- Geometry COMP — SOP をレンダリングパイプラインに投入するコンテナ
- Render TOP — Geometry COMP を 3D レンダリングして TOP に出力
- Phong MAT — 球体表面のマテリアル (シェーダ) を割り当て
- Geometry COMP — 球体をテンプレートとして大量配置するインスタンシング機構
前処理・後処理SOP 🎯
- 前処理: Box SOP、Circle SOP、Grid SOP
- 後処理: Transform SOP、Noise SOP、Copy SOP、Merge SOP
Info CHOP情報 📊
Sphere SOP は Info CHOP による詳細情報取得に対応しています。
ジオメトリ統計 📐
num_points:num_points— 生成された球体に含まれるポイント数num_prims:num_prims— 生成された球体に含まれるプリミティブ数num_particles:num_particles— 含まれるパーティクル数 (Sphere の場合は通常 0)
GPU 転送タイミング 🎮
last_vbo_update_time:last_vbo_update_time— 別スレッドで SOP の CPU データを GPU 上のジオメトリデータに更新するのにかかった時間last_meta_vbo_update_time:last_meta_vbo_update_time— メタサーフェスジオメトリデータを GPU に更新するのにかかった時間
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 球体表面がカクカクして滑らかでない
✅ Solution:
Frequency(Polygon) またはRows/Columns(Mesh) の値を上げるCompute Normalsをオンにして法線を生成しシェーディングを改善- Primitive Type を Polygon から NURBS / Bezier に切り替えて滑らかな曲面で出力
❌ Problem: Instancing で球体テンプレートが正しく配置されない
✅ Solution:
- Primitive Type を
PrimitiveからMeshまたはPolygonに変更 (Primitive はインスタンシング非推奨) Texture Coordinatesをオンにしてシェーダ側で UV を参照できるようにする- Geometry COMP の Instancing パラメータでインスタンス座標 CHOP のパスを再確認
❌ Problem: Bounds 入力を接続したが球体の向き・サイズが反映されない
✅ Solution:
Orient Boundsをオンにして入力 SOP の向きに球体を合わせるModify Boundsをオンにすると Transform パラメータでさらに微調整が可能Accurate Boundsをオンにして精度の高い Bounding Sphere を計算


