first we set the position of the vertex:
gl_Position = gl_ProjectionMatrix * gl_ModelViewMatrix * gl_Vertex;
//standard procdure for transform vertices around so they are in the correct place inrealtion to the camera screen etc...
// and here is some fancy math, combining sine and sin waves with diffrent waves lengths (or cosine waves )gives nice random looking ones
vec4 Position=gl_Position;
Position.y+=10*(sin(-0.05*Position.x+0.5*time)*0.5+0.5);
////******SECOND HEIGHT TRANSFORMATION *******////
Position.y+=10*(sin((-0.07*Position.x+0.07*Position.z)+time*1.3)*0.5+0.5);
//for cooler stuff like distrortions you can use these random waves to make random texture coords these random texcoords can be used to distort a texture of the water surface in a cool refarctiony way lol
just using numbers on the waves tweak as u wish
float second2=0.070*cos(-0.07*Position.x+0.07*Position.z+1.3*time)