How to make a realistic looking water material in Blender?

ilkyal3d
3 min readNov 12, 2023

--

We’ll be bringing the roughness value all the way down and transmission value all the way up, inside of the “Principled BSDF” shader to capture a generic water look. (Other values can be remained as they are. — — IOR (index of refraction) can be set to 1.333, and specular to 0.25 and the roughness around 0.010 or 0.1, if you are going for 100% realism. These are roughly the values of real life water and water is not 100% sleek but in the end it’s what your scene calls for.)

These values already gives us a “water-y” material but it’s kind of bland. Too add some variation and realism, we can use a noise texture. In this tutorial, I’ll be using the Musgrave Texture to generate the desired noise effects, but if you wish, you can use the noise texture node. We can also add an ambient conclusion node into mixture, by mixing it with musgrave texture to get the areas touched by water should be darker feeling but I’ll see if I want to have in this scene later. I’m mentioning about it here if you’d like to play with the idea.

Bringing in a “Musgrave Texture” node to generate noise.
Current result is too noisy and it requires further adjustments.
Adjusting the values until I capture a good looking water material.
Current result gives me a nice dark/muddy kind of looking water material and can be used as it is if your scene calls for such looking water material.

If we want to make this material clearer and see-through, we can mix the principled shader node with a transparent node and calculate the light paths based on isCameraRay? boolean to achieve a realistic looking result. If you are not experienced with the “Light Path” node, be mindful of that setting isCameraRay? boolean to true will make this material almost invisible when it’s looked at outside of the camera frames. If you switch back to camera view (Numpad 0), there won’t be any visibility issues.

Implementation of clearer water material

If you’d like to change the color of the “water refractions”, you can always throw either a “Volume Absorption” node or a “Principled Volume” node into the mixture and plug it into the volume input of the “Material Output” but I am happy with how this material already turned out so I won’t be doing it but I am mentioning about it just so you guys know that we can also control water refraction color that way.

And this is how the water is looking in the rendered view. By the way, you can always assign this material to a cube or a cube-like object, and make it collide with the plain that has a bulky surface such as sand, to create puddle areas. Let me know in the comments if any parts requires more explanation or if something is confusing. If you’re wondering how I made the sands in that scene, you can check the tutorial of it here as well.
Final Render

Note: If you are tired of watching video tutorials and would like to see more text-based tutorials like this one from me, you can support me on Patreon so I can dedicate more time to creating them.

--

--