こんにちは。ってこの時間はこんばんはですかね?
最近ようやくGLSLをさわり始めたmuchoです。
cinderにはPerlin Noiseを生成するPerlinクラスという便利なものがあるんですが、
似たようなことをGLSLでできないだろうか?できない訳ないでしょ!
ということで調べてみたら、noise関数なるものがあることが判明。
しかし、どうもまだ実装されてないらしい・・・。
さらに調べたら、Simplex noiseというアルゴリズムがPerlin Noiseよりよさげで、
さらにSimplex noiseをGLSL化してくれてる人がっ!
https://github.com/ashima/webgl-noise
こりゃあっさり行くんじゃね?と思ったら
さすがGLSL若葉マークのmuchoはごっついはまりました。
そもそも座標変換に使いたかったので、
Vertex Shaderの方で計算させようとしたんですが、
なぜかうまく行きませんでした。
なんじゃこりゃ。
x,yのパラメーターがうまく渡ってないようなのですが、
原因究明には至らず・・・。
そこで、Fragment Shaderで計算させたらこれまたなぜかうまく行った。
高速ですごいことしてるはずなのに全然すごく見えない不思議!
これのソースが以下。と言っても上記のリンク先から移植しただけです。
(続きを読む...)