From cb1ad9f907a879a4402bcd121502f5e74aedd2f9 Mon Sep 17 00:00:00 2001 From: Miguel Date: Sat, 18 Jan 2025 23:42:15 +0100 Subject: cleanup and some tiny experiments --- shaders/shader.frag | 48 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) (limited to 'shaders/shader.frag') diff --git a/shaders/shader.frag b/shaders/shader.frag index 7c5b0e7..7566a89 100644 --- a/shaders/shader.frag +++ b/shaders/shader.frag @@ -4,6 +4,52 @@ layout(location = 0) in vec3 fragColor; layout(location = 0) out vec4 outColor; +vec4 mainImage(); + void main() { - outColor = vec4(fragColor, 1.0); + if(mod (gl_FragCoord.x,3.0) < 1 && mod(gl_FragCoord.y,2.0) > 1) + outColor = vec4(1,1,1,1.0); + else + outColor = mainImage(); //vec4(fragColor, 1.0); + +} + + +// https://www.shadertoy.com/view/WdsGzM + +#define PI 3.14159265359 + +vec2 rotate2d(vec2 uv,float _angle){return mat2(cos(_angle),-sin(_angle),sin(_angle),cos(_angle)) * uv;} +vec2 scale2d(vec2 uv,float _scale){return uv * mat2(_scale,0.0,0.0,_scale);} + +float random (vec2 st) { + return fract(sin(dot(st.xy,vec2(20.,100.)))*10000.); +} + +vec4 mainImage() +{ + vec2 fragCoord; + fragCoord.x=gl_FragCoord.x; + fragCoord.y=gl_FragCoord.y; + int iTime = 0; + vec2 iResolution = vec2(800,600); + + /// + vec2 uv = fragCoord/iResolution.xy; + uv.x *= iResolution.x / iResolution.y; + uv=rotate2d(uv,1.+fract(iTime*0.02)*2.*PI); + uv*=5.+0.4*sin(iTime/2.); + + + vec2 pos = vec2(0.5)-fract(uv); + pos=rotate2d(pos,fract(iTime*0.4+random(floor(uv)))*2.*PI); + pos=scale2d(pos,0.5+sin(random(uv+fract(iTime)*2.*PI))); + + + float r = length(pos)*2.0; + float a = atan(pos.y,pos.x); + float f = smoothstep(-.0,1., cos(a*max(3.,floor(abs(uv.x))*floor(abs(uv.y)))))*0.3+0.5; + vec3 color = vec3( 1.-smoothstep(f,f+0.02,r) ); + return vec4(color*vec3(0.1,0.5*random(floor(uv)),0.8+0.1*sin(2.*PI*fract(iTime*0.3))),1.0); + } -- cgit v1.2.3