Revision 5ccafcca
Added by Leszek Koltunski over 7 years ago
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
Separable Box blur fully works now!