【GLSL】雷を降らせる


前回は線分を書けるようになったので、それを使って雷を書いていきます。

 

基本部分の線分を書くところは以下を見てください。

雷の形にする

従来の直線をN分割してそれぞれを違う方向に向けます。

 

分割した単位に使うベクトルを使って本来の終点位置を計算することで、大幅にずれることを防止しています。

ランダム関数はいつもの。

それっぽくなりましたが、よーく見ると曲がる部分に違和感がある。

接続点を自然にする

線分をつなげるときに隙間が出来てしまいます。

対処方法は色々あると思いますが円を使ってみます。

 

接続点は for 文の中で出てるので、適当なサイズの円を書きます。

線の大きさより若干大きめだとエッジが効いて見える。

 

この書き方だと輪郭がくっきりするので、線の方に合わせてぼやけさす場合はこうします。こっちだと太さは線と同じにする。

複数の雷を降らす

雷の線が1本なのが物足りない。

線の太さを変更できるようにして、複数本の雷を描画します。

大分いい感じになってきたけどなんか当初考えたのと違うような。

途中で分岐させる

考えてみれば雷って途中で分岐してる気がする。

大分思い通りになってきた。まだ終点が同じなのが気になる。

別れた枝は途中で消えてるイメージがある。

 

というわけで色々含めて微調整したコードがこれです。

最後なので全部載せます。

大体こんな感じ。

完全にランダムだとうまく1枚絵にはならないですね。

 

時間変数なんか使って動かすとこんな感じです。

後は枝分かれした部分の乱数を偏らせたり(左右に分かれたものをそのままの方向に)、先細りさせたりするともっと良い感じになると思います。

とりあえずは満足できたので雷はここまで。


コメントを残す

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