Advertisement
Guest User

Untitled

a guest
Oct 17th, 2017
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. #define RED vec4(1., 0., 0., 1.)
  2. #define BLACK vec4(0.)
  3.  
  4. float PI = acos(-1.);
  5.  
  6. float deg2rad(float x){
  7. return x / 180. * PI;
  8. }
  9.  
  10. vec2 rad2cod(float r, float t){
  11. return vec2(r * cos(t), r * sin(t));
  12. }
  13.  
  14. float norm2(vec2 xy){
  15. return sqrt(xy.x * xy.x + xy.y * xy.y);
  16. }
  17.  
  18. int seed = 20150118;
  19. int rand(){
  20. return seed = seed * 0xdefaced + 1;
  21. }
  22.  
  23. float dir = -1.;
  24.  
  25. vec4 draw(vec2 fragCoord, vec2 center){
  26. float r = iTime * dir;
  27. mat2 rot = mat2(cos(r), -sin(r), sin(r), cos(r));
  28. float var = sin(texture(iChannel0, vec2(iTime, 0.)).x);
  29. vec2 xy = rot * (fragCoord.xy - center);
  30. vec4 col = vec4(-1.);
  31. if(norm2(xy) < 100. + var * 20.){
  32. col = RED;
  33. }
  34.  
  35. if(norm2(xy) < 15. + var * 20.){
  36. col = BLACK;
  37. }
  38. if(70. <= norm2(xy) && norm2(xy) <= 72.5){
  39. col = BLACK;
  40. }
  41.  
  42. if(norm2(xy - rad2cod(70., deg2rad(0.0))) < 15. + var * 20.){
  43. col = BLACK;
  44. }
  45. if(norm2(xy - rad2cod(70., deg2rad(120.0))) < 15. + var * 20.){
  46. col = BLACK;
  47. }
  48. if(norm2(xy - rad2cod(70., deg2rad(240.0))) < 15. + var * 20.){
  49. col = BLACK;
  50. }
  51.  
  52. return col;
  53. }
  54.  
  55. void mainImage( out vec4 fragColor, in vec2 fragCoord ){
  56. float offset = mod(iTime * 100., 360.);
  57. vec4 col = vec4(1.);
  58. vec2 xy = fragCoord - iResolution.xy / 2.0;
  59. float var = sin(texture(iChannel0, vec2(iTime, 0.)).x);
  60. if(norm2(xy) < 400.){
  61. col = BLACK;
  62. }
  63. if(norm2(xy) < 40. + var * 60.){
  64. col = RED;
  65. }
  66. if(240. < norm2(xy) && norm2(xy) < 245.){
  67. col = RED;
  68. }
  69.  
  70. if(norm2(xy - rad2cod(250., deg2rad(0.0 + offset))) < 300.){
  71. vec4 tmp = draw(fragCoord, iResolution.xy / 2. + rad2cod(250., deg2rad(0.0 + offset)));
  72. if(tmp != vec4(-1.))
  73. col = tmp;
  74. }
  75. if(norm2(xy - rad2cod(250., deg2rad(120.0 + offset))) < 300.){
  76. vec4 tmp = draw(fragCoord, iResolution.xy / 2. + rad2cod(250., deg2rad(120.0 + offset)));
  77. if(tmp != vec4(-1.))
  78. col = tmp;
  79. }
  80. if(norm2(xy - rad2cod(250., deg2rad(240.0 + offset))) < 300.){
  81. vec4 tmp = draw(fragCoord, iResolution.xy / 2. + rad2cod(250., deg2rad(240.0 + offset)));
  82. if(tmp != vec4(-1.))
  83. col = tmp;
  84. }
  85. if(var > 0.4)
  86. col = vec4(1.) - col;
  87. fragColor = col;
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement