7 个版本
0.2.1 | 2024 年 5 月 4 日 |
---|---|
0.2.0 | 2024 年 5 月 4 日 |
0.1.3 | 2024 年 5 月 3 日 |
0.1.2 | 2024 年 4 月 26 日 |
0.0.0 | 2024 年 4 月 26 日 |
#459 in 算法
180KB
4.5K SLoC
噪声函数
快速且轻量级的噪声算法实现。
查看实时演示!
这些噪声函数的实现来自 FastNoiseLite.
基础噪声
分形噪声
域扭曲噪声
为什么不使用 noise
或 libnoise
?
使用 noise
,构建如 Perlin
的噪声结构时会在运行时创建一个排列表。因此,为了有效地使用噪声,您需要保留 Perlin
的实例。
使用 noise-functions
,Perlin
和其他结构不携带任何状态。这使得噪声算法更容易高效地使用。例如,您可以在不携带状态的情况下使用噪声算法,而不会牺牲性能
fn my_noise(point: Vec2) -> f32 {
Perlin.fbm(3, 0.5, 2.0).seed(42).frequency(3.0).sample2(point)
}
优点: noise
有更多的噪声函数、更多的噪声函数维度和更多的噪声组合器。
差异: noise
使用 f64
而不是 f32
。
为什么不使用 fastnoise-lite
?
fastnoise-lite
通过一个大的结构体提供其噪声生成,您需要对其进行修改以获取所需的噪声。如果您已经知道需要什么噪声,此 API 不方便且效率低下。如果需要,有提供类似 API 的 noise-functions-config
库。
优点: fastnoise-lite
提供了更多的细胞噪声变体,并将域扭曲内置到配置结构体中。
依赖项
~130KB