Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/imd10/cs341-rainy-day
https://github.com/imd10/cs341-rainy-day
Last synced: 23 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/imd10/cs341-rainy-day
- Owner: iMD10
- Created: 2024-11-17T11:04:33.000Z (about 2 months ago)
- Default Branch: main
- Last Pushed: 2024-11-20T18:02:17.000Z (about 2 months ago)
- Last Synced: 2024-11-20T18:26:57.843Z (about 2 months ago)
- Language: C++
- Size: 24.4 KB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Interactive Rain Simulation with Waves 🌧️
![image](https://i.pinimg.com/originals/41/a7/f3/41a7f3eada3c52ea4403fdfc12c6b4f3.gif)An engaging computer graphics project that simulates interactive rain, dynamic water waves, and a visually enriched environment. Built using **OpenGL**, this project showcases concepts of real-time graphics rendering, animations, and user interaction.
## Features
- **Dynamic Rain**: Raindrops fall interactively when dragging the mouse.
- **Floating Boat**: A boat oscillates naturally with the water waves.
- **Wave Animation**: Smooth, continuous wave motion that reacts to water height.
- **Interactive Environment**:
- A house, trees, clouds, and a mountain as background elements.
- A dynamically rising water level affected by rain.
- **Weather System**:
- Realistic water ripples and splashes as rain hits the surface.
- Clouds move across the sky to simulate natural motion.
## Technologies Used
- **C++**: Core programming language.
- **OpenGL**: Graphics library for rendering and animation.## How to Use
1. Clone the repository:
```bash
git clone https://github.com/iMD10/CS341-Rainy-Day.git
cd CS341-Rainy-Day
2. Compile the main program (RainyDay.cpp) using your C++ compiler with OpenGL support:
```bash
g++ -o rainy_day RainyDay.cpp -lGL -lGLU -lglut
```
3. Run the program:
```bash
./rainy_day
```
4. Interact with the simulation:
- Drag the mouse to generate rain dynamically.
- Observe the rising water level and wave animations.
- Watch the boat float and oscillate with the waves.## Learning Objectives
This project is part of a Computer Graphics Course to explore:- Real-time rendering using OpenGL.
- Animation techniques such as sine wave motion.
- User interaction to trigger dynamic simulations.
- Building immersive environments with natural elements like rain, water, and waves.
## Screenshot
![image](https://github.com/user-attachments/assets/cca7a8ee-673b-4df0-b913-4ea0e18cd90d)