実際のコーナーがスクリーンスペースアンビエントオクルージョンが予測するよりはるかに明るく見える理由
なぜ実際のコーナーはスクリーンスペースアンビエントオクルージョン(SSAO)が予測するよりはるかに明るく見えるのか
TL;DR – 実際のコーナーは典型的なSSAOレンダリングほど暗くない
日常的な屋内コーナーの写真は、わずかで一貫性のないエッジ暗化しか示さないのに対し、多くのゲームはスクリーンスペースアンビエントオクルージョン(SSAO)で顕著で均一な暗化を適用している。この不一致は、SSAO の近似、アンビエントシェーディングの誤用、そして過度に攻撃的な重み付けに起因する。
前提:SSAO のコーナー暗化問題
- ゲーム開発者は低コストで奥行きを加える手段として SSAO を好む。
- 一般的な SSAO のアーティファクトには 凸状コーナーの明るいハロー、凹状コーナーの鋭い暗帯、そして 部屋のエッジ全体の過度な暗化 が含まれる。
- 著者は、これらのアーティファクトは「実世界のコーナーは本質的に非常に暗い」という誤った信念から生じていると主張する。
著者が指摘する 4 つの要因
- SSAO ≠ 完全なアンビエントオクルージョン – スクリーンスペースのサンプリングは視界の背後にあるジオメトリを見逃し、光の過小評価につながる。
- AO ≠ ラジオシティ – 正しい AO 項でも遮蔽しか捉えず、ラジオシティが提供する完全な間接反射は含まれない。
- AO をすべてのライティングに適用 – 一部のパイプラインは AO 項を直接光に掛け合わせ、暗化を誇張する。
- ヒューリスティックな重み付け – アーティストは効果を目立たせるために AO の強さを上げがちで、実世界の微妙な変化を覆い隠す。
手法:写真によるグラウンドトゥルース
- カメラ: Canon 5D Mk II、JPEG エクスポート、露出 1/80 – 1/8 秒。
- 処理: 4 倍ダウンサンプリング、クロマチャンネルに 16 ピクセルのガウスブラーを適用しノイズを抑制。
- 測定: エッジを横切るライン上で 5×5(または 3×3)ボックスフィルタでピクセル平均をサンプリングし、sRGB 輝度グラフとしてプロット。
- 注意点: 画像は sRGB でトーンマッピングが不明。グラフは線形光ではなく sRGB 値を表す。
ケーススタディ
1. 劇的に暗くなったコーナー(図 1)
- コーナーは典型的な SSAO レンダリングのように見えるが、暗さの大半は 埋め込みライトが作る柔らかい影 に起因し、アンビエントオクルージョンではない。
- グラフは影側で急激な輝度低下、反対側で Lambertian に起因する緩やかな暗化を示す。
- 結論: SSAO はこの暗帯全体を遮蔽とみなして効果を増幅してしまう。
2. ソフトシャドウが支配的でないコーナー
左側コーナー
- 直接光は主にサイドランプから。天井はエッジに向かってやや暗くなるが、壁は明るさを保つ。
- グラフは天井の暗化が控えめで、壁の輝度は安定していることを確認。
中央コーナー
- 主に間接光。グラフは フラット で、Mach バンド的な知覚的暗化以外にほとんどエッジ暗化がないことを示す。
- 長時間露光でも測定された暗化は依然として僅か。
右側コーナー
- 強い遠近法により視覚的暗化が急に見えるが、補正測定では 緩やかな 変化が明らかになる。
- 背面の壁はほぼ暗化なし。左壁と天井ははっきりとしたが穏やかな減衰を示す。
3. 暗いバスルームのコーナー
- 低照度環境でも、壁と天井に沿った測定暗化は 最小限。
- 短時間・長時間露光の両方のグラフは僅かな変動しか示さず、顕著な AO スタイルのビネット期待に反する。
4. 光源近くのコーナー
- 床ランプの直接光が壁を明るくし、反対側の壁は 二次影 により暗くなるが、これはアンビエントオクルージョンではない。
- グラフは左壁でごく小さなエッジ暗化を示すが、天井は壁側に向かって反射光でむしろ明るくなる。
5. 天井と壁の単一エッジ
- 暗側に向かうにつれてアンビエント寄与が増えるが、測定暗化は 一貫して増加しない。壁は後のサンプルでむしろ平坦になる。
- この不整合は、単純な AO ベースの暗化モデルでは微妙な挙動を捉えられないことを示唆する。
データが示すこと
- エッジ暗化は微妙で文脈依存が強い – 他の要因(柔らかい影、遠近法、色コントラスト)で既に暗くなっているときにのみ現れる。
- Mach バンド(エッジでの知覚的コントラスト)はしばしば物理的暗化と見間違われる。
- 線形光 vs. sRGB – sRGB グラフを線形空間に変換すれば暗化は増幅されるが、ゲームで見られる攻撃的な SSAO カーブほどは決してない。
コミュニティの反応(抜粋コメント)
"SSAO は安価で、うまく機能しないことも多く、やりすぎるとひどく見える… シンプルな回避策は強度を下げることだ。" – ahartmetz
"リアリズムが目的ではない;見た目が良ければそれでいい。『わお』要素を超えたら、現実の多くはかなり退屈に見える。" – overgard
"グラフはエッジ暗化が一貫していないことを示している;SSAO は現実と合わない均一な暗化をしがちだ。" – logdahl
"Mach バンド錯覚が遷移部で暗化を知覚させる理由だ;SSAO で人工的に加えると効果が誇張される。" – BearOso
開発者への実践的な示唆
- SSAO はスタイリスティックな補助とみなし、物理的に正確なモデルではない – 間接シェーディングの近似として期待し、測定されたコーナー暗化を再現しようとしない。
- AO を直接光から分離する – AO はアンビエント項にだけ掛け合わせ、すでに影になっている表面の過度な暗化を防ぐ。
- シーンごとに AO 強度を調整 – 0.2–0.4 程度の控えめな重みで開始し、必要に応じてエリア単位でアーティストが調整できるようにし、万能なカーブは避ける。
- 代替手法を検討 – FidelityFX CACAO、レイトレーシング GI、事前計算されたライトマップなど、同等のパフォーマンスでより正確な間接シェーディングを提供できる最新技術を活用。
- 実世界のリファレンスで検証 – 本稿のようなシンプルな写真測定は、任意の新しい AO 実装の妥当性チェックとして有用。
結論
写真的証拠は、屋内コーナーが多くの SSAO 実装が課すような強く均一な暗化をほとんど示さないことを示す。知覚される暗さは、柔らかい影、遠近法、知覚的コントラストの組み合わせであり、真のアンビエントオクルージョンではない。したがって、開発者は SSAO を視覚的強化として扱い、その影響を慎重に制限し、リアリズムが重要な場合はより物理ベースの代替手段を検討すべきである。