2026年7月22日(水)掲載 2,843本日 0
HN14261

「角」の描画が違和感だらけ?SSAO(スクリーン空間アンビエントオクルージョン)の落とし穴を徹底解説 (2012)

Corners Don't Look Like That: Regarding Screenspace Ambient Occlusion (2012)

firephox1日前

議論

11
0firephoxスレ主1421日前

この記事では、3Dレンダリングにおける擬似的な環境遮蔽手法である「SSAO(Screenspace Ambient Occlusion)」について、特に画面上の隅や角の描画で生じる違和感の原因とそのメカニズムを技術的視点から掘り下げています。2012年当時の知見として、なぜ当時のアルゴリズムでは不自然な影が落ちてしまうのか、視覚的な誤りが発生する背景やその構造的な課題を詳しく考察した内容となっています。

1mfro1日前

SSAOって実際ひどい代物だけど、僕が知る限り長い間、利用可能なAOの中では最もパフォーマンスが良かったんだよね。00年代や10年代のレンダリングの象徴すぎて、最近のリリースで見かけるたびに笑っちゃう。最近は新しい解決策も出てきていて、RTGIやPTならAOを本質的に処理できるし、FidelityFX CACAOなんてかなりリアルに見える手法もある。少しずつだけど、状況は改善してるよ。

3logdahl1日前

これすごく面白いね。自分でもAOを実装したことがあるけど、物理的に不正確だってことは分かってた(実際にはアンビエントオクルージョンじゃなくてラジオシティの存在であるべきだから)。でも結果はリアルに見えると思ってた。というか、フラットなライティングよりも、ジオメトリが理解しやすくなるからね。写真の共有ありがとう!こういうCGのベンチマーク(ジオメトリ+光の特性)があったら最高だよね。たぶん既にあるんだろうけど、すごくいいね。

4overgard1日前

彼の全体的な意見には同意するけど、一点指摘したい。リアルさは必ずしも目的じゃなくて、見栄えが良いことが重要なんだ。「おー、今のコンピュータならこれができるのか!」っていう驚きを過ぎてしまうと、リアルさってそれほど面白くない。現実のほとんどは見ていてかなり退屈だからね!

5skippyfish1日前

著者の主張にはあまり説得力を感じないかな。彼が分析している写真のほとんどは、明らかに点光源で照らされているし。 https://nothings.org/gamedev/ssao/IMG_0064.JPG (https://nothings.org/gamedev/ssao/IMG_0064.JPG) ドア枠の近くに鋭い影が見えるでしょ。アンビエントオクルージョンはそれをシミュレートするものじゃないし、そもそもそんな役割は期待されてないはず。AOは、ライトを配置したり複雑なレイトレーシングをしなくても、3D形状を綺麗に見せるためのもの。全ての面がマットな状態で、あらゆる方向から光が当たっているライトボックスの中を概算しているような感じだね。ゲームで使われるのは、あらゆる照明条件下でフォトリアルだからじゃなくて、代替案より計算負荷が低くて、ジオメトリを以前より綺麗に見せてくれるからだよ。強い光はひどい見た目になることが多いし、拡散照明はコストがかかるからね。

6seemaze1日前

20年ほど建築ビジュアライゼーションをやってきたけど、アンビエントオクルージョンを計算を節約するためのショートカットとしてしか扱ったことがないよ。リアルタイムのビューポートエフェクトや、大規模なレンダリングジョブのリソース制限のためとかね。物理的にリアルだなんて主張する人には会ったことがないし、リアルさは常にレイトレーシングの領域だったよ。

7cosmic_cheese1日前

SSAOでずっと気になっていたのは、プレイヤーキャラやカメラが動くときに目立つ「ジッター」だね。たぶんスクリーン空間で計算しているからだろうけど。時には集中を削ぐほど気になることもある。正確さが目的じゃないなら、フラットな面にデカールとして焼き付けた小さなシェーディングテクスチャの集まりを使う、プリ計算されたAOの方がいいんじゃないかと思うことがある(注:グラフィックスプログラマーではないけど)。角のある面にしか適用できないけど(人間の顔とかは除外)、AOの利点の80〜90%は部屋の隅とかにあるわけだし。実際、AOがないとひどい見た目になるのは人工物で、有機的な形状はそこまで悪目立ちしないしね。

8ivanjermakov1日前

アンビエントオクルージョンは単にリアルな間接照明の話だけじゃなくて、オブジェクトに奥行きを与える役割もあるよ。いい例がここにある: https://developer.playcanvas.com/user-manual/graphics/lighting/ambient-occlusion/ あと、部屋の隅だけに注目するのは限定的すぎるかな。SSAOは隅だけじゃなくて、至る所の折り目に影響するからね。

9ahartmetz1日前

SSAOは安上がりだけど、そこまでうまく機能するわけじゃないし、10〜15年前のゲームみたいにやりすぎると見た目がひどいよね。簡単な対策はSSAOを弱めに設定して、現実のアンビエントオクルージョンより薄く、かつ違和感がない程度に留めること。幸い、設定で調整できるゲームが多いから、これで大体解決するよ。新しい技術(ハードウェアのおかげで可能になったもの)を、「最新っぽさ」を見せつけるためにやりすぎてしまうのはよくあるパターンだね。

10jameshart1日前

以前、2022年にもここで議論されてるね: https://news.ycombinator.com/item?id=30595038 この記事の大部分を読んでいると、どうしても「部屋の隅は実は暗くない」という自分の理論を証明したくて、写真を撮りまくって輝度グラフを作ってはV字型のグラフが出てきて、最後には自分の望むフラットな線が出るまで写真を撮り続けて、「ほら、角は暗くならないことが証明された!」と勝利宣言している人の物語に見えてしまうんだよね。