パーリンノイズ

CGなどで、自然な模様をランダムに生成するのに使われる技法。これによって、雲や煙、炎などのテクスチャを手軽にそれっぽく作れる。

ある入力値に対応してランダムっぽく値を返す関数なのだが、完全にランダムなのでなく滑らかさを持つ。

Ken Perlinさんという方が発明したもので、ご本人のサイトにアルゴリズムの説明とソースコードが載っている。

また、別の人が上記と同じ説明をより読みやすくした説明ページを作ってくれている。

上記を参考にした定義域が1次元のバージョンの実装が下記。

a-i-to/perlin-noise-sample · GitHub

下記で実際に動いているものを確認できる。

Perlinさんは2002年に改訂版の実装を公開しているのだが、上記はその前のオリジナルに基づくもの。

テクスチャをつくるには、色々と技法がある。最もシンプルなものでスケールの違うものを足していくというものがある。以下がその例。

f:id:a-i-to:20140908225440p:plain

http://a-i-to.github.io/perlin-noise-sample/perlin_noise2.html

稜線っぽいかな。