Deep ocean waves simulation was my main project at the Virtual Reality Centre. It is a realistic real-time sea simulation using a statistical model and Fast Fourier Transform to sum up the waves. Realism is achieved using vertex and pixel shaders. Several lighting effects are combined in the shaders, diffuse and specular lighting, fresnel factor, environment map, and a bump map is used to simulate the smallest waves. Shaders are written using HLSL and nvidia Cg. Two main versions were developped, one using Vegaprime API and opengl and also a Renderware version using directx 9.
An efficient LODing system was necessary to simulate a full ocean while keeping good rendering performances. The ocean is composed of two parts, the dynamic with a higher number of polygons is used to render parts situated near the observer and a static area for the far ocean. The dynamic part is made of regular grids with different LODs which are switched according to the distance to the observer. Most of the work is based on Tessendorf paper and adapted for real-time rendering. A GUI was developped and a distributed version using Vega Prime API.