Java:2D Perlin Noise Creation

时间:2011-12-26 15:54:19

标签: persistence frequency noise perlin-noise amplitude

有很多易于理解的Perlin Noise教程,当然不是Java或2D。我遵循了this教程,但它根本没有解释2D噪音。我知道你必须生成一个数字数组然后插入它们和所有内容。我的问题是我不知道如何实现频率,持久性或幅度来帮助影响数字的结果。任何人都可以给我一些基本的Perlin Noise函数或者用Java或类似语言链接到2D Perlin Noise教程吗?谢谢!

编辑:有人可以简单地简单解释一下这个过程,或者如何实现影响生成的频率,幅度和持久性?请:)

1 个答案:

答案 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,依此类推。