TUTORIAL: How to make the Ocean Modifier loop in Blender!

I love Blender…

No kidding. I think we got that now. And if you are at home making looping videos to throw onto Reddit and Instagram, this one will make you love Blender a little bit more.

After the last one with the Ocean modifier, I wanted to do a looping one.

It’s not a difficult thing to do, but can take a bit to get your head around. Anyway, for all you looping animation peeps, this is the way to make sure you have perfect water that will match as your little animating boat swoops over the waves.

You want to see something not here? Then let me know in the comments. I’m always keen to help out where I can.

Take care and stay safe.

ONE BY ONE – Making animating oceans in Blender with the Ocean Modifier

I love Blender… It’s cracking stuff.

But back in the day, when I only really knew how to use Maya, I loved it’s Ocean shader.

It looked great, it worked great, but you could only preview sections of it in the scene with a funky little preview shape. Roll forwards several years and the Ocean modifier in Blender bares a strong resemblance to the Maya Shader, BUT (yes, it is a Big But. I like Big Buts and I cannot lie…) it is designed so you can see the whole of the surface in the viewport and, even better, you can see it in Eevee working in relative realtime with shading as well.

I still need to find out better ways to use some of the bits (spray should be accessible in the shader editor) but when I sort it, I will let you know.

Hop in, watch through as I go over as much as I possibly can in how to make the best of the Ocean Modifier.

You want to see something not here? Then let me know in the comments. I’m always keen to help out where I can.

Take care and stay safe.


I created this a short while ago with Blender. Yep. It’s me talking about Blender again.

1024 resize

As usual, it started as an accident. I was trying to create a fractal landscape using a subdivided grid, a subdivision surface modifier and a displace modifier with a cloud texture. By chance, moving through the cloud’s settings, I saw at the top cell noise. By setting the cell depth of the cell setting to 1, I had a large square block displacement. Changing it to two, this give me an overlay layer of half sized on top of the originals. Changing that up to 4 gave the look of the land.

Seeing the Minecraft-esque look, I immediately changed the camera to an orthographic and moved it to an isometric angle. I decided it would be nice to have a shader that emulated the land and water levels using RGB constants on a colour ramp. I’ve done something similar before in Maya, but never in blender. I started with a principled shader, added a colorRamp into the colour. In order to map it only in the Z, I separated off the Z position from a Geometry Input Node – giving me a value of 0 to 1 in the Z, and added this into the factor of the colorRamp. This then maps the colorRamp from 0 to 1 vertically, the top and bottom colours carrying on into infinity. Multiplying this value by 4 made it go from 0 to 1 over a distance of 0 to .25 (I realise I could have easily remapped that with a different node now) and added a little amount to that value to move it up a touch on the Z and match better to my displacement height.

To add a little variation to the edges, I mixed into the colour a darker version of the colorRamp using the Pointiness of the Geometry Input node. Such a wonderful input, it uses object edge angles similar to a dirtPass in V-Ray and, using a crunched up colorRamp as the controller, I was able to add the darkened edges over the original colorRamp.

The sea was a Plane but with a very simple translucent shader on it. This made it possible to see whatever was just below the surface clearly, but added a little blur as the ground was further away. Mixed with a glossy shader to add a little reflection, I stopped there with the water.

But I wanted something more. So I built a tiny ship using two different block sizes to try and emulate a similar feel to the landscape.

Importing this, I shrunk it down and added it into the water, duplicating it a couple of times.

So that is where it is right now.