21
$\begingroup$

I know you can use Dynamic Paint as well as Fluid Simulation with Force Fields to make ripples. I'm sure there are other ways as well. Which way is the least memory and processor intensive of these?

$\endgroup$
2
  • $\begingroup$ Do you mean physical ripples (as with a mesh) or visual ripples (like a heat wave)? $\endgroup$ – fouric Jun 6 '13 at 1:52
  • $\begingroup$ Physical as in on a surface rather than a gas effect. $\endgroup$ – World Engineer Jun 6 '13 at 3:42
13
$\begingroup$

The simplest way would be to create a blend/gradient texture with a displacement modifier (or simply for a bump map if it's in the distance) and animate the offset by right clicking the property and inserting keys. This won't really work (I think) if the ripples are spherical originating from a single point since I don't know of a way to offset the ripples out of the center.

The next cheapest would be the dynamic paint method. The advantages of this is that you get the animation done for you dynamically and fairly realistically, and the mesh density is the same as that of the previous displacement map method. However it can take a fair amount of time to calculate if the mesh is dense and there are multiple sources of dense brush meshes.

Lastly is of course the fluid simulator. Only if you really need the ripples and the splashing together should you use this method as it uses huge amounts of ram and calculates very slowly, and also doesn't allow for UVs or any other mesh data.

So it's all about what you need it for. If you're not too fussed about the realism of the simulation, it's always quicker to fake a few things than to let blender do it for you. It may be a little more manual work, but it's usually quicker than a hardcore simulation.

$\endgroup$
1
  • 2
    $\begingroup$ Using a blend texture to make a ripple is interesting, but difficult to setup/animate. Using dynamic paint can be really good in some cases... but Blender's confusingly named "Wave modifier" was designed to make simple ripples, long ago. (It displaces the mesh with a ripple pattern/animation, very fast, (interactively) and is quite configurable. I wrote more in my answer.) I'm new to this site, so I don't know if it would have been better to edit your already accepted answer. $\endgroup$ – James Thomas Jun 29 '13 at 8:01
16
$\begingroup$

The most computationally efficient (and easiest) way to make ripples or waves in Blender is to use the Wave Modifier.

This feature was in Blender long before fluid simulations, dynamic paint, displacement textures or even modifiers. (It was called an "Effect" back then, but other than that, it has not changed much.)

Blender 1.60 Wave Effect

I just tested it on Blender 1.60 from 1999. I bet it was in Blender sooner, but I don't have an Irix machine to test it. (I also know a similar wave tool was in 3ds Max r2 in 1997.)

It's a simple procedural operation designed on much slower computers, so it's fast. (I believe it uses the sine function to offset the mesh, also it doesn't need to cache.) You can interactively tinker with the settings and preview the animation.

It has options for the size of the wave, when and where it starts, whether it's a ripple circle or a wide wave...

It is simple, but you can do more advanced effects with it. For example: to emulate a ripple bouncing off a wall, add another wave with the starting position outside of the object, the same distance to the wall.

Blender 2.67 bounced wave example.

Here's a video tutorial on using the wave modifier by the Ott Planetarium.

$\endgroup$
0
5
$\begingroup$

Another solution is the Ocean Simulator. It is built into Blender as a texture, which you can use to either displace a mesh, or use as a normal map.

Ocean texture is slower than a normal texture, but can provide great result if that's the kind of ripple you are looking for.

https://docs.blender.org/manual/en/latest/modeling/modifiers/physics/ocean.html#ocean-modifier

$\endgroup$
1
  • $\begingroup$ The ocean simulator modifier creates ocean-like waves/turbulence, but not single "ripples". (fc02.deviantart.net/fs71/i/2012/171/b/0/… en.wikipedia.org/wiki/Capillary_wave) Blender's confusingly named "wave modifier" makes ripples. (but it can also make 1 axis "waves"... Before we had the ocean modifier, and we wanted random, ocean like turbulence, a work-around was to add a ton of circular wave modifier "ripples", with different start locations, but didn't look very good.) $\endgroup$ – James Thomas Jun 29 '13 at 7:36
1
$\begingroup$

You can make ripples with shaders only. Using a wave texture and a gradient texture (set to spherical which is used to control the extend of the ripple.), you can displace a plane to make ripples.

Basically, you multiply the wave texture (in rig mode) with a the gradient to localize the wave texture to the gradient. Since it's a 3d texture and the wave are spherical, if you translate the texture on the z axis the wave seem to move.

Wave texture in 3D

Then what you can do is increase the scale of the gradient as time change and thus it seems that the wave is propagating.

Then if you translate both texture (wave and gradient) in x, y direction it move the ripple.

Here the node setup :

Node setup for one single ripple

Using this you just have to animate the time input of the node group then then the ripple propagtes. You can even add multiple instances of this node group and add them together with a colorMix (add) to have multiple ripples.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.