我设法掌握了柏林噪声的工作方式,并使用这个很棒的PDF作为参考实现了一个逐像素的版本,但是,很明显,它非常慢。
首先想到的是将其批量生成-而不是通过从0.0到1.0的每个像素,生成numpy.linspace
,然后使用numpy的矢量化操作对其进行操作,但这似乎超出了我的能力,我一直迷路并删除我写的所有内容。
EDIT:这里的批量是指包含空间不同点柏林噪声值的数组,而不是我的noise()方法一次只生成一个像素。
如果猜对了,那么Asmagedon想要计算他的噪声纹理,然后将它们绘制到其他不同大小的目标上。
一种方法是使用scipy.signal.resample,它可以对信号进行插值和子采样。根据记忆,它一次只能在一个维度上工作——只是在维度上循环。也许有更好的方法来做抗锯齿,但这个很简单。