Procedural Terrain Generator

This project demonstrates a comprehensive Procedural Terrain Generator built using C++ and OpenGL. It leverages advanced rendering techniques to create a realistic and immersive environment. The terrain is procedurally generated using Perlin noise, with enhancements like normal mapping, water rendering, and a dynamic skybox.

Key Contributions

  • Developed a terrain generation algorithm using Perlin noise, allowing for the creation of natural landscapes with adjustable parameters. This contribution involved fine-tuning noise parameters to produce varied and realistic terrains.
  • Added normal mapping to enhance surface detail and realism without increasing the complexity of the terrain mesh. This involved integrating normal maps and adjusting lighting calculations to account for perturbed normals. [In Progress]
  • Created a reflective and refractive water surface with dynamic wave animations. This feature required the implementation of framebuffers for capturing reflections and refractions, as well as shader development to simulate realistic water behavior. [In Progress]
  • Developed a skybox to encapsulate the scene, providing an immersive background that simulates distant landscapes and skies. This included the design of the skybox cube and texture mapping for each face. [In Progress]
  • Incorporated Phong lighting into the scene to provide realistic illumination across the terrain. This contribution included the development of shaders to handle ambient, diffuse, and specular lighting components.
  • Implemented an Arcball camera system to enable smooth panning, rotation, and zooming around the terrain. This system was designed to offer intuitive user control for exploring the generated landscape.

Tech Stack

  • Programming Language: C++, GLSL
  • Graphics API: OpenGL
  • Libraries: GLFW, GLAD, glm
  • Tools: CMake for build management

[GitHub]