Project

General

Profile

« Previous | Next » 

Revision 5ccafcca

Added by Leszek Koltunski over 7 years ago

Separable Box blur fully works now!

View differences:

src/main/res/raw/blur_fragment_shader.glsl
21 21

  
22 22
varying vec2 v_TexCoordinate;
23 23
uniform sampler2D u_Texture;
24
uniform float u_Step;
24
uniform float u_Offsets[MAX_BLUR];
25 25
uniform float u_Weights[MAX_BLUR];
26 26
uniform int u_Radius;
27 27

  
......
29 29

  
30 30
void main()
31 31
  {
32
  float lCoord = v_TexCoordinate.x;
33
  float rCoord = lCoord;
34
  float yCoord = v_TexCoordinate.y;
35

  
36
  vec4  pixel  = texture2D(u_Texture,vec2(lCoord,yCoord)) * u_Weights[0];
32
  vec4 pixel= texture2D(u_Texture,v_TexCoordinate) * u_Weights[0];
37 33

  
38 34
  for (int x = 1; x <= u_Radius; x+=1)
39 35
    {
40
    rCoord+= u_Step;
41
    lCoord-= u_Step;
42
    pixel += ( texture2D(u_Texture,vec2(rCoord,yCoord)) +
43
               texture2D(u_Texture,vec2(lCoord,yCoord)) ) * u_Weights[x];
36
    pixel += ( texture2D(u_Texture,vec2(v_TexCoordinate.x+u_Offsets[x],v_TexCoordinate.y)) +
37
               texture2D(u_Texture,vec2(v_TexCoordinate.x-u_Offsets[x],v_TexCoordinate.y)) ) * u_Weights[x];
44 38
    }
45 39

  
46 40
  gl_FragColor = pixel;

Also available in: Unified diff