Gerstner Wave and Buoyancy



Programming Language: C++

Engine: Unreal 4

Project Type: University

Technical Features

Gerstner Waves Material

Using Unreal 4’s Material visual scripting I created  a material that used Gerstner waves to appear like an ocean when placed on a plane.

Gerstner Waves Algorithm

In C++ a Gerstner wave algorithm was implemented using the same values as the material. This was based on NVIDIA’s tutorial from the book GPU Gems.


A buoyancy system was created to react to these waves by placing points around any mesh and apply force to the mesh base don what points where above or below the waves.


Starting out originally as a personal fun project to see how Gerstner Waves worked it evolved into being used as my Gameplay Mechanics module coursework.  By using a combination of C++ and Unreal 4’s material system I was able to create an impressive looking wave material that any object would react to with buoyancy. After working on the waves for a while I realized that if i were to create a buoyancy system this project would be a perfect fit for my Gameplay Mechanics coursework. So I continued to work on it and implement a buoyancy system and got the project into a good state to submit. I’m very glad i was able to use this personal project as course work as well as for fun, since it was a lot of fun to work on and I got an A+ for this module.