0

那里没有多少易于理解的 Perlin Noise 教程,当然也没有 Java 或 2D 教程。我按照教程进行了一定程度的操作,但它根本没有解释 2D 噪声。我知道你必须生成一个数字数组,然后对它们和所有内容进行插值。我的问题是我不知道如何实现频率、持久性或幅度来帮助影响数字的结果。谁能给我一些基本的 Perlin Noise 函数或 Java 或类似语言的 2D Perlin Noise 教程的链接?谢谢!

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

4

1 回答 1

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

于 2011-12-26T17:39:24.343 回答