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

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

SSAO TOP の機能を示すサムネイル

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

概要 📖 – 陰影で立体感を補強

SSAO TOPは、Render TOPの結果に画面空間アンビエントオクルージョンを掛け、物体の隙間や接地部に柔らかい陰影を加えるTOPです。各画素から周囲へレイを飛ばし、近くに遮蔽となる面があるかを調べて環境光の届きにくい箇所を暗く落とします。これにより、平面的に見えがちなレンダリング結果に接触陰影や奥行き感を低コストで足すことができます。

主な用途 🎯

  • Render TOPの出力に柔らかい接触陰影を足して立体感を強調
  • 物体同士の隙間・くぼみ・接地部を暗く落とすリアルな陰影付け
  • フラットに見えがちなCGシーンへの奥行き感の追加
  • 建築ビジュアライズや製品ビジュアルでのディテール底上げ
  • リアルタイムレンダリングでの低コストな環境遮蔽の近似

データフロー 🔄

入力: Render TOPの出力 (深度・法線情報を含む)

レイを画面空間で飛ばし周辺の遮蔽量を推定

出力: 陰影を合成した画像 (または遮蔽量のみ)
CHECK

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

まる。
まる。

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


パラメータ解説 ⚙️

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 を挿してくぼみや接触部へ柔らかい陰影を足し、見た目のリアリティを底上げする基本フロー。

  1. Geometry COMP に対象オブジェクトを入れ、Render TOP でカメラ・ライトを設定してレンダリング
  2. Render TOP の出力を SSAO TOP の入力につなぐ
  3. SSAO Radius を調整して接触陰影が出る距離を決め、Quality を Low から上げて見た目を確認
  4. Combine with Color をオンにして陰影が元のカラーに乗算されることを確認
  5. Out TOP で結果を書き出すか後段の合成へ渡す

Example 2: 遮蔽量だけ取り出し合成 🎚️

Render TOP → SSAO TOP (Combine with Color オフ) → Composite TOP (Multiply) → Out TOP

SSAO TOP の Combine with Color をオフにして遮蔽量 (陰影マップ) だけを取り出し、Composite TOP で元のレンダリング結果と乗算合成することで、陰影の強さやかかり方を後段で自由に調整できるようにする応用フロー。

  1. Render TOP の出力を SSAO TOP に通し、Combine with Color をオフにして遮蔽量のみを出力
  2. Blur Radius / Blur Sharpness でサンプリングノイズをならして陰影マップを整える
  3. Composite TOP に元の Render TOP 出力と SSAO TOP 出力を入れ、合成モードを Multiply に設定
  4. Edge Threshold を調整して陰影が物体のエッジを越えてにじまないようにする
  5. 陰影の強度を 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: アスペクト比 X
  • aspecty: アスペクト比 Y
  • depth: 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 を必要最小限まで減らす

参考資料 📚

その他 🔗

公式リソース 📖

関連オペレータ 🔗


関連まとめ 🔗

ファミリー別一覧 📑

厳選オペレータ ⭐

逆引き 🔎


この記事はLLMと共に内容を執筆、更新しています。
なるべく正確な情報を心掛けていますが、最新バージョンとの項目差異など情報の不一致を見つけたらXもしくはInsta、メールなどから管理者までご連絡いただけると嬉しいです🫠


まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
Python/Touchdesigner/M5Stackをこよなく愛すフルスタックエンジニア。
専門は生理心理学、趣味はヨガ(8年前にRYT200取得)やサウナ、美容EMSや電気風呂などヘルスケア全般。
脳波や筋電、心拍を中心とした、生体情報の解析とインタラクティブアートづくりがライフワーク。

普段はワントゥーテンという会社で空間演出エンジニアをしています。
リファラル採用お繋ぎできますので、我こそはという尖った方は経歴と希望職種添えてDMください(エンジニア以外、営業職等もOK)。
ご飯行きましょう。

日常を垂れ流すだけのアカウント
Instagram:@malmal0v0

発信を今後がんばる予定のアカウント
Youtube:https://www.youtube.com/@malmal0v0

まる。をフォローする
その他の記事はこちら
英雄のポーズ(ヴィーラーサナ)のやり方|効果・コツ・注意点【ヨガ】
リバースウォーリア(リバース戦士のポーズ)のやり方|効果・コツ・注意点【ヨガ】
壁に脚を上げるポーズ(足を壁に上げるポーズ)のやり方|効果・コツ・注意点【ヨガ】
サソリのポーズ(ヴリシュチカーサナ)のやり方|効果・コツ・注意点【ヨガ】
戦士のポーズ3(ヴィーラバドラーサナ・スリー)のやり方|効果・コツ・注意点【ヨガ】

タイトルとURLをコピーしました