Skip to content

Procedural Terrain generation and rendering in OpenGL

Notifications You must be signed in to change notification settings

AntonHakansson/procedural-terrain

Repository files navigation

Procedural Terrain Engine

Windows Linux

Procedural terrain generator with GPU tesselation, cascaded shadows, PBR, and screen space reflections using OpenGL.

preview.mov

Implementation Overview

Feature Comments
Generate a realistic looking terrain geometry with noise functions Voronoi and Layered Simplex noise
Terrain GPU Tessellation Adapts triangle granularity based on distance to camera
Blend textures depending on height and slope of the terrrain
Terrain Textures w/ albedo, normal, and displacement maps Normal maps applied in tangent space. Displacement map for nicer blending.
Cascaded shadow maps for nice looking shadows in a bigger world. Uses PCF for smoothing and eliminating artifact, smoothly interpolates between cascades
Screen Space reflections Based on paper "Efficient GPU Screen-Space Ray Tracing"
Water with reflection and refraction Implemented with screen space reflections for both refraction and reflection
Animated waves, shoreline foams and ocean depth Scrolling dudv map for water normals, samples depth buffer for foam and ocean depth
Procedural sun & sky PostFX filter to create sunsets and horizon with day/night cycle, illuminates world w/ PostFX
Screen Space God Rays Implemented in post process pass with screen space ray marching

Build

cmake -B build
cmake --build build -j 4
./build/procedural-terrain # run

About

Procedural Terrain generation and rendering in OpenGL

Topics

Resources

Stars

Watchers

Forks