【GLSL】斜めに線が伸びて膨らむアニメーション


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

斜めに線を描く

とりあえず点 p を中心を原点にした -1 から 1 の座標にします。

右上 (1, 1) から左下 (-1, -1) へと動かすことを考えるとこうなります。

 

斜めの線状にするには x = y である部分だけ描画する。

 

線を複数にするために y = ax + b の式に当てはめます。

 

ここまでのコードは時間が過ぎると動きがなくなります。

4秒で書き終わるようなので mod() でリピートするようにします。

線を膨らませる

現在の線の間隔は 0.1 なので線の太さを0.05 にすると塗りつぶせる。

time * 0.03 の部分で速度を調整しています。

1.7 * 0.03 = 0.051 の太さになるところでリピートするようにしました。

要素の合成

単純に混ぜ合わせるだけでもなんとなく面白い。

この場合はリピートを mod でなく三角関数を使った方が自然かもしれない。

 

時間をいじると2つを順に描画できる。

 

秒数や線の間隔などを調整しつつ色を変える。

最近気づいたけど RGB の使い分けに mat3 は便利です。

引数1つだと対角行列になるので m[0], m[1], m[2] が RGB になる。

 

背景色も同様に変化させつつ、モードを geeker に変えて文字数を削減。

最終的にはこの形。

 

今回は色選択の三項演算時部分の省略が大きかったです。


コメントを残す

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