Collaborators:
As part of the Introduction to Computer Graphics class given at EPFL, for our class project we created an infinite procedural world. This repository gathers all the code used for this project.
In order to run this code you will be needing GLFW. You should be able to install it through you package manager, for Arch it's available as either glfw-x11
or glfw-wayland
depending on your xServer.
You might be required to install other librairies depending on your graphics card / environment setup.
Most of the configurable vars are in config.h
, however for more in depth modifications you might have to modify more code.
Shaders should be plug-and-play if you do not mess with the paths.
Simply enter your favourite terminal emulator, and enter the following commands:
mkdir build
cd build
cmake ..
make
cd natura
./natura
The image below links to a YouTube video illustrating the final result of this project. The video framerate and resolution is not representative of the actual software.
Here is a non-exhaustive list of the implemented features: Infinite procedual terrain (Perlin noise + Voronoi), water reflections (framebuffer), real-time shadow mapping, bezier curves (camera movement), physics simulation, grass moving (wind effect).
Our goal was to achieve perofmance before realistic/beautifull results. Most of the features mentionned above can be altered in real-time without any performance loss.
This project won the second prize for the "Best course project" award.