
概要 📖 – 陰影で立体感を補強
SSAO TOPは、Render TOPの結果に画面空間アンビエントオクルージョンを掛け、物体の隙間や接地部に柔らかい陰影を加えるTOPです。各画素から周囲へレイを飛ばし、近くに遮蔽となる面があるかを調べて環境光の届きにくい箇所を暗く落とします。これにより、平面的に見えがちなレンダリング結果に接触陰影や奥行き感を低コストで足すことができます。
主な用途 🎯
- Render TOPの出力に柔らかい接触陰影を足して立体感を強調
- 物体同士の隙間・くぼみ・接地部を暗く落とすリアルな陰影付け
- フラットに見えがちなCGシーンへの奥行き感の追加
- 建築ビジュアライズや製品ビジュアルでのディテール底上げ
- リアルタイムレンダリングでの低コストな環境遮蔽の近似
データフロー 🔄
入力: Render TOPの出力 (深度・法線情報を含む)
↓
レイを画面空間で飛ばし周辺の遮蔽量を推定
↓
出力: 陰影を合成した画像 (または遮蔽量のみ)
初心者の方は、以下日本語書籍も手元にあると安心です😊

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
SSAO Page 📋
品質設定 .quality 🎚️
計算品質の段階指定
| 項目 | 内部名 | 説明 |
|---|---|---|
| Low | .low |
低品質 (軽量) |
| Medium | .medium |
中品質 |
サンプリング .sampling 🎯
Sample Directions .sampledirs 🧭Sample Directions (サンプル方向数) — 各画素から、近くに環境光を遮る面がないか調べるためにランダムな方向へレイを飛ばします。このパラメータは1画素あたり何本のレイを飛ばすかを制御します。
Sample Steps .samplesteps 👣Sample Steps (サンプルステップ数) — これは2D画素ベースの処理なので、各レイは経路に沿って近隣の複数画素をサンプリングして注目点を探します。このパラメータは各レイが行うサンプリング回数を制御します。
Surface Avoid Angle .surfaceavoid 📐Surface Avoid Angle (面回避角度) — 起点が乗っている平面 (点の法線で決まる) に近づきすぎないようにレイの角度をずらします。自己遮蔽による不自然な暗がりを防ぐ調整です。
解像度 .ssaopassres 🖼️
計算パスの解像度指定
| 項目 | 内部名 | 説明 |
|---|---|---|
| Full | .full |
入力と同解像度 (高品質・高負荷) |
| Half | .half |
入力の 1/2 解像度 |
| Quarter | .quarter |
入力の 1/4 解像度 (軽量・粗め) |
陰影の調整 .ssaoadjust 🌑
SSAO Radius .ssaoradius 📏SSAO Radius (探索半径) — 現在の点から遮蔽物を探す距離 (オブジェクト空間単位)。大きくすると広い範囲の陰影を拾い、小さくすると細かい接触陰影だけを残します。
Contrast .contrast 🌗Contrast (コントラスト) — SSAOの寄与のコントラストを制御します。値を上げると陰影のメリハリが強まります。
Attenuation .attenuation 🔅Attenuation (減衰) — 環境光の減衰量を制御します。陰影が距離に応じてどれだけ弱まるかを調整する設定です。
Edge Threshold .edgethresh 🪚Edge Threshold (エッジしきい値) — アンビエントオクルージョンが物体のエッジを越えて他の物体へにじむのを防ぐため、深度バッファを使ったエッジ検出を行います。このパラメータはエッジ検出の感度を制御します。
ぼかし .blur 💧
Blur Radius .blurradius 🌫️Blur Radius (ぼかし半径) — ぼかし量 (ピクセル単位)。サンプリングで生じる陰影のノイズを滑らかにならすために使います。
Blur Sharpness .blursharpness 🔪Blur Sharpness (ぼかしの鮮鋭度) — ぼかし処理の鮮鋭度を制御します。エッジを保ちつつノイズだけをならしたいときに調整します。
色との合成 .combinewithcolor 🎨
陰影を入力カラーに乗算するか、遮蔽量のみを出力するかの切替:
- Combine with Color:
Combine with Color(色と合成) — デフォルトでは最終的なアンビエントオクルージョン結果が Render TOP のカラー出力に乗算されます。このパラメータをオフにすると、アンビエントオクルージョンの結果だけを出力します。
Common Page 🔧
Common (placeholder) .common_placeholder ⚙️
TOP family 共通設定 (canonical sync で展開):
- Common Page: TOP family 共通のページ設定 (Output Resolution / Pixel Format / Channel Mask 等)。詳細は canonical sync で反映
実践アイデア 💡
Example 1: CGシーンの陰影底上げ 🌑
Geometry COMP → Render TOP → SSAO TOP (Combine with Color オン) → Out TOP
通常のレンダリングだけでは物体の隙間や接地部が明るく浮いて立体感が乏しくなりがちなシーンに対し、Render TOP の直後に SSAO TOP を挿してくぼみや接触部へ柔らかい陰影を足し、見た目のリアリティを底上げする基本フロー。
- Geometry COMP に対象オブジェクトを入れ、Render TOP でカメラ・ライトを設定してレンダリング
- Render TOP の出力を SSAO TOP の入力につなぐ
- SSAO Radius を調整して接触陰影が出る距離を決め、Quality を Low から上げて見た目を確認
- Combine with Color をオンにして陰影が元のカラーに乗算されることを確認
- Out TOP で結果を書き出すか後段の合成へ渡す
Example 2: 遮蔽量だけ取り出し合成 🎚️
Render TOP → SSAO TOP (Combine with Color オフ) → Composite TOP (Multiply) → Out TOP
SSAO TOP の Combine with Color をオフにして遮蔽量 (陰影マップ) だけを取り出し、Composite TOP で元のレンダリング結果と乗算合成することで、陰影の強さやかかり方を後段で自由に調整できるようにする応用フロー。
- Render TOP の出力を SSAO TOP に通し、Combine with Color をオフにして遮蔽量のみを出力
- Blur Radius / Blur Sharpness でサンプリングノイズをならして陰影マップを整える
- Composite TOP に元の Render TOP 出力と SSAO TOP 出力を入れ、合成モードを Multiply に設定
- Edge Threshold を調整して陰影が物体のエッジを越えてにじまないようにする
- 陰影の強度を Composite 側の不透明度などで微調整して仕上げる
関連オペレータ 🔗
類似機能OP 🔍
- Bloom TOP — レンダリング結果に後処理エフェクトを掛ける同系統の TOP
組み合わせ推奨OP 🔄
- Render TOP — 陰影付けの対象となる画像を生成する前段の必須 TOP
- Composite TOP — 遮蔽量のみ出力時に元の画像と乗算合成する
- Level TOP — 陰影の明るさ・コントラストを後段で微調整する
- Blur TOP — 陰影マップを追加でぼかして馴染ませる
前処理・後処理TOP 🎯
Info情報 📊
SSAO TOP は Info CHOP / Info DAT に接続することで出力テクスチャの解像度・ピクセルフォーマット・クック情報を取得できます。陰影計算が重い場合は cook_time を見ながら Quality や SSAO Pass Resolution を下げて負荷を調整すると診断に役立ちます。
TOP固有情報 🖼️
resx: TOP の出力解像度 X (ピクセル単位)resy: TOP の出力解像度 Y (ピクセル単位)aspectx: アスペクト比 Xaspecty: アスペクト比 Ydepth: 3D テクスチャ / テクスチャ配列の深度 (2D テクスチャでは 1)gpu_memory_used: TOP が消費している GPU メモリ量 (MB 単位)
汎用オペレータ情報 🔄
total_cooks: プロセス開始からのクック回数cook_time: 最後のクック時間 (ミリ秒)cook_frame: 最後にクックされたフレーム番号warnings: 警告数errors: エラー数
TOP共通情報 🖼️
resx: 出力テクスチャの横幅 (ピクセル単位)resy: 出力テクスチャの縦幅 (ピクセル単位)aspectx: アスペクト比の横成分aspecty: アスペクト比の縦成分depth: ピクセルフォーマットのビット深度gpu_memory_used: このテクスチャが消費している GPU メモリ量 (バイト)
OP共通情報 📡
total_cooks: ノードがクックされた累積回数cook_time: 直近フレームのクック時間 (ミリ秒)。陰影計算の負荷確認に有用cook_frame: 最後にクックされたフレーム番号last_cook_start_time: 最後のクック開始時刻
トラブルシューティング ⚠️
よくある問題と解決策 🔧
❌ Problem: 陰影が出ない / 効果が見えない
✅ Solution:
- 入力が Render TOP の出力で、深度・法線情報を含んでいるか確認 (単なる2D画像では正しく機能しない)
SSAO Radiusを大きくして遮蔽物を探す距離を広げるContrastを上げて陰影のメリハリを強める
❌ Problem: 陰影がノイズっぽい / ザラつく
✅ Solution:
Sample Directions/Sample Stepsを増やしてサンプリング数を上げるBlur Radiusを大きくしてサンプリングノイズをならすQualityを Low から Medium に上げる
❌ Problem: 処理が重い / フレームレートが落ちる
✅ Solution:
SSAO Pass Resolutionを Half または Quarter に下げるQualityを Low にして計算コストを抑える- Info CHOP の
cook_timeを見ながらSample Directions/Sample Stepsを必要最小限まで減らす
参考資料 📚
その他 🔗
- TouchDesigner Wiki — Category:TOPs
- TouchDesigner Wiki — Pixel Formats 解説
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group
公式リソース 📖
関連オペレータ 🔗
関連まとめ 🔗
ファミリー別一覧 📑
厳選オペレータ ⭐
- 初心者必見!必須オペレータまとめ
- よく使うCHOP厳選15選
- よく使うTOP厳選15選
- よく使うSOP厳選14選
- よく使うMAT厳選6選
- よく使うDAT厳選9選
- よく使うCOMP厳選8選
- よく使うPOP厳選13選


