
4 Seasons
Team Size
3
Engine
-
Tools Used
Git
Visual Studio
OpenGL
Languages
C++
GLSL
Duration
5 Months
Overview
This was my project for the real-time graphic programming course. The main purpose was to re-create real world situations and phenomena present in the 4 seasons.
The virtual world is depicted as a forest positioned on a suspended isle, bordered by
rocks, whose purpose is to limit the movement of the character within the terrain.

Each season has its own characteristics: lighting of the sun coming from different points according to the season (in this case we have considered the two equinoxes and the two solstices), phenomena such as rain, snow and fog, each one present only in certain seasons, and characteristics of trees and ground that change according to the season.
Moreover, we have realized footsteps using the tessellation technique and a circular transition for season change.
Finally we added a collision detection to prevent the character from crossing the models or coming out of the ground.
Performance-wise, the main goal was to stay above a minimum of 30 frames per second and it was reached in every scenario with a rendering resolution of 1920x1080.
Some of the methods adopted to avoid useless operations and enhance performances include clipping, uniform variables caching and tessellation focusing.
The project was developed using OpenGL 4.2.
Libraries we used include:
GLFW: to manage input, OpenGL context and window.
glm: as mathematics library.
glad: to use OpenGL functions.
assimp: for model loading.
stbi: for texture loading.
What I worked on:
Fully implemented collision detection;
Fully implemented particle system for rain and snow;
Season change transition;
Snow accumulation on the ground;
Object positioning in world coordinates;
Tesselation shader for footprints;
Performance optimization and code cleaning;
Links
For further informations about the used techniques, performance analysis and code snippets please check the following report
Gallery






