25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 
 
 
 
 

39 satır
802 B

  1. [vert.glsl]
  2. #version 120
  3. void main()
  4. {
  5. gl_Position = gl_Vertex;
  6. }
  7. [frag.glsl]
  8. #version 120
  9. uniform sampler2D texture;
  10. uniform vec2 screen_size;
  11. uniform float time;
  12. uniform vec2 offset;
  13. uniform float noise;
  14. uniform vec3 retrace;
  15. float rand(in vec2 p, in float t, in float v)
  16. {
  17. return fract(sin(dot(p + mod(t, 1.0), vec2(12.9898, 78.2333))) * v);
  18. }
  19. void main(void)
  20. {
  21. vec2 p=gl_FragCoord.xy/screen_size.xy;
  22. float r1=rand(p,time,43758.5453);
  23. float r2=rand(p,time,70425.2854);
  24. vec2 o=(offset-offset*2.0*r1)/screen_size;
  25. vec3 c=texture2D(texture,p+o).xyz; // offset
  26. c*=1.0+(noise-noise*2.0*r1); // noise
  27. c-=retrace.x*0.01*mod(p.y*retrace.y+time*retrace.z,1.0); // retrace
  28. gl_FragColor=vec4(c,1.0);
  29. }