2012.01.29 | 

こんにちは。ってこの時間はこんばんはですかね?
最近ようやく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で計算させたらこれまたなぜかうまく行った。

高速ですごいことしてるはずなのに全然すごく見えない不思議!

これのソースが以下。と言っても上記のリンク先から移植しただけです。
(続きを読む...)

2011.10.14 | 

昨夜弊社でイベント(飲み会?)を開催したのですが、
お越しいただいた皆様ありがとうございました。
イベントでやりましたVJ的なアレについては
また機会をみてレポートできたらと思います。
こんにちはジョーとも呼ばれたりするムーチョです。

OPENGLというかCinderでdrawしたラインを印刷したい!
そのためにEPS形式にできないものかと
あれこれやってみて、とりあえずこれでいいんじゃないか?
というところにたどり着いたのでそのご紹介です。


これをEPSにしたい!

(続きを読む...)

2011.09.02 | 

FFFTPが開発終了のお知らせが出ましたね。
お世話になったソフトでした。
開発者のSotaさん大変お疲れ様でした。
こんばんはムーチョです。

と、そんな出だしとはうってかわってちょっとハマったのでメモ。
Cinderで画像を読み込んで描画というやつですが、
それをパーティクルのように描画位置やサイズを変更する方法
(続きを読む...)

2011.08.19 | 

ナツいアツが終わりましたねー。こんにちはムーチョです。

さて今回は、OpenGLのブレンドモードについて。
PhotoShopなど画像処理系ではよくある簡単な処理なのですが、
わざわざOpenGLでやろうとするとさりげなく面倒で覚えにくいのでメモしてみました。
PhotoShopで言う乗算かスクリーンと反転処理だと思うのでその辺を中心に。

アルファブレンド
glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);

反転
glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ZERO);

加算
glBlendFunc(GL_ONE, GL_ONE);

加算+アルファ(PhotoShop的スクリーン)
glBlendFunc(GL_SRC_ALPHA, GL_ONE);

スクリーン(PhotoShop的 比較(明))
glBlendFunc(GL_ONE_MINUS_DST_COLOR, GL_ONE);

乗算
glBlendFunc(GL_ZERO, GL_SRC_COLOR);

乗算+アルファ
dst = dst * src * alpha
= (dst * src) * alpha
glBlendFunc(GL_ZERO, GL_SRC_COLOR);
glBlendFunc(GL_ZERO, GL_SRC_ALPHA);

これじゃ分かりにくいかな??と思い、
Visual glBlendFunc Toolで結果を書き出してみました。
(続きを読む...)

2011.05.23 | 

どんまい!kaminalyです。

CinderでOpenGLのglRotatefを書くとgl::rotate();
Matrixのrotateはmatrix.rotate();
とても似ているのに、
OpenGLのglRotatefの引数はdegree(度)
CinderのMatrix44fは(多分ほかのマトリクス系も)radian(弧度)

くそ!