Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.
 
 
 
 
 

38 рядки
937 B

  1. -- GLSL.Vert --
  2. #version 120
  3. void main()
  4. {
  5. gl_Position=gl_Vertex;
  6. gl_TexCoord[0]=gl_MultiTexCoord0;
  7. }
  8. -- GLSL.Frag --
  9. #version 120
  10. uniform sampler2D texture;
  11. uniform vec2 screen_size;
  12. uniform float blur;
  13. uniform float deform;
  14. const float PI=3.14159265358979323846;
  15. void main(void)
  16. {
  17. vec4 total=vec4(0.0);
  18. vec2 p=gl_TexCoord[0].xy/screen_size;
  19. float mask=2.0-p.x*(6.0-p.x*6.0)*p.y*(6.0-p.y*6.0);
  20. float b=blur+deform*mask;
  21. total+=texture2D(texture,vec2(p.x-b*4.0,p.y))*0.04;
  22. total+=texture2D(texture,vec2(p.x-b*3.0,p.y))*0.08;
  23. total+=texture2D(texture,vec2(p.x-b*2.0,p.y))*0.12;
  24. total+=texture2D(texture,vec2(p.x-b ,p.y))*0.16;
  25. total+=texture2D(texture,vec2(p.x ,p.y))*0.20;
  26. total+=texture2D(texture,vec2(p.x+b ,p.y))*0.16;
  27. total+=texture2D(texture,vec2(p.x+b*2.0,p.y))*0.12;
  28. total+=texture2D(texture,vec2(p.x+b*3.0,p.y))*0.08;
  29. total+=texture2D(texture,vec2(p.x+b*4.0,p.y))*0.04;
  30. gl_FragColor=total;
  31. }