Expand description
A collection of fast and lightweight noise functions.
Check out the live demo and node editor (experimental)!
§Examples
use noise_functions::{ Noise, OpenSimplexNoise, Perlin, CellDistance, OpenSimplex2s, NoiseFn };
let point = [1.0, 2.0];
// perlin noise
let value = Perlin.sample2(point);
// seeded perlin noise
let value = Perlin.seed(42).sample2(point);
// fractal perlin noise
let value = Perlin.fbm(3, 0.5, 3.0).sample2(point);
// seeded fractal perlin noise
let value = Perlin.fbm(3, 0.5, 3.0).seed(42).sample2(point);
// perlin noise with adjusted frequency
let value = Perlin.frequency(3.0).sample2(point);
// cell distance (voronoi/worley) noise
let value = CellDistance::default().sample2(point);
// cell distance (voronoi/worley) noise with jitter multiplier
let value = CellDistance::default().jitter(0.5).sample2(point);
// domain warped OpenSimplex2s noise
let noise = OpenSimplex2s.translate_xy(OpenSimplex2s.seed(1), OpenSimplex2s.seed(2));
let value = noise.sample2(point);
let point = [1.0, 2.0, 3.0];
// 3d OpenSimplex2s noise
let value = OpenSimplex2s.sample3(point);
// 3d OpenSimplex2s noise with improved isotropy in the xy plane
let value = OpenSimplex2s.improve3_xy().sample3(point);§Feature flags
std(enabled by default) — Uses floating point functions from the standard library.alloc(enabled by default) — Adds trait implementations for boxed trait objects.libm— Useslibmfor floating point functions. Required forno_std.nightly-simd— Adds support for sampling with simd types. Some of the noise algorithms have optimized implementations for simd that can be faster than the scalar versions. Currently those are the 2d and 3d implementations ofPerlin,Cell*andValue*noises.
Modules§
Structs§
- Cell
Distance - 2/3/4 dimensional noise of the distance to the closest cell.
- Cell
Distance Sq - 2/3/4 dimensional noise of the squared distance to the closest cell.
- Cell
Value - 2/3/4 dimensional noise of the random value of the closest cell.
- Constant
- Returns a constant value.
- NoiseFn
- Wraps a function to make it implement
Sample. - Open
Simplex2 - 2/3/4 dimensional OpenSimplex2 noise. Fast variant.
- Open
Simplex2s - 2/3/4 dimensional OpenSimplex2 noise. Smooth variant.
- Perlin
- 2/3/4 dimensional Perlin noise.
- Simplex
- 2/3/4 dimensional Simplex noise.
- Value
- 2/3/4 dimensional Value noise.
- Value
Cubic - 2/3 dimensional Cubic Value noise.
Traits§
- Noise
- Provides utility methods for noise types.
- Open
Simplex Noise - Provides utility methods for
OpenSimplexnoise types. - Sample
- Trait for sampling noises.
- Value
OrNoise - Either a
f32or a noise.