Table of Contents

Finally I have managed to publish my awesome water simulation! I know that I wrote about my intentions to publish the project some time ago but as usually there was no enough time :)
The code is quite old and was ready something like 2 years ago. As usually I wanted to polish it and thanks to that it was blocked for too long period of time. This post only introduces the project features and gives general description.


  • Water simulation done on the GPU - shaders
  • Height map based
  • Normal mapping with Phong Shading
  • Uses GPU timer queries
  • OpenGL 4.2 Core
  • FreeGLUT + SOIL + AntTweakBar + my framework

Basic flow of the animation is below:

As you can see the whole process consists of updating the height map data (using double buffering) then calculating the normal map. The result is applied onto a quad (only four vertex) using normal mapping and Phong shading.

Code and Repo  

Application is based on my simple framework, and whole thing can be found at



This is actually my first video on YouTube! :)

Todo & Ideas  

  • Improve camera and add more controls/view options.
  • Add environment!
  • Reflection and refraction.
  • Surface rendering with tessellation