/FastNoise2

Modular node based approach to noise generation using modern C++17 features and templates

Primary LanguageC++MIT LicenseMIT

GitHub Actions CI Discord

FastNoise2

Documentation WIP

WIP successor to FastNoiseSIMD

FastNoise2 is a fully featured noise generation library which aims to meet all your coherent noise needs while being extremely fast

Uses FastSIMD to compile classes with multiple SIMD types

Supports:

  • 32/64 bit
  • Windows
  • Linux
  • MacOS
  • MSVC
  • Clang
  • GCC

Check the releases for early versions of the Noise Tool

NoiseTool

Getting Started

There are 2 ways to use FastNoise 2, creating a node tree structure in code or importing a serialised node tree created using the NoiseTool.

This is creating a Simplex Fractal FBm with 5 octaves from code:

auto fnSimplex = FastNoise::New<FastNoise::Simplex>();
auto fnFractal = FastNoise::New<FastNoise::FractalFBm>();

fnFractal->SetSource( fnSimplex );
fnFractal->SetOctaveCount( 5 );

fnFractal->GenUniformGrid2D( ... );

Here is the same Simplex Fractal FBm with 5 octaves but using serialised data from the NoiseTool:

FastNoise::SmartNode<> fnGenerator = FastNoise::NewFromEncodedNodeTree( "DQAFAAAAAAAAQAgAAAAAAD8=" );

fnGenerator->GenUniformGrid2D( ... );

This is the node graph for the above from the NoiseTool

SimplexFractalNodes