
概要 📖 – カメラ距離で詳細度を変える
LOD SOPは、カメラからの距離に応じてジオメトリの詳細度を自動的に切り替える SOPです。ジオメトリ自体は変更せず、距離に応じた複数の詳細レベルをキャッシュとして保持し、遠景では軽量メッシュで描画して描画負荷を下げます。
主な用途 🎯
- 遠景オブジェクトの自動軽量化 (カメラから離れたモデルを低ポリゴンで描画)
- 大規模シーンの描画負荷削減 (建築・都市規模ビジュアライゼーション)
- VR・インタラクティブ作品のフレームレート維持
- カメラ移動に追随した連続的な詳細度遷移
- Rest Geometry 入力を活用した高品質ポリゴン削減
データフロー 🔄
入力 0: 元ジオメトリ SOP
↓
入力 1 (任意): リダクション用 Rest Geometry
↓
LOD キャッシュ構築 (Step % / Minimum % で複数詳細レベル生成)
↓
カメラ距離に応じた詳細レベル選択
↓
出力: 距離に対応した詳細度のジオメトリ
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
Page 📁
詳細度の階段設定 📐
Step % .steppercent 📊
– Step % (詳細度ステップ %) — 1 段階下の詳細レベルに移るときに残すポリゴン数の割合
– 例: 50 なら 1 段階ごとにポリゴン数が約半分になり、複数段のキャッシュが構築される
– 小さくするほど詳細度の落差が大きく、各段階のメッシュ品質差が目立ちやすくなる
Minimum % .minpercent 📉
– Minimum % (最小ポリゴン割合) — どれだけ遠ざかってもポリゴン数がこの割合を下回らないようにする下限値
– 例: 5 なら元ジオメトリの 5% 未満には削減されない
– 大きくし過ぎると遠景でも負荷が下がらず、小さくし過ぎると遠景でシルエットが破綻する
カメラ距離設定 📏
Dist. Threshhold .distance 📷
– Dist. Threshhold (距離しきい値) — カメラからこの距離以内では元のフル詳細メッシュで描画される
– しきい値を越えた距離からは Step % に従って詳細度が段階的に下がる
– シーンのワールドスケールに合わせて調整する (例: 建築シーンで 10 〜 50 など)
リダクション品質 🎚️
Stiffen Border .borderweight 🧱
– Stiffen Border (境界の硬さ) — ジオメトリの外周 (境界) ポリゴンが削減で崩れにくくなる重み
– 値を大きくするほど境界形状が保持され、シルエットの破綻を防ぎやすい
– 開いたメッシュ (穴あき形状や板状) で特に効果がある
Equalize Edges .lengthweight 📐
– Equalize Edges (辺の均等化) — ポリゴンサイズの偏りを抑え、均等な大きさの三角形を優先する重み
– 値を大きくするほど見た目が均一になるが、細部ディテールは丸まりやすくなる
描画オプション 🎨
Pre-Triangulate .triangulate 🔺
– Pre-Triangulate (事前三角形化) — ポリゴン削減は三角形のみが対象となるため、入力を事前に三角形化する
– 四角ポリゴンや多角形を含むモデルに LOD を効かせたい場合はオンにする
Optimize Rendering .tstrips ⚡
– Optimize Rendering (描画最適化) — 描画時に三角形ストリップ (triangle strips) を生成して GPU 描画を最適化する
– 単純なメッシュではオンにすると描画速度が向上する
Only Affect Polygons .polysonly 🔷
– Only Affect Polygons (ポリゴンのみ適用) — オンにするとモデルのうちポリゴン部分のみが低詳細度で表示される
– オフにすると NURBS や Bezier などのサーフェスを含む全タイプがカメラ距離の影響を受ける
実践アイデア 💡
Example 1: 遠景の自動軽量化 🏙️
File In SOP (高ポリゴン建築モデル) → LOD SOP (Dist. Threshhold=30, Step %=50, Minimum %=10) → Geometry COMP → Render TOP
大規模な建築モデルをそのまま描画すると遠景でも全ポリゴンを処理してしまうため、LOD SOP を間に挟んでカメラ距離に応じてポリゴン数を段階的に減らし、遠景の負荷を抑える基本構成。
- 高ポリゴンの建築モデルを
File In SOPまたはAlembic SOPで読み込む - 後段に
LOD SOPを接続しDist. Threshholdをシーンスケールに合わせて設定 (例:30) Step %を50、Minimum %を10に設定して詳細度の階段を定義Pre-Triangulateをオンにして四角ポリゴンも削減対象にするGeometry COMP経由でRender TOPに描画し、カメラを引いた際にポリゴン数が減ることを Info CHOP のnum_primsで確認
Example 2: 高品質リダクション設定 ♻️
Sphere SOP (高解像度) → LOD SOP (Input 0) / Sphere SOP (低解像度 Rest Geometry, Input 1) → Geometry COMP
ポリゴン削減アルゴリズム自体に高品質な参照メッシュを与えたい場合は Input 1 に Rest Geometry を渡す。Input 0 のポイントは保ちつつ、Input 1 のジオメトリを基準に削減計算を行うため、形状破綻を抑えながら軽量化できる。
- 詳細度の高いジオメトリを Input 0 (左側) に接続
- 削減計算用の Rest Geometry (同じ形状の整ったメッシュ) を Input 1 (右側) に接続
Stiffen Borderを大きめ (例:5) に設定して境界の崩れを抑制Equalize Edgesで均一な三角形を優先するか、ディテール優先で小さめに設定するかを調整Minimum %で過度な削減を防ぐ下限を設定
Example 3: VR シーンでの負荷分散 🥽
Merge SOP (シーン内オブジェクト統合) → LOD SOP (Optimize Rendering=ON) → Geometry COMP → Camera COMP (VR) → Render TOP
両眼レンダリングで描画コストが倍になる VR シーンでは、遠くのオブジェクトを軽量化することがフレームレート維持の決め手になる。LOD SOP の Optimize Rendering をオンにして三角形ストリップでの描画も併用する。
- シーン内の複数オブジェクトを
Merge SOPで 1 ノードに統合 LOD SOPを後段に置きOptimize Renderingをオンにして GPU 描画を最適化Only Affect Polygonsをオンにして NURBS など他の表面タイプは影響外にする- VR 用
Camera COMPで両眼カメラを設定しRender TOPで描画
関連オペレータ 🔗
類似機能OP 🔍
- Polyreduce SOP — 距離に関係なく直接ポリゴン数を削減する SOP
- Convert SOP — サーフェスタイプ変換 (NURBS → ポリゴン等) で前処理として併用
組み合わせ推奨OP 🔄
- Geometry COMP — LOD SOP の出力をレンダリングパイプラインに投入
- Camera COMP — LOD 計算の基準となるカメラ位置を提供
- Render TOP — LOD で軽量化されたジオメトリを最終描画
- Info CHOP —
num_points/num_primsで削減効果を数値確認
前処理・後処理SOP 🎯
Info CHOP情報 📊
LOD SOP は Info CHOP による詳細情報取得に対応しています。
ジオメトリ統計 📐
num_points: この SOP に含まれるポイント数num_prims: この SOP に含まれるプリミティブ数num_particles: この SOP に含まれるパーティクル数
GPU 転送タイミング 🎮
last_vbo_update_time: 別スレッドで SOP の CPU データを GPU 上のジオメトリデータに更新するのにかかった時間 (フレーム時間外)last_meta_vbo_update_time: 別スレッドで metaball や NURBS のようなメタサーフェスジオメトリデータを GPU に更新するのにかかった時間 (フレーム時間外)
汎用オペレータ情報 🔄
total_cooks: プロセス開始以降にこのオペレータがクックされた合計回数cook_time: 直近のクック所要時間 (ミリ秒)cook_frame: このオペレータが最後にクックされたフレーム番号warnings: このオペレータの警告数errors: このオペレータのエラー数
クック統計 ⏱️
total_cooks:total_cooks— プロセス開始以降にこのオペレータがクックされた合計回数cook_time:cook_time— 直近のクック所要時間 (ミリ秒)cook_frame:cook_frame— このオペレータが最後にクックされたフレーム番号cooked_this_frame:cooked_this_frame— 当該フレームでクックされた場合は1
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: ポリゴンが削減されない / LOD が効かない
✅ Solution:
Pre-Triangulateをオンにする — ポリゴン削減は三角形にしか効かないため、四角ポリゴンや多角形のままだと対象外になる- 入力ジオメトリにポリゴンが含まれているか確認 — NURBS / Bezier 等のサーフェスのみの場合は
Only Affect Polygonsオフでも詳細度は変わらない Minimum %が高すぎないか確認 —50以上だとほぼ削減効果が見えない
❌ Problem: カメラを引いてもフレームレートが下がらない / 描画負荷が減らない
✅ Solution:
Dist. Threshholdがシーンのワールドスケールに対して大き過ぎないか確認 — ほとんどのカメラ位置がしきい値内に収まると LOD が発動しないOptimize Renderingをオンにして三角形ストリップ描画を有効化- 前段に Polyreduce SOP を併用してベースのポリゴン数自体を下げる
❌ Problem: 削減後にメッシュの境界やシルエットが崩れる
✅ Solution:
Stiffen Borderを大きめ (例:5〜10) に設定して境界形状の保持を優先する- Input 1 に整った Rest Geometry を渡してリダクション基準を安定させる
Equalize Edgesを小さめにしてディテール保持を優先する
❌ Problem: 詳細度の切り替わりが急に見える / カクツク
✅ Solution:
Step %を大きめ (例:70〜80) に設定して 1 段階あたりの差を小さくするMinimum %を上げて遠景でもある程度の詳細度を保つ- シーン全体のカメラ動作速度を抑えるか、視差の少ないアングルを選ぶ
参考資料 📚
その他 🔗
- TouchDesigner Wiki — SOP 概要
- TouchDesigner Wiki — Category:SOPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
- TouchDesigner公式ドキュメント – LOD SOP
- TouchDesigner公式ドキュメント – Polyreduce SOP
- TouchDesigner公式ドキュメント – Geometry COMP

