LibNoise.Xna

LibNoise.Xna is a port of the C++ library libnoise by Jason Bevins that is used to generate coherent noise, a type of smoothly-changing noise. LibNoise.Xna can generate Perlin noise, ridged multifractal noise, and other types of coherent-noise. Coherent noise is often used by graphics programmers to generate natural-looking textures, planetary terrain, and other things.

In LibNoise.Xna, coherent-noise generators are encapsulated in classes called noise modules. There are many different types of noise modules. Some noise modules can combine or modify the outputs of other noise modules in various ways; you can join these modules together to generate very complex coherent noise.

Generators
  • Billow - Provides a noise module that outputs a three-dimensional billowy noise.
  • Checker - Provides a noise module that outputs a checkerboard pattern.
  • Const - Provides a noise module that outputs a constant value.
  • Cylinders/Spheres - Provides a noise module that outputs concentric cylinders/spheres.
  • Perlin - Provides a noise module that outputs a three-dimensional perlin noise.
  • Rigged Multifractal - Provides a noise module that outputs 3-dimensional ridged-multifractal noise.
  • Voronoi - Provides a noise module that outputs Voronoi cells.
gen_riggedmultifractal.pnggen_voronoi.pnggen_perlin.pnggen_cylinders.pnggen_billow.pnggen_checker.png


Operators
  • Abs - Provides a noise module that outputs the absolute value of the output value from a source module.
  • Add - Provides a noise module that outputs the sum of the two output values from two source modules.
  • Blend - Provides a noise module that outputs a weighted blend of the output values from two source modules given the output value supplied by a control module.
  • Cache - Provides a noise module that caches the last output value generated by a source module.
  • Clamp - Provides a noise module that clamps the output value from a source module to a range of values.
  • Curve - Provides a noise module that maps the output value from a source module onto an arbitrary function curve.
  • Displace - Provides a noise module that uses three source modules to displace each coordinate of the input value before returning the output value from a source module.
  • Exponent - Provides a noise module that maps the output value from a source module onto an exponential curve.
  • Invert - Provides a noise module that inverts the output value from a source module.
  • Max - Provides a noise module that outputs the larger of the two output values from two source modules.
  • Min - Provides a noise module that outputs the smaller of the two output values from two source modules.
  • Multiply - Provides a noise module that outputs the product of the two output values from two source modules.
  • Power - Provides a noise module that outputs value from a first source module to the power of the output value from a second source module.
  • Rotate - Provides a noise module that rotates the input value around the origin before returning the output value from a source module.
  • Scale - Provides a noise module that scales the coordinates of the input value before returning the output value from a source module.
  • ScaleBias - Provides a noise module that applies a scaling factor and a bias to the output value from a source module.
  • Select - Provides a noise module that outputs the value selected from one of two source modules chosen by the output value from a control module.
  • Subtract - Provides a noise module that outputs the difference of the two output values from two source modules.
  • Terrace - Provides a noise module that maps the output value from a source module onto a terrace-forming curve.
  • Translate - Provides a noise module that moves the coordinates of the input value before returning the output value from a source module.
  • Turbulence - Provides a noise module that that randomly displaces the input value before returning the output value from a source module.
op_add.pngop_blend.png


Output
  • Grayscale - Used for traditional heightmaps.
  • Custom Gradients - Used to simulate vegetation and surfaces on terrains.
  • Normals - Used to apply as normal maps.
out_normal.pngout_colorized.pngout_grayscale.png


Projections
  • Planar - Projects the noise map onto a plane.
  • Cylindrical - Projects the noise map onto a cylinder.
  • Spherical - Projects the noise map onto a sphere.
proj_spherical.pngproj_planar.pngproj_cylindrical.png