【GLSL】ドット絵パターン


GLSLでドット絵のパターンを考えていて、ひし形(正方形を45度傾けた形)ドットを作りたかったので色々試して勉強します。

1.ドット絵の角をとる

モザイクのときのように画像をブロックごとに分けて処理する。

20ブロックのドット絵にする関数でx+y<Nの条件を足してひし形にする。

惜しい気がしなくもないけど根本的な部分が違う。

まぁこれはこれで何かに使えるかも。

2.交互に敷き詰める

glslの練習【crop-tiling】の交互に敷き詰めの要領でドットをずらす。

通常ドット絵とはまた違う印象を受ける。

3.1と2を組み合わせる(失敗)

パックマン柄に切り抜かれた。

偶然できたものだけど細かくして使うと味があるかも。

4.1と2を組み合わせる

xをずらした分uvもずらして判定を行う。

ずいぶんそれっぽいけど、最後に切り抜きを行う以上隙間ができる。

この方針で何とかしたければY方向に重ねて処理する必要がある。

5.ひし形と三角形で処理する

四角形の集まりとして扱うと処理が複雑になる。

1の隙間部分を4つの三角形としてみて、これらが同じ画素値を参照すればよい。

ようやく目的通りの処理ができた。

縦横でブロック数を変えると6角形と4角形の敷き詰めになりアート感?がある。

6.六角形敷き詰め

4で作った形の隙間を埋める形で6角形を作ります。

ずらす処理のせいで大分複雑になりましたが、どの場合にどの位置の画素を使うかを決めていれば意外と書けます。

縦方向を縮めれば隙間の形が変わって和柄っぽくなります。

所感

失敗しつつも理解が深まってちゃんとできるようになるのが気持ちいい。

思いついて適当に書き始めるとまず失敗するけど、自発的には作れないような予想外の結果になったりするので楽しいです。

 

今回描いたやり方以外でもっと簡単だったり処理が軽かったりする書き方があるんだろうなと思いますが、こだわりすぎるときりがない気もする。

 


コメントを残す

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