Crate noise_functions

Crate noise_functions 

Source
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 — Uses libm for floating point functions. Required for no_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 of Perlin, Cell* and Value* noises.

Modules§

errors
Error types.
modifiers
Noise modifiers.

Structs§

CellDistance
2/3/4 dimensional noise of the distance to the closest cell.
CellDistanceSq
2/3/4 dimensional noise of the squared distance to the closest cell.
CellValue
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.
OpenSimplex2
2/3/4 dimensional OpenSimplex2 noise. Fast variant.
OpenSimplex2s
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.
ValueCubic
2/3 dimensional Cubic Value noise.

Traits§

Noise
Provides utility methods for noise types.
OpenSimplexNoise
Provides utility methods for OpenSimplex noise types.
Sample
Trait for sampling noises.
ValueOrNoise
Either a f32 or a noise.