Skip to content

Nuos/terrain

 
 

Repository files navigation

Terrain

An OpenGL application which generates a terrain geometry and renders the 3D scene on the GPU. A camera, pictorially illustrated in the global view, follows a configurable Bézier path through the scene. It was realized as a semester project for an introductory lesson in computer graphics at EPFL.

Featured techniques:

  • Procedural terrain generated by hybrid multi-fractal with Perlin noise function.
  • Material texturing based on terrain height and gradient.
  • Seamless cube-mapped skybox.
  • Self-shadowing using shadow mapping.
  • Water reflection, refraction and depth effects.
  • Free flying and FPS exploration modes.
  • Runtime configurable Bézier camera path: 2 Béziers, 8 control points.
  • Animated pictorial camera along the path.
  • Particles system: 8000 particles which position and speed are controlled in parallel by the GPU.
  • Two (interchangeable) simultaneous views: global and camera.
  • Object oriented programing.

path particles views

Structure

  • group19: main source code
  • docs/reports: reports explaining what has been done
  • common: set of provided CMake and headers
  • external: provided external libraries
  • textures, skybox, duck: texture and vertex ressources

Build and run

Dependencies:

cd build
cmake ..
make
./group19/group19

About

OpenGL generated scene

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 72.8%
  • GLSL 21.6%
  • CMake 5.6%