我设法掌握了Perlin噪音的工作方式,并使用this非常棒的PDF作为参考来实现一次一个像素的版本,但很明显它的速度非常慢。
首先想到的是将它作为批处理生成 - 而是遍历从0.0到1.0的每个像素,生成numpy.linspace
然后使用numpy的向量化操作对其进行操作,但这似乎超出了我,我保持迷路并删除我写的所有内容。
StackOverflower会帮助我吗?只要示例代码和每个步骤的详细说明都会对我有很大帮助。
编辑:按批次我的意思是包含空间不同点的perlin噪声值的数组,而不是我的noise()方法一次只生成一个像素。
答案 0 :(得分:1)
如果猜测正确,那么Asmagedon想要计算他的噪声纹理,然后将它们绘制到不同大小的其他目标上。
实现此目的的一种方法是使用scipy.signal.resample,它可以对信号进行插值和子采样。从记忆中,它一次只能在一个维度上运行 - 只需在维度上循环。
可能有更好的方法来做抗锯齿,但这个很容易。