The last few days I've been working on some color correction for the textures for the water race game.
In most 3d games, the designer wants to achieve a certain ambience in the level he is building (i.e. dark, gloomy or maybe bright, sunny or even red and vulcanic). Nowadays, this is done by using techniques such as ambient occlusion, realtime pixelshading and shadows and fancy postprocess color correction on (parts of) the screen. As you might have guessed, we can't use any of that :(
Although for some games we do use lightmaps for more defined shadow and shading, sometimes this makes the whole game just too big and sluggish. So for now, we just use real cool retro realtime vertex shading and fogging.
Vertex shading can color the object's faces darker depending on the vertex's position and orientation toward one or two lights. Not really a lot of control on final tinting unfortunately. But at least it gives some more definition to the object's form and perspective.
Next to this we use fogging of objects in the distance. When used with a nice atmospheric skybox this can work really well. We don't want to fog too much though since it may interfere with our transparent objects and particles. Doh!
If done properly, this usually looks pretty okay, but not very special or unique. We sometimes like to add some additional color correction to the base texture to achieve more color depth and tinting, as seen in the final results picture above. Of course, this will make the texture only useable in one particular ambience! For our project, this is no problem.
In step 2, we create a gradient map that defines the color scheme for our level and apply that to a copy of the base texture. We then blend that with the prior result to make the texture fit more into the environment.
In step 3, we add just a tad of fog color to the texture. This will make it blend even more into the environment and sky. It removes too much unwanted distracting contrast and is more pleasing to the eye.
Back to work!