Skip to content

davidgeamanu/OpenGL-Scene

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mountain Scene OpenGL Project

An immersive 3D scene built with Modern OpenGL and C++.

C++ OpenGL GLFW GLEW GLM

Experience a dynamic mountain environment with real-time lighting, weather effects, and interactive controls.

FeaturesScreenshotsTech StackControls


⚠️ Important Notice

The models/ directory containing 3D assets is not included in this repository due to copyright restrictions.
As a result, this project is provided for demonstration and academic purposes only and is not intended to be rebuilt or redistributed as-is.


Table of Contents


Features

Dynamic Lighting & Skybox

  • Day / Night / Dusk cycles with smooth transitions
  • Phong lighting model (ambient, diffuse, specular)
  • Point lights (lantern + fire flicker)
  • Cubemap skybox for environmental realism

Weather & Atmosphere

  • Distance-based volumetric fog
  • Rain particle system with instancing
  • Shadow mapping from directional light
  • Atmospheric depth cues for large scenes

Animation & Interaction

  • Animated floating lantern (scripted path)
  • Dynamic fire light flicker
  • Free-fly camera (WASD + mouse look)
  • Global scene rotation

Environment

  • Mountain terrain with grass and water
  • Vegetation (trees, bushes, firs)
  • House architecture (roof, porch, chimney)
  • Static vehicle placement

Screenshots

Main Scene

Scene


Tech Stack

Core

  • C++17
  • OpenGL 3.3+ (Core Profile)
  • GLSL shaders

Libraries

  • GLFW – window & input
  • GLEW – OpenGL extensions
  • GLM – math utilities
  • stb_image – texture loading
  • tiny_obj_loader.obj parsing

Controls

Key Action
W, A, S, D Move camera
Mouse Look around
Q / E Rotate scene
1 / 2 / 3 Day / Night / Dusk presets
4 / 5 Fog presets
G Toggle fog
[ / ] Adjust fog density
R Toggle rain
L Toggle lantern animation
F Wireframe mode
ESC Exit application

Project Structure

mountain-scene-opengl/
├── Project/
│   ├── main.cpp                # Core application logic & main loop
│   ├── Window.h/cpp            # GLFW window wrapper
│   ├── Shader.hpp/cpp          # Shader loading & compilation
│   ├── Camera.hpp/cpp          # Camera class (Euler angles)
│   ├── Mesh.hpp/cpp            # Mesh data structure
│   ├── Model3D.hpp/cpp         # Model loading & rendering
│   ├── SkyBox.hpp/cpp          # Skybox implementation
│   ├── RainGenerator.hpp/cpp   # Rain particle system
│   └── tiny_obj_loader.h       # Model loader library
├── shaders/                    # GLSL Shader files (.vert, .frag)
├── screenshots/                # Project screenshots
├── models/                     # 3D Assets (Excluded from Git)
├── Project.sln                 # Visual Studio Solution
└── README.md                   # Documentation

Acknowledgments

  • OpenGL community & documentation
  • LearnOpenGL.com

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors