2008年8月2日

PixelCrew日記 - Perlin Noiseを写経する、の巻き

perlinnoise

最近、ここ以外が忙しかったりネタが無かったので書けませんでした。
が、やっとこ書けそうなネタが出てきたので。

雲模様のテクスチャが作りたくて、アルゴリズムを探していました。
とはいってもテクスチャが欲しかっただけなので、ツールで作るなりWebで探すなりしてもよかったのです。
ですが、ゆくゆくPixelCrewに載せるんだろうし、と言うことでコードで生成することにしました。

画像処理のアルゴリズムは、WindowsCE(GameAPI)でニアレストネイバーやバイリニアによる拡大/縮小を書いたことがあります。
そのときは、ピクセル間の距離や三角関数がどういう計算をしているか把握できなくてとにかく週末徹夜進行だったなと覚えています。
今回はその甲斐あってアルゴリズムの解説もすんなり理解できました。たぶん。

ただ、Frequency(周波数)と言う単語を見て、画像の端々を正規化(0.0と1.0に丸める)して扱うのかと勘違いしていくら演算結果を重ねていってもサンプルみたいにならなくて悩みました。
別に周期に収めることは無くて、どこまでもノイズを作っていけばいいんですね。

あと、このアルゴリズム解説を読んでいて驚いたのが、ピクセル単位で重ねこみをしていること。
解説文では、「これらの画を重ねると、次のようなパターンになる」とあるので、回数が増えればバッファもたくさん要ると思っていたのですが、そんなことはありませんでした。

まだまだ覚えることがあるのだなと思いました。

0 件のコメント: