Helgard opened this issue on Jun 26, 2010 · 195 posts
bagginsbill posted Fri, 09 July 2010 at 12:46 AM
So I'll just get started with the explanation. I don't have it all prepared and it will take quite a few posts. But I think it will be interesting. It was for me.
So to begin, we need first to understand how the Atmosphere's Depth Cue effect works.
There are two things it deals with. Both are caused by tiny particles suspended in the water. One is attenuation - light becomes weaker as it travels farther through the water. The other is scattering - as light strikes the particles, instead of continuing to travel forward, it bounces off the particles with a color that comes from whatever color the particle happens to be.
Let's understand attenuation first.
Attenuation is usually expressed as a fraction or ratio. Given an initial luminance coming off an object, after traveling through a certain distance, it is reduced before it reaches an observer. The ratio of the starting and ending luminance is the attenuation.
If we represent the emitted luminance with the letter I, and the final observed luminance with the letter F, the attenuation is defined to be the ratio F/I. For a given distance, this ratio is always the same, regardless of the initial luminance level.
So we can basically understand that attenuation is a function of distance (as yet unknown), that produces a characteristic ratio:
F/I = Attenuation(distance)
Clearly the observed luminance, F, can never be more than the starting luminance, I. Otherwise we're talking about light amplification, rather than absorption and scattering. So we know that Attenuation(x) can never be more than 1. And in fact it can only be equal to 1 when x = 0, i.e. when the light hasn't yet travelled any distance at all.
Let's ignore scattering for the moment, and just try to understand how (Depth Cue) DC implements attenuation, and why that is a problem.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)