You can see a sharp shadow near the door frame. So yeah, ambient occlusion is not going to simulate that, but it was never supposed to?
It's supposed to make 3D shapes look good without the need to place lights or do more complex ray tracing. It roughly approximates what you could perhaps see inside a photographic lightbox. Light is coming from every direction and every surface is matte.
The reason it's used in computer games is not that it's photorealistic under all lighting conditions. It's that it makes geometries look better than before with less computational overhead than the alternatives. Harsh lights often look nasty and diffuse lighting is expensive.
show comments
overgard
I agree with his overall point, but I would point out: realism is not usually the point, the point is to look good. The problem with realism is once you get past "wow the computer can do that now", it's not very interesting -- most of reality is pretty dull looking!
i wonder if this is on purpose to avoid this illusion where i cant tell if im looking at a convex or concave just from three lines
show comments
mfro
SSAO really is awful but it’s the best performing AO we could get for a long time afaik. It’s such a hallmark of 00s and 10s rendering that I laugh every time I see it in a modern release. There are some new solutions hitting the space, I believe RTGI/PT inherently handles AO, and there is even a new method called ‘FidelityFX CACAO’ which does look considerably more realistic. Things are improving… slowly.
show comments
logdahl
I find this very interesting. I have implemented AO myself and understood that its physically inaccurate (it should really be radiosity presence, not ambient occlusion), but have believed the results to look realistic. Or rather; better than flatly lit, which makes geometry hard to understand.
Thank you for these photographs! It would be awesome to have a CG benchmark like this (geometry + light properties) that we could compare to. I'm sure this exists already but. Very neat!
show comments
ahartmetz
SSAO is cheap, doesn't work that well and looks terrible if overdone, as many games did 10-15 years ago. The simple workaround is to dial down the SSAO so that it's maybe weaker than ambient occlusion in reality, but also not noticeably wrong or overdone. Fortunately, the settings often allow that. Problem mostly solved!
It's a common pattern that newly possible (usually due to hardware) effects are overdone for the wow / up-to-date look effect.
show comments
Daub
I teach 3D modelling and rendering and also drawing and oil painting.
Many time in my traditional media classes I will use the term ambient occlusion (AO) and describe it in exactly the same way as I would to my 3D class. Specifically, I ask them to imagine being surrounded by a sphere of even light. In such a case, where would the shadows be? I follow this by discussing contact shadow (e.g. the dark line between your hands as they are placed together) and core shadow (e.g. the darkness of your nostrils). In 3D rendering, both these classes of shadows are served by the AO pass.
Certainly, I would say that AO is a natural phenomenon, but it is also an effect that can be used to sweeten the naturally flat effect of a raster engine like Eevee.
I still can’t help but read most of this article as a story of a guy trying to prove his theory that corners aren’t actually dark, taking photos and plotting luminance graphs of corners, repeatedly getting these strong vee-shaped graphs that indicate that the surface darkens linearly towards the corner, and just gathering more and more pictures until eventually he finds some which show flat luminance lines, at which point he declares victory because he’s proven that corners don’t darken.
cosmic_cheese
The thing that’s always bugged me about SSAO is the “jitter” visible when the player character or camera moves, which I would imagine is due to it being calculated in screen space. In some cases it’s so distracting it breaks immersion.
Given that accuracy isn’t the goal anyway I’ve often wondered if it wouldn’t be better in many cases to apply a sort of pre-calculated AO that uses a relatively small atlas of shading textures rendered on flat surfaces as decals (disclaimer: I am not a graphics programmer). It’d apply only to angular surfaces (so for example human faces wouldn’t be included) but I’d say that 80-90% of the benefit of AO lies in things like corners of rooms anyway — it’s really just manmade objects that look bad without AO, organic shapes don’t suffer nearly as badly.
Also, looking just at inner corners of the room is too specific, SSAO affects creases everywhere, not just at the inner corners of the box.
show comments
seemaze
In 20 years of archviz, I've only encountered ambient occlusion as a shortcut to save on compute; such as real-time viewport effects or to constrain resources on large render jobs. I've never heard anyone argue that it was physically realistic, realism was always the domain of ray tracing.
BearOso
I think part of this is the mach bands illusion. We perceive some darkening at the transition between shades and think we have to replicate it in rendering. But we really don't because the brain creates the effect, so artificially adding it makes it really exaggerated.
raincole
So what's the best real time alternative to SSAO?
show comments
crystaln
But corners do look better in video games like that.
x1n13y84issmd42
Some Captain Obvious stuff.
Literally nothing real looks like CG. Shadows and lighting don't look like that. Optical effects don't look like that. People don't move like they do in games and CG animations. Physics IRL doesn't work like it does in games. Real world doesn't look like filtered JPEGs stretched over wireframes with LODs.
IshKebab
From the photos they mostly look a bit like light SSOA. Obviously some devs overdo it, but that's not SSOA's fault. And we know SSAO isn't physically based. Of course it's not going to perfectly match reality.
monster_truck
Regardless of how right or wrong this is, I woulda walked around with a vacuum first to get all those cobwebs before trying to make my point.
I'm far from a neatfreak but if those are there can you imagine what the inside of bro's computer looks like? Poor thing is probably so hot
GameOfKnowing
Author took his example photos in the backrooms lol
I don't think the author makes a persuasive argument. Most of the photos they're analyzing are obviously lit by various point light sources, e.g.:
https://nothings.org/gamedev/ssao/IMG_0064.JPG
You can see a sharp shadow near the door frame. So yeah, ambient occlusion is not going to simulate that, but it was never supposed to?
It's supposed to make 3D shapes look good without the need to place lights or do more complex ray tracing. It roughly approximates what you could perhaps see inside a photographic lightbox. Light is coming from every direction and every surface is matte.
The reason it's used in computer games is not that it's photorealistic under all lighting conditions. It's that it makes geometries look better than before with less computational overhead than the alternatives. Harsh lights often look nasty and diffuse lighting is expensive.
I agree with his overall point, but I would point out: realism is not usually the point, the point is to look good. The problem with realism is once you get past "wow the computer can do that now", it's not very interesting -- most of reality is pretty dull looking!
> https://nothings.org/gamedev/ssao/IMG_0059.JPG
i wonder if this is on purpose to avoid this illusion where i cant tell if im looking at a convex or concave just from three lines
SSAO really is awful but it’s the best performing AO we could get for a long time afaik. It’s such a hallmark of 00s and 10s rendering that I laugh every time I see it in a modern release. There are some new solutions hitting the space, I believe RTGI/PT inherently handles AO, and there is even a new method called ‘FidelityFX CACAO’ which does look considerably more realistic. Things are improving… slowly.
I find this very interesting. I have implemented AO myself and understood that its physically inaccurate (it should really be radiosity presence, not ambient occlusion), but have believed the results to look realistic. Or rather; better than flatly lit, which makes geometry hard to understand.
Thank you for these photographs! It would be awesome to have a CG benchmark like this (geometry + light properties) that we could compare to. I'm sure this exists already but. Very neat!
SSAO is cheap, doesn't work that well and looks terrible if overdone, as many games did 10-15 years ago. The simple workaround is to dial down the SSAO so that it's maybe weaker than ambient occlusion in reality, but also not noticeably wrong or overdone. Fortunately, the settings often allow that. Problem mostly solved!
It's a common pattern that newly possible (usually due to hardware) effects are overdone for the wow / up-to-date look effect.
I teach 3D modelling and rendering and also drawing and oil painting.
Many time in my traditional media classes I will use the term ambient occlusion (AO) and describe it in exactly the same way as I would to my 3D class. Specifically, I ask them to imagine being surrounded by a sphere of even light. In such a case, where would the shadows be? I follow this by discussing contact shadow (e.g. the dark line between your hands as they are placed together) and core shadow (e.g. the darkness of your nostrils). In 3D rendering, both these classes of shadows are served by the AO pass.
Certainly, I would say that AO is a natural phenomenon, but it is also an effect that can be used to sweeten the naturally flat effect of a raster engine like Eevee.
Discussed previously here in 2022: https://news.ycombinator.com/item?id=30595038
I still can’t help but read most of this article as a story of a guy trying to prove his theory that corners aren’t actually dark, taking photos and plotting luminance graphs of corners, repeatedly getting these strong vee-shaped graphs that indicate that the surface darkens linearly towards the corner, and just gathering more and more pictures until eventually he finds some which show flat luminance lines, at which point he declares victory because he’s proven that corners don’t darken.
The thing that’s always bugged me about SSAO is the “jitter” visible when the player character or camera moves, which I would imagine is due to it being calculated in screen space. In some cases it’s so distracting it breaks immersion.
Given that accuracy isn’t the goal anyway I’ve often wondered if it wouldn’t be better in many cases to apply a sort of pre-calculated AO that uses a relatively small atlas of shading textures rendered on flat surfaces as decals (disclaimer: I am not a graphics programmer). It’d apply only to angular surfaces (so for example human faces wouldn’t be included) but I’d say that 80-90% of the benefit of AO lies in things like corners of rooms anyway — it’s really just manmade objects that look bad without AO, organic shapes don’t suffer nearly as badly.
Ambient occlusion is not only about realistic indirect lighting, but also about giving objects more depth. Great example here: https://developer.playcanvas.com/user-manual/graphics/lighti...
Also, looking just at inner corners of the room is too specific, SSAO affects creases everywhere, not just at the inner corners of the box.
In 20 years of archviz, I've only encountered ambient occlusion as a shortcut to save on compute; such as real-time viewport effects or to constrain resources on large render jobs. I've never heard anyone argue that it was physically realistic, realism was always the domain of ray tracing.
I think part of this is the mach bands illusion. We perceive some darkening at the transition between shades and think we have to replicate it in rendering. But we really don't because the brain creates the effect, so artificially adding it makes it really exaggerated.
So what's the best real time alternative to SSAO?
But corners do look better in video games like that.
Some Captain Obvious stuff.
Literally nothing real looks like CG. Shadows and lighting don't look like that. Optical effects don't look like that. People don't move like they do in games and CG animations. Physics IRL doesn't work like it does in games. Real world doesn't look like filtered JPEGs stretched over wireframes with LODs.
From the photos they mostly look a bit like light SSOA. Obviously some devs overdo it, but that's not SSOA's fault. And we know SSAO isn't physically based. Of course it's not going to perfectly match reality.
Regardless of how right or wrong this is, I woulda walked around with a vacuum first to get all those cobwebs before trying to make my point.
I'm far from a neatfreak but if those are there can you imagine what the inside of bro's computer looks like? Poor thing is probably so hot
Author took his example photos in the backrooms lol
Previously...
Corners Don't Look Like That: Regarding Screenspace Ambient Occlusion (2012) - https://news.ycombinator.com/item?id=30595038 - March 2022 (43 comments)
Corners Don't Look Like That: Regarding Screenspace Ambient Occlusion (2012) - https://news.ycombinator.com/item?id=18559477 - Nov 2018 (36 comments)
Corners Don't Look Like That: Regarding Screenspace Ambient Occlusion (2012) - https://news.ycombinator.com/item?id=10105437 - Aug 2015 (19 comments)