An interactive C++ desktop application for generating and visualizing procedural 2D noise with customizable parameters, real-time preview rendering, and flexible preset management.
- ✅ Procedural 2D noise generation (Perlin + turbulence + marbling)
- ✅ Real-time GUI interface using ImGui with docking support
- ✅ Adjustable parameters: resolution, seed, roughness, marbling, frequency skips
- ✅ Turbulence distortion with exponential shifting and offsets
- ✅ Support for preset saving, loading, and deletion via
.json - ✅ Live preview of generated noise textures
- ✅ Export to
.png,.tga,.bmpand.jpgformats - ✅ Built-in logger (with UI panel and save-to-file functionality)
- ✅ Asynchronous generation with visual progress
Available in the NoiseType:
- Value
- Perlin
- Simplex
- FBM (Fractal Brownian Motion)
- Worley
- Ridged
- Billow
- DomainWarp
- Cellular
- Voronoi
- Gabor
- White Noise
- OpenSimplex
📦 Easily extendable via
NoiseType, generator dispatch, and serialization logic.
Each preset saves the full set of NoiseProperties, resolution, and noise type:
- ✅ Save current parameters to a
.jsonpreset - ✅ Load and apply presets instantly via combo box
- ✅ Delete presets via GUI
- ✅ Stored in
presets/folder as JSON files
| Library | Purpose |
|---|---|
| GLFW | Window & input handling |
| GLAD | OpenGL function loader |
| Dear ImGui | GUI rendering |
| Native File Dialog | Native File Dialog |
| inih | .INI file parser |
| stb_image_write | PNG & TGA image saving |
| OpenGL 4.3+ | GPU rendering backend |
| IconsFontAwesome5 | icons for ImGui |
This project uses CMake ≥ 3.11 and automatically fetches all dependencies via FetchContent. No manual setup is required.
- CMake ≥ 3.11
- C++17 compatible compiler
- OpenGL 4.3+ capable GPU
- Internet connection (to fetch dependencies)
To build and run the project with minimal effort:
git clone https://github.com/VaeDeveloper/NoiseGenerator.git
cd NoiseGenerator
dev_ops\generate_project.bat
dev_ops\build_project.batYou can configure and build tests using a special flag:
dev_ops\generate_project.bat
change 3 - testing options- Export to
.bmp/.jpg - Native File Dialog (save/load image)
- Save/load presets as
.json - Multi-threaded generation (tile-based)
- GPU acceleration (OpenGL compute shaders)
- Save/restore UI layout (ImGui settings)
- CLI interface for headless noise export
This project is licensed under the MIT License - see the LICENSE file for details.
