有很多易于理解的Perlin Noise教程,当然不是Java或2D。我遵循了this教程,但它根本没有解释2D噪音。我知道你必须生成一个数字数组然后插入它们和所有内容。我的问题是我不知道如何实现频率,持久性或幅度来帮助影响数字的结果。任何人都可以给我一些基本的Perlin Noise函数或者用Java或类似语言链接到2D Perlin Noise教程吗?谢谢!
编辑:有人可以简单地简单解释一下这个过程,或者如何实现影响生成的频率,幅度和持久性?请:)答案 0 :(得分:2)
幅度和频率在Perlin噪声生成中不是自由变量。相反,它们被称为持久性的东西参数化。
噪声函数是几个基本函数的总和。
n(x) = sum( n_i(x*f_i) * a_i, i=0..N-1)
每个函数都被称为 octave ,因此由索引i
编号。值f_i
表示频率和a_i
幅度。如前所述,它们完全由索引i
本身确定,由持久性 p
参数化:
f_i = 2^i
a_i = p^i
虽然每个噪声函数n_i(x)
针对频率1
和幅度1
进行了归一化,但总体术语n_i(x*f_i) * a_i
现在具有上述表达式给出的频率和幅度。
换句话说,噪声函数n(x)
是八度音的总和,其中第一个具有频率1
和幅度1
,第二个具有频率2
和幅度p
,第三个频率4
和幅度p^2
,依此类推。