https://github.com/jackmott/fastnoise-simd
Perlin style noise sped up with SIMD instructions
https://github.com/jackmott/fastnoise-simd
Last synced: 11 months ago
JSON representation
Perlin style noise sped up with SIMD instructions
- Host: GitHub
- URL: https://github.com/jackmott/fastnoise-simd
- Owner: jackmott
- License: other
- Created: 2015-12-09T05:05:39.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2020-05-07T18:33:44.000Z (about 6 years ago)
- Last Synced: 2025-04-08T17:49:55.432Z (about 1 year ago)
- Language: C++
- Homepage:
- Size: 77.1 KB
- Stars: 54
- Watchers: 5
- Forks: 8
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# FastNoise SIMD
Ultra fast Perlin and Simplex noise functions sped up with SSE2,SSE4, and AVX2 instructions.
If you are interested in this you may want to refer to: https://github.com/Auburns/FastNoiseSIMD
A similarly named library inspired by this one that is more user friendly and even faster.
FastNoise.h / cpp
-----------------
Contains SIMD constants, constant lookup tables, and SIMD intrinsic helper #defines
which allow you to switch between SSE2, SSE4, and AVX2 builds by adjusting the #defines
at the top. The SIMD typedef allows us to abstract the __m128 and __m256 types for each
case. It should not be too hard to adapt this to AVX512 or other instruction sets, just add
a new set of #defines for the instructions in question, and a new typedef for SIMD. Please
feel free to add other SIMD platforms and pull request!
FastNoise3d.h / cpp
-------------------
The base Perlin and Simplex noise functions, provided in both SIMD and non SIMD form.
FractalNoise3d.h / cpp
----------------------
Various fractal noise variants, in SIMD and non SIMD form.These methods iterate overthe noise
functions at different scales, providing very detailed and interesting patterns.
NoiseUtility.h / cpp
--------------------
Utility functions to grab large chunks of noise at a time. The Sphere methods will create noise
that can be texture mapped to a sphere. Methods to return 2d noise for flat textures and methods
that accept a set of coordinates and return the noise would be next up. Feel free to pull request that!