This was a study in creating a multipurpose water asset that would dynamically adjust its edges to the mesh around it.
It makes use of the depth buffer to detect edges that it intersects with and panning noise to generate the white foamy shorelines.
Likewise through the depth buffer it increases the alpha and darkens the water where it is deeper, creating the murky depths of water.
This technical art was great practice into writing shaders and coming to grips with the depth buffer.