我正试图让我的单纯噪音(基本上是具有更好复杂性的柏林噪音)来工作并给我一些这样的好东西:
然而,我得到的只是随机的东西:
我正在使用here中的单纯形代码,并且正在使用它:
def generate(self):
columns = []
for x in range(0, self.width):
rows = []
for y in range(0, self.height):
val = simplex.scaled_raw_noise_2d(0, 254, x, y)
rows.append(val)
columns.append(rows)
return columns
相当简单,但似乎我错过了一些东西。不知道是什么
答案 0 :(得分:0)
我想你应该简单地将代码编写为
def generate(self):
return simplex.scaled_raw_noise_2d(0, 254, range(0, self.width),
range(0, self.width))
答案 1 :(得分:0)
这是一个古老的问题,但这绝不是没有答案的!对于访客来说当然,即使你已经把它想象成你自己的。
我对python没有太多经验,但我认为问题是频率太高,确切地说是1.0。或者换句话说,噪声被缩小得太远,导致噪声混叠。
要“放大”频率需要降低。假设没有其他方法可以在您的库中执行此操作,这看起来就像这样。
def generate(self):
columns = []
frequency = 1 / 10 # zoom in 10 times
for x in range(0, self.width):
rows = []
for y in range(0, self.height):
val = simplex.scaled_raw_noise_2d(0, 254, x * frequency, y * frequency)
rows.append(val)
columns.append(rows)
return columns
只是为了说出来,这就是多重八度音程(浮云看东西)的工作原理,它操纵噪音的频率超过了几个八度音阶,或者是2的幂(有时被错误地称为八度音阶)一个空隙变量)然后将它们全部加在一起并标准化,或缩放到适当的范围。