3个不稳定版本
0.1.1 | 2020年9月28日 |
---|---|
0.1.0 | 2020年5月14日 |
0.0.1 | 2020年5月12日 |
#1909 in 算法
190KB
4.5K SLoC
FastNoise SIMD
主要对fastnoise-simd-bindings进行安全包装,而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–1.9MB
~37K SLoC