Water OpenGL, c++

In my code I can load 3D models, I have a skydome, I have a terrain with normal map, I have billboards, but how can I make water with OPENGL and C++? in a simple but elegant way

Are you asking how to calculate the reflections, or how to animate the elevation/normals?

For the former, it’s basically the reflect function and a skybox (or dome). For the latter, it depends upon how much effort you want to put in. The standard reference for realistic water simulation is “Simulating Ocean Water” by Jerry Tessendorf. This uses an inverse FFT to efficiently sum large numbers of waves. If you want something simpler, create a single height map or normal map and sum several copies, each with different orientations, scale factors and scrolling speeds.

off the hand … it could be worth knowing that wave-speed is a function of wave-length and water-depth. Because the wave is achtually water moving in an orbital way (radius 0 at bottom, incresing upward) these dependancies are able to stack up water to the ‘breaking’. … just for inspiration …