Advertisement
Guest User

Untitled

a guest
Mar 25th, 2012
158
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #define KERNEL_SIZE 9
  2.  
  3. // Gaussian kernel
  4. // 1 2 1
  5. // 2 4 2
  6. // 1 2 1
  7. float kernel[KERNEL_SIZE];
  8.  
  9. uniform sampler2D sampler0;
  10. uniform float width;
  11. uniform float height;
  12.  
  13. float step_w = 1.0/width;
  14. float step_h = 1.0/height;
  15.  
  16. vec2 offset[KERNEL_SIZE];
  17.  
  18. void main(void) {
  19.     int i = 0;
  20.     vec4 sum = vec4(0.0);
  21.  
  22.     offset[0] = vec2(-step_w, -step_h);
  23.     offset[1] = vec2(0.0, -step_h);
  24.     offset[2] = vec2(step_w, -step_h);
  25.    
  26.     offset[3] = vec2(-step_w, 0.0);
  27.     offset[4] = vec2(0.0, 0.0);
  28.     offset[5] = vec2(step_w, 0.0);
  29.  
  30.     offset[6] = vec2(-step_w, step_h);
  31.     offset[7] = vec2(0.0, step_h);
  32.     offset[8] = vec2(step_w, step_h);
  33.  
  34.    // Smooth
  35.  
  36.    kernel[0] = 1.0/16.0;    kernel[1] = 2.0/16.0;   kernel[2] = 1.0/16.0;
  37.    kernel[3] = 2.0/16.0;    kernel[4] = 4.0/16.0;   kernel[5] = 2.0/16.0;
  38.    kernel[6] = 1.0/16.0;    kernel[7] = 2.0/16.0;   kernel[8] = 1.0/16.0;
  39.  
  40.     // EMBOSS
  41.  
  42. /*
  43.    kernel[0] = 2.0;     kernel[1] = 0.0;    kernel[2] = 0.0;
  44.    kernel[3] = 1.0; kernel[4] = -1.0;   kernel[5] = 0.0;
  45.    kernel[6] = 0.0;     kernel[7] = 0.0;    kernel[8] = -1.0;
  46. */
  47.  
  48.  
  49.     // SHARPNESS
  50.   /*
  51.     kernel[0] = -1.0;   kernel[1] = -1.0;   kernel[2] = -1.0;
  52.     kernel[3] = -1.0;   kernel[4] = 9.0;    kernel[5] = -1.0;
  53.     kernel[6] = -1.0;       kernel[7] = -1.0;   kernel[8] = -1.0;
  54.   */
  55.  
  56.   // Who knows?
  57.  
  58. /*
  59.     kernel[0] = 1.0;    kernel[1] = 0.0;    kernel[2] = 1.0;
  60.     kernel[3] = -1.0;   kernel[4] = 0.0;    kernel[5] = -1.0;
  61.     kernel[6] = 1.0;    kernel[7] = -1.0;   kernel[8] = 1.0;
  62. */
  63.  
  64.  
  65.     for( i = 0; i < KERNEL_SIZE; i++ ) {
  66.         vec4 tmp = texture2D(sampler0, gl_TexCoord[0].st + offset[i]);
  67.         sum += tmp * kernel[i];
  68.     }
  69.  
  70.     gl_FragColor = sum;
  71. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement