Matt Wilde, an artist at Campo Santo has recently published a nice article on the way the team has worked on the announcement trailer of ‘In the Valley of Gods’.
The team’s graphics programmer Pete Demoreuille generated a GPU-based simulation using a “shallow-water” approximation. The simulation accounts for the water’s depth and computes its horizontal velocity along with height. In the end, the artists got a number of dynamic textures which are fed into the shader for the water surface’s height, normal, velocity, and distance from a blocking object.
Here is a small piece of the article to get you interested:
With these at my disposal, I set about making an actual shader, starting with a simple flow mapping texture—the flowing determined by the simulation. The output is brightened depending on factors like surface normal and velocity. The below was captured right out of the Unity editor and was immediately fun to play with. Imagine the capsule is a rubber duck, like I did. For about a week.
I gradually built this into a more watery-looking shader with the addition of normal mapping, depth-based transparency, caustic lighting effects, and probably some other things.
Make sure to study the full article here.