【GLSL】つぶやきGLSL作成ログ#15


ツイッターで書いた以下の #つぶやきGLSL の作成ログ。

凄くゆるい花のマークを作りたいと思います。

円状に円を描く

円状に円を5つ配置して中心を円で塗りつぶすイメージから始める。

for 文で角度を分割した逆数を表示してみます。

for の中で右端から反時計回りに書いています。

for 文は順当に書くと

for(float i=0.;i<TAU;i+=N)

としたくなりますが、変数を使っているため

Loop index cannot be modified by non-constant expression

と怒られてしまいます(バージョンによっては大丈夫)。

while文も This type of loop is not allowed らしいのでこんな書き方に。

 

円の位置をずらして、大きさを調整します。

寄り道

これは for 文を使わずに、ディスタンスフィールドだけで書くこともできます。

 

円を上に持ってくるには先と同様に N/2 の半分ずらせばいいのでこうする。

float s=floor((atan(p.y,p.x)+N/4.)/N)*N+N/4.;

for 文がない分スッキリして負荷も小さくなりそうですが、制限がありますし処理が複雑になると面倒なので今回は for 文のまま進めます。

色塗り

整理しつつ色を付けていきます。

懐かしさを覚えるシンプルな花ができた。

 

ごちゃごちゃと動きと色を追加してみます。

調性しつつgeekest(es300) にしてみてもこんな感じなのでこの方向性はしんどい。

 

最初のイメージを活かして最小限動かすことにした。(geeker)


コメントを残す

メールアドレスが公開されることはありません。