All Projects → Overdrivr → ZNoise

Overdrivr / ZNoise

Licence: other
C++ noise algorithms library

Programming Languages

C++
36643 projects - #6 most used programming language

Projects that are alternatives of or similar to ZNoise

procedural-tileable-shaders
Collection of tileable procedural textures such as: cellular noise, fbm, voronoi, perlin and other.
Stars: ✭ 175 (+430.3%)
Mutual labels:  noise
SDETools
Matlab Toolbox for the Numerical Solution of Stochastic Differential Equations
Stars: ✭ 80 (+142.42%)
Mutual labels:  noise
NoiseView
Android library written in kotlin that add a noise effect to image.
Stars: ✭ 47 (+42.42%)
Mutual labels:  noise
keras gradient noise
Add gradient noise to any Keras optimizer
Stars: ✭ 36 (+9.09%)
Mutual labels:  noise
perlin-toolkit
Animated perlin noise textures
Stars: ✭ 15 (-54.55%)
Mutual labels:  noise
Filament
Interactive Music Visualizer
Stars: ✭ 22 (-33.33%)
Mutual labels:  noise
Perlinnoise
Header-only Perlin noise library for modern C++ (C++17/C++20)
Stars: ✭ 219 (+563.64%)
Mutual labels:  noise
Noisekun
🎧 Web page made with Next.js and Typescript, for listen combinations of sounds for relaxing or getting more productive on tasks.
Stars: ✭ 17 (-48.48%)
Mutual labels:  noise
ScatterFly
An attempt to improve user privacy by intelligent data obfuscation.
Stars: ✭ 49 (+48.48%)
Mutual labels:  noise
webgl-noise-examples
examples about noise
Stars: ✭ 72 (+118.18%)
Mutual labels:  noise
sparksl-noise
minimum proof of concept about procedural noise generation in SparkAR's shader language (SparkSL).
Stars: ✭ 16 (-51.52%)
Mutual labels:  noise
Noise.jl
A Julia package for adding different kinds of noise to signals like time series or images.
Stars: ✭ 16 (-51.52%)
Mutual labels:  noise
three-noise
Simple gradient noise library for use with Three.js. Now with fBm!
Stars: ✭ 31 (-6.06%)
Mutual labels:  noise
Unity-Noises
Collection of noises functions for Unity.
Stars: ✭ 26 (-21.21%)
Mutual labels:  noise
CubicNoise
1D & 2D Random noise with bicubic interpolation
Stars: ✭ 76 (+130.3%)
Mutual labels:  noise
GroundGrowing
Open Source Unity3d Planetary Terrain Editor Extension with incremental background updates via multithreading
Stars: ✭ 66 (+100%)
Mutual labels:  noise
RJModules
Various modules for VCV Rack
Stars: ✭ 94 (+184.85%)
Mutual labels:  noise
Noisy-Nodes
Adds various noise generation nodes to Unity Shader Graph, including 3D noise nodes.
Stars: ✭ 186 (+463.64%)
Mutual labels:  noise
UE4-Noise-BlueprintLibrary
UE4 plugin: Noise Blueprint Function Library
Stars: ✭ 25 (-24.24%)
Mutual labels:  noise
procedural-advml
Task-agnostic universal black-box attacks on computer vision neural network via procedural noise (CCS'19)
Stars: ✭ 47 (+42.42%)
Mutual labels:  noise

ZNoise

ZNoise is a fast and easy-to-use open-source C++ noise library.

This library is a very useful framework for people who want to generate procedural images, heightmaps and textures.

Author : Rémi Bèges (twitter)

Noise algorithms

Noise algorithms are density functions. For any given point in space, they will return a density value. This value is not random, noise algorithms are always deterministic. In other words, calling the function multiple times for the same point will always return the same value. However, computing the noise for different coordinates will yield different densities.

Noises

Usage

Perlin perlin;

for(int x = 0 ; x < image.width() ; x++)
    for(int y = 0 ; y < image.height() ; y++)
    {
        // returned noise value is between -1 and 1
        // Set noise scale with the last parameter
        float value = perlin.Get({x , y},0.01f);

        // Do whatever you want with it
        // ex : generate a pixel intensity, use in a colormap ...
        // ...
    }

List of supported algorithms

The following table details the implemented noises to date :

Noise 2-D 3-D (2D slice) 4-D (2D slice)
Perlin Perlin2D Perlin3D Perlin4D
Simplex Simplex2D Simplex3D Simplex4D
Worley F1 Worley2DF1 _ _
Worley F2 _ _ _
Worley F3 _ _ _
Worley F4 _ _ _
Square _ _ _

Mixers

Usage

// Use Perlin as mixer source
Perlin perlin;
// Mixer
FBM fbm(perlin);

for(int x = 0 ; x < image.width() ; x++)
    for(int y = 0 ; y < image.height() ; y++)
    {
        float value =  fbm.Get({x , y},0.01f);
        // ...
    }

List of supported mixers

Multiple noise layers can be assembled automatically using Mixers. Three parameters are available to tune the noise output :

  • Lacunarity
  • Octave amount
  • Hurst coefficient

The amount of octaves is simply the total number of noise layers blended together. Lacunarity controls the scale ratio between two successive layers. Hurst coefficient controls relates to the weight of each layer in the final blended image.

Fractal Brownian Motion (FBM) - 5 octaves

FBM lacunarity = 2.5f lacunarity = 3.5f lacunarity = 4.5f
hurst = 0.2f FBM2D FBM2D FBM2D
hurst = 0.5f FBM2D FBM2D FBM2D
hurst = 0.8f FBM2D FBM2D FBM2D

Hybrid Multi Fractal - 5 octaves

HMF lacunarity = 2.5f lacunarity = 3.5f lacunarity = 4.5f
hurst = 0.2f HMF2D HMF2D HMF2D
hurst = 0.5f HMF2D HMF2D HMF2D
hurst = 0.8f HMF2D HMF2D HMF2D

Build the library

Znoise uses the Gradle build system. As a user, you don't need to install gradle. All you need is a gcc C++11 compiler (MinGW or TDM-GCC for instance).

On Windows, you also need to add the /bin subfolder (where you can find gcc.exe) to the PATH.

Then, run the following command in the root /Znoise folder:

gradlew build

Build the examples

gradlew installDebugMainExecutable

Run the examples

\build\install\mainExecutable\debug\main.bat

This will generate all the images in this readme. Images will be found in \build\install\examplesExecutable\debug\

Related implementation

ZNoise has at some point been developed for the https://github.com/DigitalPulseSoftware/NazaraEngine C++11 game engine.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].