Below is a master water shader I used for my Goldshire Cliffs environment. I set up all the parameters in order to easily instance out the material for different situations. The material is comprised of 4 components in total (the gerstner function, the master water material, the buoyancy material function, and the buoyancy material function).
Master Water Material
The master water material utilities a combination of panning normals and fresnels in order to fake transparency and depth on an opaque material. Once the base colors have been calculated, I mask out the edges of the objects using a clamped distance field map in order to bring in the color of the wake. The Gerstner Wave offset function was made based on a fantastic tutorial by Daniel Elliot.
Buoyancy Function and Buoyancy Master Material
The buoyancy master material's primary function is to offset an object on the Z axis equal to the amount offset by the master water material's gerstner function.