enter image description hereDoes anyone have any idea on how I can create a realistic shader to emulate clear water? I am struggling because while clear water looks clear it also tends to change the color temperature of the water and there still tends to be a small amount of fine debris in the water. If anyone has any tips that would be great, I am using cycles rendering engine! (I can share the file with anyone if you want to get a better idea)

  • 1
    $\begingroup$ Please do share blend file trough blend-exchange.giantcowfilms.com and some images of effect you want to achieve. $\endgroup$
    – cgslav
    Apr 25, 2017 at 21:43
  • $\begingroup$ I think the top picture here looks really nice as is I would recommend were the water is flowing down from the filter to have a slight particle effect underneth to simulate some air bubbles getting mixed downward from the water hitting the surface. and ps but thoughs rocks are spot on good Job. $\endgroup$ Aug 19, 2017 at 15:07

1 Answer 1


Let's start with the water, then we'll talk about mixing in the particles.


It's typical to use the glass shader for water. This gives you the transparency, reflection, and refraction needed, but has some issues. First, it renders too dark and too noisy, and second, setting the color ends up looking too uniform (I guess that's how I'd describe it...).

Fast Glass

To fix the first problem, I suggest using a "fast glass" shader. It's the regular glass shader, but we make it fully transparent to any rays that we don't care about by mixing it with a transparent shader using only a few light paths as our factor. We only want it to look like the glass shader to shadow, diffuse, and glossy rays. This will render much faster since the water will now be invisible to any other rays (basically, invisible to most rays).

Admittedly, I don't fully understand this technique, but it has something to do with refraction being time consuming to calculate.

Colored Glass/Water

Now for color. If you look at water, it's color gets darker as you look at deeper water. This is because the water is absorbing light as it passes through. This is what the volume absorption shader was made for. Plug one into the volume input of your material output and pick a color and a density to see the light get absorbed and colored more in deeper areas than in thinner ones.

There are a few "gotchas" with the cycles volumetrics at the moment. First, they don't work on AMD GPUs. I think (but am not certain) that they finally work on Nvidia GPUs, and they should work on all CPUs now. Also, they're computationally expensive, so they increase render time noticeably. If you need to speed up renders and can't bear to cut volumetrics, google for tutorials on how to fake them. There are a couple of good workarounds out there.


As for the particles, you can mix your water with your particles' material using a noise texture as the factor. Running the texture through a greater/less than node allows you to select out just some of the noise. You'll have more control, however, if you run it through a color ramp node instead. Basically, sliding the black level up will choose your particle density just like a greater/less than node's factor and sliding the white level closer to the black level will control how fuzzy the particles are which is something you can't do with a greater/less than node.

The only issue with this technique is that I'm not sure if the particles are distributed throughout the water, or if they're just stuck on the surface.


Here's a screenshot of all three techniques in action! enter image description here

UPDATE: Particle System

The factor mixing from above can never cause particles to show up inside a mesh in a render that uses surface rendering. Blender and Cycles would expect you to do that by adding a particle system to the mesh. See below for a quick one.

enter image description here

  • $\begingroup$ Ok, I've confirmed that the particles are just on the surface and are not distributed throughout the water. This is because Cycles uses surface rendering. If you want particles distributed throughout the water, you'll need to define a simple particle system on the water object. I'm hoping the image I've added to the post is detailed enough to show the basics. $\endgroup$ Apr 26, 2017 at 2:24
  • 1
    $\begingroup$ Check my answer here, procedural particles are possible ;) blender.stackexchange.com/questions/77215/… $\endgroup$
    – cgslav
    Apr 26, 2017 at 12:41
  • $\begingroup$ @LukeD: I like using volumetrics for this. Keep in mind, however, that volumetrics is limited vs particle systems in that the material can only be composed of volume absorption and/or volume scatter shaders. So you should switch to particle systems in cases where you need reflective, refractive, etc. particles such as bubbles. $\endgroup$ Apr 26, 2017 at 17:50
  • 1
    $\begingroup$ Hey guys, I just wanted to thank you for all of this help. I am blown away by how this community is willing to help people like me who are just getting into 3D models/renders. Cheers! $\endgroup$
    Apr 26, 2017 at 20:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .