Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 
 

43 wiersze
1016 B

  1. [vert.glsl]
  2. #version 120
  3. varying vec2 pass_TexCoord;
  4. void main()
  5. {
  6. gl_Position = gl_Vertex;
  7. pass_TexCoord = vec2(0.5, 0.5) + 0.5 * gl_Vertex.xy;
  8. }
  9. [frag.glsl]
  10. #version 120
  11. varying vec2 pass_TexCoord;
  12. uniform sampler2D texture;
  13. uniform vec2 screen_size;
  14. uniform float time;
  15. uniform vec4 copper;
  16. uniform vec3 mask_color;
  17. void main(void)
  18. {
  19. vec2 p = pass_TexCoord;
  20. vec3 source = texture2D(texture, p).xyz;
  21. vec3 color = vec3(0.5);
  22. color.x += 0.5 * cos(p.y*float(screen_size.y / copper.w) + time);
  23. color.z += 0.5 * sin(p.y*float(screen_size.y / copper.w) + time);
  24. color *= copper.x + copper.y * cos(p.y * float(screen_size.x / copper.z));// - time);
  25. color.x = float(int(color.x * 8.0) * 32) / 256.0;
  26. color.y = float(int(color.y * 8.0) * 32) / 256.0;
  27. color.z = float(int(color.z * 8.0) * 32) / 256.0;
  28. gl_FragColor = vec4((abs(source.x - mask_color.x) < 0.025 && abs(source.y - mask_color.y) < 0.025 && abs(source.z - mask_color.z) < 0.025) ? color : source, 1.0);
  29. }