fastnoise_simd_bindings

Crates.iofastnoise_simd_bindings
lib.rsfastnoise_simd_bindings
version0.1.1
sourcesrc
created_at2020-05-12 00:27:09.173661
updated_at2020-09-28 08:59:10.263994
descriptionBindings for the FastNoiseSIMD library, https://github.com/Auburns/FastNoise.
homepage
repositoryhttps://github.com/AustinJ235/fastnoise-simd-rs
max_upload_size
id240381
size188,293
Austin Johnson (AustinJ235)

documentation

https://docs.rs/fastnoise-simd-bindings

README

FastNoise SIMD

Bindings for FastNoiseSIMD used by the safe wrapper fastnoise-simd-bindings.

FastNoise SIMD is the SIMD implementation of my noise library FastNoise. It aims to provide faster performance through the use of intrinsic(SIMD) CPU functions. Vectorization of the code allows noise functions to process data in sets of 4/8/16 increasing performance by 700% in some cases (Simplex).

After releasing FastNoise I got in contact with the author of FastNoise SIMD (naming is coincidence) and was inspired to work with SIMD functions myself. Through his code and discussions with him I created my implementation with even more optimization thanks to the removal of lookup tables.

Runtime detection of highest supported instruction set ensures the fastest possible performance with only 1 compile needed. If no support is found it will fallback to standard types (float/int).

Features

  • Value Noise 3D
  • Perlin Noise 3D
  • Simplex Noise 3D
  • Cubic Noise 3D
  • Multiple fractal options for all of the above
  • White Noise 3D
  • Cellular Noise 3D
  • Perturb input coordinates in 3D space
  • Integrated up-sampling
  • Easy to use 3D cave noise

Credit to CubicNoise for the cubic noise algorithm

Supported Instruction Sets

  • ARM NEON
  • AVX-512F
  • AVX2 - FMA3
  • SSE4.1
  • SSE2
Commit count: 12

cargo fmt