Computer Graphics and Interaction
The main idea of this project was to simulate ocean
water - more specifically ocean waves. The
project was mainly based around the paper Simulating Ocean water by Jerry Tessendorf et al., which modern
techniques used today draw heavily from.
Abstract
We present an implementation of an FFT-based method of creating
a realistic looking ocean surface that changes over time and is rendered in real-time. The method is a well-known method that has
been used in the movie industry and employs a statistical model of
the ocean to achieve realistic results.
The final product of the project is a dynamic greyscale heightmap
of arbitrary size representing the ocean surface. Two versions of
the ocean are presented, where one is a modified version that creates 'choppier' waves that are more aligned with the wind direction.
Additionally, we also create two heightmaps for the displacement
of ocean points in lateral directions in addition to the vertical displacement heightmap.
The project is written in OpenGL and C++ and takes advantage of
the GPU to parallelize computation
Check out the source code here.