先ずはPerlin Noise(パーリンノイズ)について簡単に解説します。Noiseと聞くとラジオの雑音や街の騒音を思い浮かべるかもしれませんが、ここでいうNoiseはグラフィック用語の一種です。今後何回も出てくる単語なので、一旦日常生活における騒音的な意味は頭の隅に追いやってください。
Perlin Noiseは乱数の一種です。あるパラメーターを与えると、それに対応した値を返します。この値は大局的にはランダムな値になります(と思います)が、局所的に見ると変化がなめらかであるという性質を持ちます。
ここでは、Perlin Noiseを出力する関数を$P(x,y,\cdots)$とします。具体的にPerlin Noiseがどのような出力をするのかを、1次元、2次元、3次元の場合について見ていきましょう。
Pの引数が1つの場合$P(x)$です。この場合は簡単で、$x$に値を入れるとそれに応じた0から1の値が返されます。例えば$P(0)=0.432$だとしましょう。
ここで重要なのは単なる乱数との違いです。乱数はただ無機質に出鱈目な値を返します。(図1)一方で、Perlin Noiseは$x$を連続的に変化させると、得られる値も連続的になります。例えば、先ほどの例だと$P(0.001)=0.433,P(0.002)=0.435,P(0.003)=0.436,\cdots$といった具合です。ランダムな動きをさせたいけどカクカク曲がるのは嫌というときに便利です。