Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define RED vec4(1., 0., 0., 1.)
- #define BLACK vec4(0.)
- float PI = acos(-1.);
- float deg2rad(float x){
- return x / 180. * PI;
- }
- vec2 rad2cod(float r, float t){
- return vec2(r * cos(t), r * sin(t));
- }
- float norm2(vec2 xy){
- return sqrt(xy.x * xy.x + xy.y * xy.y);
- }
- int seed = 20150118;
- int rand(){
- return seed = seed * 0xdefaced + 1;
- }
- float dir = -1.;
- vec4 draw(vec2 fragCoord, vec2 center){
- float r = iTime * dir;
- mat2 rot = mat2(cos(r), -sin(r), sin(r), cos(r));
- float var = sin(texture(iChannel0, vec2(iTime, 0.)).x);
- vec2 xy = rot * (fragCoord.xy - center);
- vec4 col = vec4(-1.);
- if(norm2(xy) < 100. + var * 20.){
- col = RED;
- }
- if(norm2(xy) < 15. + var * 20.){
- col = BLACK;
- }
- if(70. <= norm2(xy) && norm2(xy) <= 72.5){
- col = BLACK;
- }
- if(norm2(xy - rad2cod(70., deg2rad(0.0))) < 15. + var * 20.){
- col = BLACK;
- }
- if(norm2(xy - rad2cod(70., deg2rad(120.0))) < 15. + var * 20.){
- col = BLACK;
- }
- if(norm2(xy - rad2cod(70., deg2rad(240.0))) < 15. + var * 20.){
- col = BLACK;
- }
- return col;
- }
- void mainImage( out vec4 fragColor, in vec2 fragCoord ){
- float offset = mod(iTime * 100., 360.);
- vec4 col = vec4(1.);
- vec2 xy = fragCoord - iResolution.xy / 2.0;
- float var = sin(texture(iChannel0, vec2(iTime, 0.)).x);
- if(norm2(xy) < 400.){
- col = BLACK;
- }
- if(norm2(xy) < 40. + var * 60.){
- col = RED;
- }
- if(240. < norm2(xy) && norm2(xy) < 245.){
- col = RED;
- }
- if(norm2(xy - rad2cod(250., deg2rad(0.0 + offset))) < 300.){
- vec4 tmp = draw(fragCoord, iResolution.xy / 2. + rad2cod(250., deg2rad(0.0 + offset)));
- if(tmp != vec4(-1.))
- col = tmp;
- }
- if(norm2(xy - rad2cod(250., deg2rad(120.0 + offset))) < 300.){
- vec4 tmp = draw(fragCoord, iResolution.xy / 2. + rad2cod(250., deg2rad(120.0 + offset)));
- if(tmp != vec4(-1.))
- col = tmp;
- }
- if(norm2(xy - rad2cod(250., deg2rad(240.0 + offset))) < 300.){
- vec4 tmp = draw(fragCoord, iResolution.xy / 2. + rad2cod(250., deg2rad(240.0 + offset)));
- if(tmp != vec4(-1.))
- col = tmp;
- }
- if(var > 0.4)
- col = vec4(1.) - col;
- fragColor = col;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement