Procedurally textured ocean & general ocean/sea experiments

So I came up with a simple node setup to create an ocean material in cycles, involving only procedural textures for the bump map, and nothing more than a plane with 4 vertices:



(sky equirectangular is from cgskies.com)

If you see in the top right portion of the info toolabar, there are only 4 vertices. The high scaled noise creates some small waves, and the low scaled noise creates some bigger waves, so combined they give some big waves with small detailed waves on them. Then the voronoi texture (inverted) gives new higher, sharper and wilder waves. Then finally, the wave texture gives some waves in a specific direction, either in rings or lines (I found the rings work better), and with a higher distortion come better results.
Note: if the voronoi is used as is, non-inverted, it will give some smoother waves, maybe like there is a strong wind:


This technique can also be used in other models as well, and with other shaders also:


So basicly the only thing done in the object itself was uv unwrapping it did was to unwrap the plane, and then go to cycles and create the textures.

I really enjoy using procedural textures for materials, even if they aren’t a replacement for actual photographic textures, because if we already recreate a model in the computer, then why shouldn’t we recreate the textures also? It’s more like a challenge. And even if there aren’t tons of procedural textures, there can be billions of combinations and results.

-Jonathan

I also experimented a little bit with foam, and here is the first result:



So basicly I used a lot of ColorRamps in order to manipulate the textures so that they will show up only in the higher values, kinda like foam does. Since foam is very reflective, I used an emission shader for it so that it will be bright and “silver”, but with a noise texture tinted blue so that it isn’t flat white. For the waves foam I made the textures thiner with a ColorRamp and then subtracted small noise, so that it has rough edges.
But the parts with lots of foam seemed too unnatural, so I decided to subtract small noise from the whole mix shader factor:

This way the foam look more spread.

Now the downsides of this technique are that, you can’t really animate the ocean, and also you can’t look at it from the very side, it’s better from the top. But still, if you want to create a detailed enough ocean, that’s a technique that renders fast and doesn’t look bad.

-Jonathan

these look good! any chance you could share a blend file so don’t have to re noodle all that?

Great stuff, thank you for sharing it.

When you say you are using procedural textures for the ocean, do you mean you are not using the ocean modifier. I have never heard of using an image texture for then ocean texture, so that is why I am wondering.

Thank you!!! I don’t know for right now, I don’t have too much free time, maybe in the future…

Thanks for the feedback!!!

This is using only textures, no ocean modifier or other kinds of simulations. In all of the examples, it’s just a uv unwrapped plane with 4 vertices, as you can see in the first screenshots, and shaders with procedural textures, specifically the ‘noise’, ‘voronoi’ and ‘wave’ texture.
I hadn’t seen anyone do it like that, so I made a thread about it. It’s ideal if you need a low-poly ocean as a background element or if it’s not the main focus of the scene. But for now, I haven’t figured out a good way of animating it.

-Jonathan

cool stuff!

Thanks ctdabomb!!!

Cool. For a background shot I bet it would work great. I think it also could work good for close ups, if you had to have fast render times.

To animate it, use a UV Warp Modifier on the plane and create 2 empties to be the start and end of the distortion. The Empties can then be keyframed to make it look like it is moving. Also the scale/distortion values of the textures could be animated. I have not yet come up with the perfect movement amount yet so I have no animation to show, but I’ll be working on it.

it could be awesome to combine with low-res Ocean modifier to create a high-res effect :yes:

Just in case anyone was looking for it, I created an animated version of the ocean.
Here is the link: https://www.youtube.com/watch?v=mmU_bsnICaY
Sorry for the low lighting. I can upload the .blend if anyone is interested.


It’s been a long time, but I experimented with a very simple technique I came up with and I thought I would post it here:

If you apply it, you can basicaly kind of have better control of your bump map’s height. The way you do it is as follows:
First, you go to the “pivot center” selection menu, and you select 3D Cursor. Then, you select every object, and especially the camera, and you scale everything up, if you want lower bump, and down, if you want higher bump. By scaling everything, including the camera, you can reserve the composition you had. The advantage of this technique is that you have a master control for all the bump maps, as well as further control, because you typically have the option from 0 to 100 percent, but here it is kind of infinite. The downside is that in low scale, you have these black spot, which I thought they had to do with the max glossy bounces, but didn’t have any luck fixing, and in higher scale, everything starts seeming flat. But other than that, it’s just a pretty straightforward way to control your bump without going over your node setups.

I am experimenting with other things related to this ocean technique, plus I went to a short vacation near the sea which gave me some ideas. One of these is the suggestion by BrianCo about animating the ocean.

:slight_smile:
-Jonathan

https://db.tt/K9xD0GkW

blender internal procedurals would be great to do a realistic ocean with foam and stuff.