From 0da80296f27b4647719e8a0743708d8f4c54afc8 Mon Sep 17 00:00:00 2001 From: bvanroll Date: Tue, 4 Jun 2024 19:38:40 +0200 Subject: [PATCH] geen id --- learning/PixelSpirit/bundle.frag | 42 ++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 learning/PixelSpirit/bundle.frag diff --git a/learning/PixelSpirit/bundle.frag b/learning/PixelSpirit/bundle.frag new file mode 100644 index 0000000..699d170 --- /dev/null +++ b/learning/PixelSpirit/bundle.frag @@ -0,0 +1,42 @@ +#ifdef GL_ES +precision mediump float; +#endif +uniform vec2 u_resolution; +uniform vec2 u_mouse; +uniform float u_time; + +#define PI 3.14159265359 + +const vec3 uAColor = vec3(.5,.5,.5); +const vec3 uBColor = vec3(.5,.5,.5); +const vec3 uCColor = vec3(1.,1.,1.); +const vec3 uDColor = vec3(.0,.33,.67); + +//get colors from http://dev.thi.ng/gradients/ +vec3 cosPalette(float t) { return uAColor + uBColor*cos(6.28318*(uCColor*t+uDColor)); } + +float hexSDF(vec2 st) { + st = abs(st*2.-1.); + return max(abs(st.y),st.x*.866025+st.y*.5); +} + +float stroke(in float x_coor, float s, float width){ + float d = step(s,x_coor+width*.5)-step(s,x_coor-width*.5); + return clamp(d, 0.,1.); +} + +float fill(float x, float size) { return 1.-step(size, x); } + +void main() { + vec2 st = gl_FragCoord.xy/u_resolution; + vec3 color = vec3(0.0,0.0,0.0); + float alpha = 1.0; + st = st.yx; + color += stroke(hexSDF(st),.6,.1); + color += fill(hexSDF(st-vec2(-.06,-.1)),.15); + color += fill(hexSDF(st-vec2(-.06,.1)),.15); + color += fill(hexSDF(st-vec2(.11,.0)),.15); + + + gl_FragColor = vec4(color, alpha); +}