Register      Login
Published Date:
AuthorColin Litster
TitleSurface tension of water


Creating realistic 3D images can often be let down by the smallest of detail. Even if we are trying to produce the most photo realistic image possible it can be ruined by incorrect size, weight or physics. That’s why when ever I see an object apparently in water, and a sharp edge at the intersection of object and water, it immediately breaks the illusion and says NOT real.

Mantra : ‘Sharp edges do not a realistic image make.’

Fortunately surface tension can be generated quite simply, with little or no effect on render-time. Of course not all objects in water require this technique. A ship in water is too large to see the surface tension. Although if it, or the water, is moving a wake might be appropriate (a later tutorial on that). But for posts or small objects in water it will help bring your picture to life.

This picture is taken a short distance from where I live near the river Thames. So you will understand why its prominent in my observation.

As you can see, where the posts intersect the water, the surface tension tries to make the water climb up the posts and thus reflections on this produce a highlight that emphasises that curling of the water up the post.

It may at first seem just a matter of modelling a curve in the water surface to represent the surface tension. If you were creating a still image such a technique might work. However, any animation would immediately show that as the waves climb the post so should the surface tension. So how can we achieve surface tension on moving materials such as water?

How to create surface tension in Blender

Pre Requisites

This tutorial is based on Blender 2.37a. Although its backward compatible to any version that uses displacement mapping. You should know how to model simple primitives such as cubes and planes. You should know how to subdivide a mesh to increase the number of vertices. You should also know how to bevel an object.
You should know how to apply textures to a material and adjust mapping and displacement.
You should also know how to setup an IPO to a material texture slot.

These basic skills are best learnt from the documentation, available on the web, or the manual if you have it.

However, as this is a quick tutorial I’m not going to make you create a scene from scratch. Instead here is the work file that will produce an animation of the scene below.

Essentially we have two simple objects here.

  • A subdivided plane, which is our water surface.
  • An elongated bevelled cube, which will act as a post.

The post is shown transparent to help show the technique used to produce the surface tension.

It’s all in the materials

Essentially the waves use a cloud texture mapped as a displacement. This is in the first texture slot 0.
An IPO has been used to create a small OfsZ and OfsY to give a wave like motion. You can increase or decrease these to give the speed of the waves required. However, in our example leave them as they are because we need to concentrate on the surface tension.

These are the material and texture settings for the waves.

As you can see nothing special here just a neutral mid-Gray colour. I will leave it to you to change the colour and alpha to make it more water like. Here it’s only used to demonstrate the surface tension effect.

Waves Texture

A simple cloud texture in texture slot 0, with these settings, will give a reasonable wave like displacement.

Note the raised brightness and contrast levels.

This is then mapped as follows in the material.

Note only Displacement has been used. Nor has been left unchecked


Our post in the water is a simple cube like object therefore to produce a surface tension where the post intersects the water we just need to raise the level of the waves at this point. To do so we just create a simple square image of the shape of the post and blur it a little in your favourite paint package like so.

Note that the image is black and white with the centre white and the border black.
White is higher when used with displacement or normal mapping.

The texture has been set to Extend in the texture settings.

Map this as follows in a spare texture slot of the material.

Note especially that I have used Add as the Blending mode. This ensures that the texture will blend into the other displacement waves texture.

Adjust the size to fit the object

Mapping the image as is would produce a large raised area covering most of the plane. We need to scale it down to give the best fit for the object.

Adjust the sizeX, and sizeY in the mapto tab for the surface tension image texture as follows.

Note increasing the sizes will reduce the size mapped to the material. This is where making the post transparent, by altering its material alpha, can help you visualize the effect by rendering a test render as you adjust values.

Now animate out a 200 frame movie to check the result.

Once satisfied you can adjust all materials to give a more water and post like colour and texture.


There are some problems with this simple technique. Notably that its only suitable for evenly oriented and shaped objects. However, its possible to create more complex masks, to act as the displacement maps for the surface tension by using an Ortho camera viewing above or below with the wave material set to black and the object set to white. The resultant animation can then be mapped back to the original material for the surface tension. (NOTE: If you create such an animation looking from below it will be necessary to mirror the animation so that it can be mapped on top of the material.

Anyway I hope that this will be of value to you.


Rating: 5.0/5. From 2 votes.
Please wait...


Leave your reply