Python中的简单2D Perlin噪声

问题描述

我知道有很多关于python 2D perlin噪声的文章,但是有人可以在python中使用带有整数的种子和坐标(以及其他一些需要的参数)编写python 2D perlin噪声函数。抱歉,但是找不到类似这样的帖子。

def noise(x: int,y: int,seed: int,smooth: int,scale: int):
    # code

解决方法

是否需要为整数,或者双浮点精度足够好?可以使用Cython吗?这里有一个用于FastNoiseLite的Cython包装器:https://github.com/tizilogic/PyFastNoiseLite。您可以将整数转换为双精度,而剩下的精度很高。

我也建议使用OpenSimplex2或OpenSimplex2S噪声选项,而不是Perlin。 Perlin作为基本噪声非常符合网格对齐的外观。 Simplex / OpenSimplex2(S)直接解决了这个问题。