For those who may have missed the recent discussion on github
, there s a new unifrm used now in Oolite and it refers to atmospheric fog.
Since approximately v1.69, when shaders were first introduced, Oolite has been carrying a "bug": atmospheric fog did not work. This, technically, is not a bug, since The OpenGL specification states that fog should be disabled when there are fragment shaders running. However, it did look kind of weird, to say the least and was something that needed fixing.
See the pic below. This is what you have been seeing up to now when shaders were enabled and you were looking up at the Lave Coriolis station from within the atmosphere:
In reality, it should look like this (which is what you can already see with shaders disabled:
The deeper you go into the atmosphere, the denser the fog becomes. This creates not only a more pleasing visual effect, but also a sense of scale increase, which is good.
Thanks to some shader wizardry by kanthoney, shader writers can now bind the method
, which holds the fog color's rgba value, to a vec4 type uniform and apply the effect on their creations. You can refer to the current nightly's Resources\Shaders\oolite-default-shader.fragment (vec4 uFogColor) for an example of how we use it (but keep in mind that Oolite binds the uniforms to methods internally for its default shaders, so you aay still need to do the fogUniform binding manually).
Edit: Example of foggified Griff's Dodo spawned inside planet's atmosphere: