Skip to content

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

License

Notifications You must be signed in to change notification settings

HelloMichaelLoke/FastNoise2

 
 

Repository files navigation

GitHub Actions CI Discord

FastNoise2

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

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 76.9%
  • CMake 22.9%
  • C 0.2%