Python 中的简单二维柏林噪声

Simple 2D Perlin Noise in Python

Python 中有许多不同的 2D 柏林噪声实现。 我的问题是 Python 中是否有适合 1 个函数或 1 class 的 perlin 噪声的简单实现?或者也许有更容易实现的类似于 perlin 噪声的 2D 噪声?

是否必须是整数,或者双浮点精度是否足够好?你能用Cython吗?这里有一个 FastNoiseLite 的 Cython 包装器:https://github.com/tizilogic/PyFastNoiseLite。您可以将整数转换为双精度,并保留足够的精度。

我还建议使用 OpenSimplex2 或 OpenSimplex2S 噪声选项,而不是 Perlin。 Perlin 作为基础噪音非常 grid-aligned 看起来。 Simplex/OpenSimplex2(S) 直接解决。

我发现的最简单的 Perlin 噪声实现是这样的。

https://pypi.org/project/perlin-noise/

安装并在代码顶部初始化后,只需调用函数 noise(float) returns 噪声场该点的值。此外,通过“无限坐标space”,您可以简单地向噪声函数添加更多值noise(float,float)以更改为2D、3D或更高维的噪声场。

他们在网站上提供了几个基本示例,我发现它们非常有帮助并且足以实现该库。