//六边形网格
float HexDist(vec2 p) {
p = abs(p);
float c = dot(p, normalize(vec2(1,1.73)));
c = max(c, p.x);
return c;
}
vec4 HexCoords(vec2 uv) {
vec2 r = vec2(1, 1.73);
vec2 h = r*.5;
vec2 a = mod(uv, r)-h;
vec2 b = mod(uv-h, r)-h;
vec2 gv = dot(a, a) < dot(b,b) ? a : b;
float x = atan(gv.x, gv.y);
float y = .5-HexDist(gv);
vec2 id = uv-gv;
return vec4(x, y, id.x,id.y);
}
void mainImage( out vec4 fragColor, in vec2 fragCoord )
{
vec2 uv = (fragCoord-.5*iResolution.xy)/iResolution.y;
vec3 col = vec3(0);
uv *= 10.;
vec4 hc = HexCoords(uv+100.);
float c = smoothstep(.01, .03, hc.y*sin(hc.z*hc.w+iTime));
col += c;
fragColor = vec4(col,1.0);
}
2023-01-30
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。