More Tiles
define s(v,r,sc) smoothstep(r+ sc*5./iResolution.y,r, v)
//2 arc
m = s(abs(length(gv-0.5)-0.5),w,scale)+s(abs(length(gv+0.5)-0.5),w,scale);
//1 arc
m = s(abs(length(gv-0.5)-0.5),w,scale)+
s(length(gv+vec2(0,.5)),w,scale)+s(length(gv+vec2(.5,0)),w,scale);
//1 line
m = s(abs(gv.x),w,scale)+s(length(abs(gv)-vec2(.5,0)),w,scale);
//t line
m = s(gv.x,w,scale)-s(length(abs(gv)-vec2(.5)),2.w,scale)+s(length(gv+vec2(-.5,0)),w,scale);
//+ line
m = 1.-s(length(abs(gv)-vec2(.5)),2.w,scale);
//4pt
m = s(length(abs(gv)-vec2(0,.5)),w,scale)+s(length(abs(gv)-vec2(.5,0)),w,scale);
生成2维hash,一个分量控制旋转,一个分量控制类型。
vec2 n = hash(floor(uv1));
gv = rotate(gv,floor(n.x4.)1.5708);//n.x - random dirction
int ty = int(floor(n.y*6.));//n.y - random tile