3D graphics engine written in C++ using OpenGL. This project was first created as part of a course in computer graphics at Linköping University. Grass, shadows, bloom and more was added in a later course.
Many parts of this project have been based on tutorials and examples found online, learnopengl.com in particular has been a good source of inspiration. The grass was inspired by this blog post.
Project members:
- Hans-Filip Elo
- Lage Ragnarsson
- Isak Wiberg
A video showcasing the procedural grass: https://www.youtube.com/watch?v=xNea72F_aws
An older video: https://www.youtube.com/watch?v=Tt9o01yyQiw
- Deferred shading
- Screen Space Ambient Occlusion
- Shadow maps
- Procedural grass with LOD
- Grass animation based on wind and collisions
- Bloom
- Scene loader
- Terrain generation
- Catmull-Rom splines for object and camera animation
- Frustum culling for meshes and lights
- Normal- and specular maps
- Shader precompiler
- Day-night cycle
- Switch between different rendering paths during runtime:
- Forward
- Deferred
- Positions
- Normals
- Albedo
- Specular intensity
- SSAO buffer
- Shadow map
- Keyboard and mouse control
- Bounding sphere generation and visualization
- Normal vector visualization
- Light sources attached to models
Install dependencies with apt-get:
sudo apt-get install build-essential libgl1-mesa-dev libsdl2-dev libglew-dev libglm-dev libsdl2-image-dev libassimp-dev
Go to the AntTweakBar download page and download the zip file. Extract the folder and move inside its src/ folder. Run make. Move the contents of /include to /usr/local/include and the contents of lib to /usr/local/lib. run
sudo ldconfig
Run make
Install dependencies with brew:
brew install glm assimp sdl2 sdl2_image anttweakbar
Run make