I'm trying to render a sea scene animation, but using the ocean modifier and huge subdivisions isn't feasible due to the large scale. Luckily it's a calm sea and seen from quite a distance, but there still should be some kind of animated movement or shimmer you can see on a real water surface. Is it possible to do something like this in cycles?

The render shows what I currently have which is just a translucent plane with a seafloor material beneath and a slightly rough reflection of the cloud environment map.enter image description here


Expanding on Róbert László Páli's answer, this is possible with a Procedural texture and bump mapping.


For an ocean texture, the procedural textures most likely to be what you want are:

You can also combine and mix these with an RGB mix node.


Here are some examples of bump mapping with a Noise texture:

You can affect only certain shaders by using the Bump node. One advantage to the bump node is you can easily adjust the strength of the displacement:

bump node example

Or you can affect the entire material by plugging the texture output directly into the Displacement input of the Material Output node:

displacement setup

To control the strength with this method, plug the noise texture into an MixRGB node and set it to multiply. The other input becomes the "Strength factor", where white is full displacement (you can set it to a value greater than white to get a larger displacement), and black is no displacement. (likewise, negative values produce an inverted displacement)

Using a MixRGB node


This effect can be animated over time by animating the location of the Texture space. The settings for the Texture space are located in Properties > Object data panel > Texture space:

texture space settings

You can interactivle move the Texture space in the 3D view with ShiftT.

Note that you most likely want to animate along the Z, otherwise it will look like it's a static surface sliding horizontally.

You may also want to set the interpolation type to Linear in the Graph editor by pressing T> Linear to make the texture space move at a constant speed without accelerating and decelerating (the default behavior):

enter image description here


enter image description here

| improve this answer | |
  • 2
    $\begingroup$ Could you post your shader/.blend for the ocean, I can never get water looking that good :P. $\endgroup$ – GiantCowFilms Jul 25 '14 at 16:03
  • $\begingroup$ @GiantCowFilms It's already in the answer (it's just a glossy shader with an HDR sky). Here's the .blend anyway. If you want something a little more realistic you might try using a volume shader like this. $\endgroup$ – gandalf3 Jul 25 '14 at 18:58
  • $\begingroup$ @gandal3 Thanks, I thought it would have been more complex :) $\endgroup$ – GiantCowFilms Jul 25 '14 at 19:17
  • 2
    $\begingroup$ Great explanation of the different procedural texture types. If SE had a best list this answer would be on it. Well written and laid out. $\endgroup$ – David Dec 26 '14 at 22:36

You could do that by adding a procedural texture, and plug the output into the displace for the material (in the node editor view). You might try a noise texture (in Cycles it looks like a Cloud texture in BI), add a Mapping node, and for the x coordinate set the scale to 2 maybe, and set z rotation to the prefered. Try it, tweak it. There are more sophisticated texture for oceans, maybe a tilabe image could be used, but for this scene it might be ok, or as a strating point.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.