つぶやきGLSLに投稿してみた
つぶやきGLSLとは
Twitterの文に納まる文字数で投稿されるGLSLで描かれたものです。最近では つぶやきProcessing などTwitterの文字数に収めて投稿する流れがある気がします。
#つぶやきProcessing - Twitter Search
様々な人が投稿していて参考になる書き方や短くするテクニックが具体的に見れるので結構楽しいハッシュタグです。
つぶやきGLSLを見ていると
というエディターを使って書いてる人が多いようでした、このエディター自体はGitHubに公開されていて興味のある人は中身を全部把握できるようになっているようです。
エディターを見つけてやってみるかーと思いやってみました
投稿した内容
void main(){float a=smoothstep(.2,.8,mod(t,1.)),s=floor(mod(t,3.)),q=mix(0.,360.,sin(t))*.01;vec2 p=(gl_FragCoord.xy*2.-r)/r.y;p=mat2(cos(q),-sin(q),sin(q),cos(q))*p;p.xy=abs(p)/abs(dot(p,p))-vec2(cos(t)*.4);gl_FragColor=mix(p.yxx,p.yyx,step(180., q)).xyyy;}#つぶやきGLSL pic.twitter.com/GOXiL3vXTi
— あるど (@OrangeGKeeper) April 26, 2020
上記のツイートが投稿したものでGLSLをあまり深く触ってなかったのもあり雰囲気で書いていました。書いた感想としては
- 140文字に収めるのは大変
- 変数名はとにかく省略
- 実際に動くものができると省略していくのが楽しい
って感じでした。
書いたときの環境とコード
投稿すると…
投稿してから、のたぐすさんからリプが来ました(別途省略したのを教えてもらっていましたが最終結果をリプで教えてもらいました)
void main(){vec2 p=abs(mat2(cos(sin(t)*4.+vec4(0,8,5,0)))*(gl_FragCoord.xy*2.-r)/r.y);gl_FragColor=p.yxxx/dot(p,p);}
— notargs (@notargs) April 27, 2020
このあたりが限界っぽそう
自分が投稿した文の半分くらいで同じ動作ができるコードが書けることに結構感動しましたw
半分省略できるということは、もっと表現を加えれるのでMorphingを付け加えてもいいなと考えたりしてます。
まとめ
つぶやきGLSLはかなりお手軽に投稿できますし、気分転換とかにやっていこうかなと…
リプをくれていた、のたぐすさんが最近記事を公開しており notargs.hateblo.jp
中身をみるとかなり参考になるtipsばかりでした!
GLSL自体見るの楽しいので
などを眺めつつやろうかと
追記
後日改良してみたりしました
void main(){float a=mix(0.,1.,mod(t,1.)),s=floor(mod(t,3.));vec2 p=(gl_FragCoord.xy*2.-r)/r.y,k=p/2.,i=vec2(0,1),f=vec2(dot(p,p),1),d=mix(mix(mix(k,f,a),mix(f,i,a),s),mix(i,k,a),step(2.,s)),c=abs(mat2(cos(sin(t)*4.+vec4(0,8,5,0)))*p);o=mix(c.yx,c.xy,step(d.y,d.x)).xyyy/dot(c,c);} pic.twitter.com/nrdHHqrxwZ
— あるど (@OrangeGKeeper) May 3, 2020