Post 7: Atmosphere
This week I decided to focus on implementing atmospheric conditions. These can be used to effect at any point in the game, so I would need to centralise their controls in a global set of parameters. I started off by creating this and thinking about all the different weather conditions that I could implement.
I started off with rain as this seemed fairly easy to think about. First port of call was to include a control for the glossiness of the terrain textures. This was achieved by running a variable parameter to the specular levels said texture. The parameter is based out of the global controller and referenced in the landscape material.
This same method could be used on the grass and bush models to continue the wet look throughout the world.
The next step was to create a weather controller that would sit above the player and play particle effects directly above them. This is a good way to save resources and still have a good looking effect.
I also added a parameter to the global controller that would control the wind effect on the grass and injected that into the existing controller.
Finally I created a function that would do the following:
Find the global parameters and a) Play rain noises. b) increase the wind effect on the grass. c) play the rain particle effect. d) turn down the ‘gloom’ on the clouds so that they would appear to be darker.
This was all put on a timer, to test and the screen shots will up uploaded below when I double back.
The next addition was a day / night cycle. This was utilised using the global light source and through a little bit of math it will now rotate according to a ‘time’ float. I also implemented a moon with cycles, but am currently having issues with the masking – I will have to double back when I figure out a solution.
To enhance the concept of the time of day, the light sources and atmospheric fog tinting were hooked up to the zenith and horizon colours, which are altered automatically by the engine depending on the time of day.
This has lead to some stunning effects and with a little more tweaking, should potentially yield some visually stunning results.