Fig 1: Basic setup

This material allows you to produce the effect of puddles on the ground or oceans on a planet, using only three nodes and displacement. The basis of our material is a cloud node. This has the advantage of producing areas of solid sky, which we will use for our puddles or oceans (or any flat surface - concrete under snow for instance), and areas of gently graded cloud.

Used with the correct colours, the cloud node can be plugged straight into the displacement node to get the effect of slopes rising from a flat surface - hills from the sea, grass rising from puddles, or whatever you require. In order to get the effect we require, with the sky flat and the clouds rising up, we need to pick a dark sky colour and a light cloud colour. I have chosen a dark green for the sky, and white for the clouds.

I've made two significant changes to the cloud node. First, I've changed the noise type to 'improved', simply because I prefer the effect! Second, I've lowered the bias from 0.6 to 0.1 (the gain controls how much of the output is half way between the sky and cloud colours. At a gain of one, you will get pure sky and cloud, at zero you get mostly the middle colour). Our setting of 0.1 leaves us with small, clear areas of sky and a gentle gradient between pale green and white for the clouds (our slopes). This cloud node can now be plugged straight into the displacement node.

Now we move on to our colours. We need to add a third colour to our greens and whites. To do this, we are going to use the blender node, combined with a maths node to produce our mask.

The mask is produced by plugging the output of the cloud node into the Input_1 of a maths node set to round. The round node takes the input rounds any number below 0.5 down to zero (black), and any number above 0.5 to one (white). In our case, the pure sky is dark enough to be rounded down, while the clouds are all light enought to be rounded up. If your colours don't round correctly, try changing the value_1 until you are happy.

The output from the round node can now be plugged into the Blending input of the blender node. Set the value of the Blending input to 1 so that the input make (our round node) has total control of the output. Now all we need to do is set our colours. Set the input_1 colour to blue for our oceans. Set input_2 to white, then plug our cloud node into it to give us our land colours. Finally, plug the output of the blend node into the main diffuse node.

Make sure you've turned Displacement on in your render settings, and render to see the result.

Fig 2: Shader Node

You can fine tune your results by altering the cloud settings. In figure three we have altered the gain setting back to 0.6, producing steeper slopes.

Increase the scale setting to get bigger puddles or oceans. Decrease the scale to get more, smaller, puddles.

Try altering the bottom value to 0.6 to get islands in a sea.

Fig 3: Modified gain

Used on a flat surface this can produce interesting floor materials. Try changing your blue to brown to get the effect of grass with patche of bare soil.

Fig 4: On a flat surface