#version 450 layout(location = 0) in vec3 fragColor; layout(location = 0) out vec4 outColor; vec4 mainImage(); void main() { 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); }