[sldev] screen space ambient occlusion

Celierra Darling Celierra at gmail.com
Sat Jul 26 16:00:52 PDT 2008


On Sat, Jul 26, 2008 at 4:59 PM, Argent Stonecutter
<secret.argent at gmail.com> wrote:
>> While
>> the screen-space part is a bit of a hack, AO itself is a real-world
>> phenomenon unrelated to sun shadows,
>
> I'm not talking about just "sun shadows" here.
>
>> not "faking shadowing" at all.
>
>
> "Ambient Occlusion" is not a real world phenomenon. It is an approximation
> to the effect of shadowing in the presence of diffuse light.

I think the whole real world vs. approximation thing is just a
difference in our terminologies. (offtopic: I tend to consider a
first-order approximations "real", in the sense that Newton's gravity
is imprecise but "real", but that's a topic of some debate.)

> The result is that if you use AO to render a scene, you get dark shadows in
> corners, for example where walls meet the floor, in places where there's no
> shadowing in RL. It's got nothing to do with the quality of the
> implementation, it's purely a function of the fact that the adjacent wall or
> corner is seen as occluding the ambient light by the AO algorithm. I suppose
> you could apply second or third degree calculations and only treat surfaces
> that aren't fully illuminated in the absence of AO as being potential
> sources of shadows.

But I'm not sure why you're calling (for example) darkened corners
unrealistic - I'm looking around my real-world room and seeing plenty
of it, though I think it becomes more subtle when the surfaces aren't
plain stark white.  There is indeed a lot less ambient light reaching
these corners, no?

As for ignoring bright occluders, I might take a stab at it, but there
might not be enough data in screen space - you see a lot of the "wrong
side" of the occluders (and, it sounds rather slow...).

~Cel


More information about the SLDev mailing list