#noise #simd #perlin-noise #simplex-noise #3d #bindings #github

fastnoise_simd_bindings

FastNoiseSIMD库的绑定,https://github.com/Auburns/FastNoise

3个不稳定版本

0.1.1 2020年9月28日
0.1.0 2020年5月14日
0.0.1 2020年5月12日

#15 in #simplex-noise


用于 fastnoise-simd

MIT 许可证

155KB
3.5K SLoC

C++ 2.5K SLoC // 0.1% comments C 749 SLoC // 0.4% comments Rust 61 SLoC

FastNoise SIMD

FastNoiseSIMD的绑定,用于安全包装 fastnoise-simd-bindings

FastNoise SIMD是我噪声库 FastNoise 的SIMD实现。它旨在通过使用内建(SIMD)CPU函数来提供更快的性能。代码向量化允许噪声函数以4/8/16的集合处理数据,在某些情况下(Simplex)性能提高700%。

发布FastNoise后,我与FastNoise SIMD(命名巧合)的作者取得联系,并受到启发自己使用SIMD函数。通过他的代码和他的讨论,我创建了一个实现,通过移除查找表实现了更多的优化。

运行时检测最高支持的指令集确保只编译一次即可获得最快的性能。如果没有找到支持,它将回退到标准类型(float/int)。

特性

  • 值噪声3D
  • Perlin噪声3D
  • Simplex噪声3D
  • 立方噪声3D
  • 所有上述内容的多重分形选项
  • 白噪声3D
  • 细胞噪声3D
  • 在3D空间中扰动输入坐标
  • 集成上采样
  • 易于使用的3D洞穴噪声

感谢CubicNoise提供立方噪声算法

支持的指令集

  • ARM NEON
  • AVX-512F
  • AVX2 - FMA3
  • SSE4.1
  • SSE2

无运行时依赖

~0–2MB
~37K SLoC