使用Python和NumPy生成n维Perlin噪声批

使用Python和NumPy生成n维Perlin噪声批,python,numpy,perlin-noise,Python,Numpy,Perlin Noise,我设法掌握了Perlin noise的工作方式,并使用Aweasome PDF作为参考实现了一次一个像素的版本,但是,很明显,它的速度非常慢 第一个想法是批量生成,而不是遍历从0.0到1.0的每个像素,生成一个numpy.linspace,然后使用numpy的矢量化操作对其进行操作,但这似乎超出了我的能力,我一直在丢失和删除我编写的所有内容 能帮我个忙吗?只要一点示例代码,再加上对每个步骤的详细解释,都会对我大有帮助 编辑:我所说的批处理是指在空间的不同点上包含柏林噪声值的数组,而不是我的noi

我设法掌握了Perlin noise的工作方式,并使用Aweasome PDF作为参考实现了一次一个像素的版本,但是,很明显,它的速度非常慢

第一个想法是批量生成,而不是遍历从0.0到1.0的每个像素,生成一个
numpy.linspace
,然后使用numpy的矢量化操作对其进行操作,但这似乎超出了我的能力,我一直在丢失和删除我编写的所有内容

能帮我个忙吗?只要一点示例代码,再加上对每个步骤的详细解释,都会对我大有帮助


编辑:我所说的批处理是指在空间的不同点上包含柏林噪声值的数组,而不是我的noise()方法一次只生成一个像素。

如果猜测正确,那么Asmagedon想计算他的噪声纹理,然后将其绘制到其他不同大小的目标上

实现这一点的一种方法是,使用它可以对信号进行插值和子采样。从内存来看,它一次只能在一个维度上工作——只需在维度上循环


可能有更好的方法来进行抗锯齿,但这一种很简单。

您能澄清一下“批量”的想法吗?我对柏林河的噪音本身一无所知,但我还是可以帮上忙的。你是否尝试预生成纹理,然后将其插值到目标曲面上?批量指的是一次超过一个像素,例如一个包含噪波的数组,我以后可以使用它,而不是逐像素生成,每次调用python函数。啊-我明白了,因此,您试图使用numpy的矢量化,但进展不顺利。这并不罕见。您的代码是否足够简单,您可以将其发布到我们可以查看的地方?如果事情真的很复杂,那么最好用C编写一个函数,一次像素地完成这项工作,然后将其包装到一个矢量化的python函数中。