Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/misterrooster/ogl-particles
Particle simulation with OpenGL
https://github.com/misterrooster/ogl-particles
cpp graphics imgui opengl particles rendering
Last synced: 13 days ago
JSON representation
Particle simulation with OpenGL
- Host: GitHub
- URL: https://github.com/misterrooster/ogl-particles
- Owner: MisterRooster
- License: mit
- Created: 2023-08-29T09:48:50.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2024-04-25T00:40:45.000Z (7 months ago)
- Last Synced: 2024-04-25T02:13:10.206Z (7 months ago)
- Topics: cpp, graphics, imgui, opengl, particles, rendering
- Language: C++
- Homepage:
- Size: 14.4 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![Preview](preview.gif)
# ogl-particles
Particle simulation with OpenGL and Imgui as user interface.
The particles are solved on the CPU and rendered on the GPU.
SSE & AVX intrinsics are used to speed up vector calculations.
Handles half a million particles on an AMD R9 290X GPU.> **Note**:
Support for OpenGL 4.4 core profile is required.## Controls
+ **[ LMB + Drag ]** Turn Camera
+ **[ RMB + Drag ]** Zoom in & out
+ **[ ESCAPE ]** Quit## How to Compile
Clone the repo:
```bash
git clone git://github.com/MisterRooster/ogl-particles.git
cd ogl-particles
```Then simply run CMake with your favourite IDE. Tested with Visual Studio 2022,
no working guarantee for other environments.
Example commands for VS 2022:```bash
mkdir build
cd build
cmake -G "Visual Studio 17"..
```If you are using **Visual Studio Code**, checkout [How to compile with VS Code](docs/compile-instructions-vscode.md).
## 3rd Party
**ogl-particles** uses 3rd party software, which are located in the `./dependencies` folder as submodules and built with the program. A copy of each is included in the repository when built.
Structure and description of 3rd parts libraries and related copyrights & licenses:- dependecies/**glfw** → A multi-platform library for OpenGL, OpenGL ES, Vulkan, window and input
uses version 3.3.8 - [*tag (3.3.8)*](https://github.com/glfw/glfw/tree/3.3.8) - [*License*](https://github.com/glfw/glfw/blob/3.3.8/LICENSE.md)- dependencies/**glew** → GL/GLES/EGL/GLX/WGL Loader
uses a slightly altered version compatible with *CMake* named [**glew-cmake**](https://github.com/Perlmint/glew-cmake) - [*tag (glew-cmake-2.2.0)*](https://github.com/Perlmint/glew-cmake/tree/glew-cmake-2.2.0) - [*License*](https://github.com/nigels-com/glew/blob/glew-2.2.0/LICENSE.txt)- dependencies/**glm** → OpenGL vector and matrix math with SIMD
uses version 9.9.8 - [*commit (47585fd)*](https://github.com/g-truc/glm/tree/47585fde0c49fa77a2bf2fb1d2ead06999fd4b6e) - [*License*](https://github.com/g-truc/glm/blob/47585fde0c49fa77a2bf2fb1d2ead06999fd4b6e/copying.txt)- src/thirdparty/**stb_image.h** → Single file image loader
uses version 2.28 - [*commit (5736b15)*](https://github.com/nothings/stb/tree/5736b15f7ea0ffb08dd38af21067c314d6a3aae9) - [*License*](https://github.com/nothings/stb/blob/5736b15f7ea0ffb08dd38af21067c314d6a3aae9/LICENSE)- dependecies/**imGui** → Dear ImGui
uses **docking** release of **imGui** - [*tag (v1.89.8-docking)*](https://github.com/ocornut/imgui/tree/v1.89.8-docking) - [*License*](https://github.com/ocornut/imgui/blob/v1.89.8-docking/LICENSE.txt)The following resources are used:
- data/**icons** → Application icon made by [@Eucalyp](https://www.flaticon.com/authors/eucalyp) on
[Flaticon](https://www.flaticon.com/free-icons/element)
[https://www.flaticon.com/free-icon/molecule_3201368](https://www.flaticon.com/free-icon/molecule_3201368)- data/**sprites** → Sprites from Kenney Particle Pack mady by [@Kenney](https://opengameart.org/users/kenney) on
[OpenGameArt](https://opengameart.org/)
[https://opengameart.org/content/particle-pack-80-sprites](https://opengameart.org/content/particle-pack-80-sprites)- data/**fonts** → Regular Font and Icon Font by Microsoft and [Pictogrammers](https://pictogrammers.com/)
[**Ubuntu-Regular.ttf**](https://fonts.google.com/specimen/Ubuntu) - [*License*](https://ubuntu.com/legal/font-licence),
[**MaterialDesignIconsDesktop.ttf**](https://github.com/Templarian/MaterialDesign-Font) - [*License*](https://pictogrammers.com/docs/general/license/)-----
Copyright (c) 2023 MisterRooster ([github.com/MisterRooster](https://github.com/MisterRooster)). All rights reserved.
Licensed under the MIT license. See [LICENSE](LICENSE) for full terms.