Technologies: C++, OpenGL

This is a project created in the second year of University. This project was written in C++ and OpenGL, I also used shading language GLSL 3.3 in order to calculate the lighting and fog effect more efficiency .

I created a 3D environment which simulates terrain. You can navigate through it by using arrow keys on your keyboard. To make it more natural I have used techniques like lighting, texture mapping, buffer drawing and skybox.

Lighting is calculated for every vertex.

–      Ambient light – used to light the space.

–      Diffuse light  –  used for highlighting part of the terrain ( we can see it on the grass).

Skybox is loaded from Obj file and rescaled to bigger size. Every time the camera is moved in the scene the skybox is translated by the camera moving in the appropriate direction.

To make the environment more natural I have also added fog. The user can add or remove fog in runtime by pressing F or G key. In this project I have used three external libraries:

–      Assimp – used to read the model file data.

–      FreeImage – used to load materials and textures.

–      GLM Math Library – used to for all math operations in the application.