# How can I make a smoke simulation look like water bubbles?

I'm working on a scene about a guy diving into the ocean, something like this:

I tried particles but this looks unnatural at rendering and it occurred to me to do it with smoke simulation. I found this tutorial, but it is not for blender: https://www.youtube.com/watch?v=qKIdlmofLZc

I did some simple tests, but I can't give the smoke a water material or get close to that look.

• As far as I know smoke in Blender requires a volume material Oct 17, 2017 at 4:36
• I suggest you to change question title to "how can I make underwater bubbles?", and also use the image button to add images, as they will be visible and permanent. Oct 17, 2017 at 6:42
• maybe this could help blender.stackexchange.com/questions/48046/… Oct 17, 2017 at 7:38
• For the larger bubbles you could probably use a fluid sim with the gravity reversed so they fall upwards. Use a refractive index less than 1.0 to make them render as if bubbles in a liquid. Oct 17, 2017 at 10:07
• You'll have problems getting inverted surface reflections from a smoke sim. Oct 17, 2017 at 13:30

In the example image there are visible large bubbles as well as the masses of small smoke-like bubbles and it's helpful to replicate the larger bubbles to realistically distribute the smoke as well as adding to the effect.

The standard fluid sim is best for simulating surfaces or droplets of liquid - it's not really suited for modelling cavities or bubbles within a body of liquid so we can instead use it to simulate the bubbles within the liquid rather than the liquid itself.

For this, create a fluid domain and set the object to be an 'inflow' - as it travels through the domain it will leave a trail of fluid behind it. Disable gravity in the scene and set it in the Fluid World properties to a reduced positive value rather than the default '-9.81' for standard gravity and try different Viscosity settings to get the desired behaviour of the droplets.

Adjust the Inflow velocity to be close to the direction and velocity of the inflow object. This will have the effect of the fluid appearing to be 'dragged' along with the moving object.

To make the fluid droplets appear as bubbles in a liquid (rather than droplets of liquid in air), choose a refractive index < 1.0. For example, a refractive index of 0.8 will give the impression of air bubbles in a liquid with a refractive index of 1.25 (ie, 1.0 / 0.8 = 1.25).

IOR = 1.25 - liquid

IOR = 0.8 - bubbles in a liquid

For the multitude of tiny bubbles, add a smoke domain and set the fluid domain to emit the smoke. This will result in the 'smoke' eminating from the larger bubbles. This will mean that the 'smoke' follows the paths of the larger bubbles, producing a more believeable pattern in the path of the falling object.

For the material of the 'smoke' (material assigned to the smoke domain), use the density to control the scattering as with normal 'smoke' but omit the usual Volume Absorbtion (or set it to a much smaller density) to allow more light through the volume as for tiny bubbles.

Ensure the lighting is from the top surface of the water and optionally add an absorbtion (slightly blue) to the 'world' or an additional mesh covering the whole volume of water.

Keyframe the Enabled checkbox of the fluid 'inflow' object so that it is enabled when the object hits the 'surface' of the liquid and is disabled a short while after - when the bubbles stop coming off the recently submerged object. You could also keyframe the smoke density emitted from the fluid domain to control the amount of 'smoke' emitted as the bubbles 'calm down' as the velocity of the object decreases.

This can produce the following result :

This method certainly isn't perfect (or physically accurate) and requires a fair amount of manual tweaking to get the desired effect (to set the velocity of inflow for the fluid sim, to enable and disable the inflow of the fluid, etc.), but it can produce quite pleasing results for stills and even reasonable animated results. Use higher resolution for the fluid and smoke simulations for more accurate/smaller bubbles. Add a volumetric absorption shader in the world to add murkiness, etc.

To take this further and produce better results you could create a separate 'inflow' object rather than using the submerged object directly itself. This would allow more control of the volume of bubbles released and where those bubbles are concentrated on the submerged object. Set the submerged object as an Obstacle in the simulation for the bubbles to pass around it rather than through it. Also, add a mesh at the surface of the body of liquid set to fluid 'outflow' to remove the bubbles from the domain once they reach the top.

Also, you could use fluid 'control' objects to direct the flow of bubbles - to stop them spreading out so much, add turbulence, etc., to produce a more believable effect. Similarly, play around with different forces in the smoke simulation to affect how the micro-bubbles behave (ie, wind, turbulance, vortex, etc.).

You may also want to add some variation to the light shining through the upper surface of the water to simulate ripples in the surface for dappled, uneven lighting.

Blend file attached - bake the Fluid Domain first, then the Smoke Domain, before rendering.

• Hi! thanks for taking your time to help me out. I was trying Point Density Texture to achieve this result, but still no good results. then I tryed this tutorial: youtube.com/watch?v=BhjK-6t9Gqs to get the looks but still the bubbles looks wierd. I´m trying your steps now and I notice you have an "outflow" object, Is this necesary for the simulation? I´m still tweaking some settings and i wonder if this is necesary, becuase it is not listed in the steps you describe. Thanks again!!! Oct 21, 2017 at 2:06
• You’re welcome - really enjoyed working on this problem. The outflow isn’t strictly necessary - if the top surface of the liquid isn’t visible - it’s just there so that the fluid bubbles that reach the surface disappear. I’ll update the answer to mention it. Oct 21, 2017 at 6:42

and Use Fluid simulation. The basic Fluid and Domain.Set Fluid velocity to -z value Set Domain Fluid Particles to Generate 1.000 Since you'll be using only 1 particle fluid/emitter then Tracer to any numbers to your content/satisfaction Create an object set it to Fluid Physics then Particles choose Drops The Object you create will be your emitter Go to particles tab you'll see fluid particles Create another object("Icosphere" This will be your bubbles, set it too small scale and iteration of 1) in the particles tab under fluid particles>render> select object and choose the Icosphere... Create anoother Object to be your domain for smoke Choose the icosphere you added before to be your smoke inflow... Select the fluid particles or particles system to be the emitter of your smoke It will look like bubbles with smoke...

Or another way just create a sphere and a cube or a plane use the cube/plane/human rig as an emitter of particles and use the sphere as a particles and object which is also your bubbles and inflow emitter of smoke then just add a domain... You can also use a curve guide...