Quinn Le Lievre
← All projects
CourseworkCOSC422

GPU Terrain & Water Rendering

Tessellated terrain, animated water and a compute-shader rain system in OpenGL 4.

C++ · OpenGL 4 · GLSL · Compute Shaders

A COSC422 project built around an OpenGL 4 tessellation pipeline. Terrain is generated from 2D Perlin noise and subdivided by tessellation control and evaluation shaders with distance-based level of detail. Tessellation levels are computed from the midpoint of each patch edge rather than the patch centre, so neighbouring patches always agree on shared edges, which removes the cracks that otherwise appear between patches at different detail levels. Water, grass, rock and snow textures blend by height and slope under two-light Blinn-Phong shading, with adjustable water and snow levels. The water surface is a sum of three travelling sine waves whose amplitude tapers towards the shoreline and in deep water, and its colour darkens with depth. A GPU compute shader drives a rain particle system with wind, where drops collide with and bounce off the terrain.

Perlin-noise terrain with a lake, height-blended textures and falling rain particles
Wireframe view showing tessellation density decreasing with distance from the camera