角落不该这么黑:SSAO 的视觉陷阱

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

角落不该这么黑:SSAO 的视觉陷阱

游戏开发者对屏幕空间环境光遮蔽(SSAO)简直爱得发狂,但结果往往适得其反。Sean Barrett 指出,无论是业余爱好者还是专业团队,渲染出的角落常常显得异常黑暗,甚至出现诡异的光晕和伪影。他通过实拍真实世界的 Cornell box 和自家公寓角落,用数据证明:现实中的角落并没有 SSAO 渲染得那么黑。他认为,这种视觉偏差源于对物理光照的误解、近似算法的误差以及过度调优。文章呼吁开发者重新审视 SSAO 的实现逻辑,别被错误的直觉误导,让画面回归真实。

游戏开发者对屏幕空间环境光遮蔽(SSAO)简直爱得发狂,以至于他们做出了各种疯狂的举动。
  1. skippyfish

    我觉得作者的观点并不令人信服。他分析的大多数照片显然都是由各种点光源照明的,例如:

    https://nothings.org/gamedev/ssao/IMG_0064.JPG

    你可以看到门框附近有一道清晰的阴影。所以没错,环境光遮蔽(AO)确实模拟不出这种效果,但这本来也不是它该做的?

    它的本意是在无需布光或进行更复杂的光线追踪的情况下,让 3D 模型看起来更自然。它大致模拟的是你在摄影柔光箱内可能看到的效果:光线来自四面八方,且所有表面都是漫反射的。

    它之所以被用于电脑游戏,并不是因为它在所有光照条件下都能达到照片级真实感。而是因为它能在计算开销小于替代方案的同时,让几何体看起来比以前更好。强烈的直射光往往看起来很刺眼,而漫反射光照又很昂贵。

  2. overgard

    我同意他的总体观点,但我想指出:真实感通常不是重点,重点是要“好看”。真实感的问题在于,一旦你跨过了“哇,电脑现在也能做到这个了”的阶段,它就变得没什么意思了——毕竟现实世界的大部分场景看起来都很平淡无奇!

  3. jareklupinski

    > https://nothings.org/gamedev/ssao/IMG_0059.JPG

    我想知道这是否是故意的,为了避免那种仅凭三条线就无法判断是凸面还是凹面的视觉错觉。

  4. mfro

    SSAO 确实很糟糕,但据我所知,在很长一段时间里,它是性能最好的 AO 方案。它简直是 00 年代和 10 年代渲染技术的标志性特征,以至于每次在现代作品中看到它,我都会忍不住笑。现在有一些新方案正在进入这个领域,我相信 RTGI/PT 本质上就能处理 AO,甚至还有一种名为‘FidelityFX CACAO’的新方法,看起来确实要真实得多。情况正在改善……虽然很慢。

  5. jameshart

    2022 年曾在此讨论过:https://news.ycombinator.com/item?id=30595038

    我仍然忍不住觉得,这篇文章读起来就像是一个人在试图证明他的理论:角落其实并不暗。他拍照片、绘制角落的亮度曲线图,反复得到这些强烈的 V 形曲线,表明表面亮度向角落方向线性变暗。于是他收集了越来越多的照片,直到终于找到几张显示亮度曲线是平的,然后他就宣布胜利,声称自己证明了角落不会变暗。

同日更多故事

2026-07-20