diff --git a/android/assets/shaders/glow_frag.glsl b/android/assets/shaders/glow_frag.glsl index d31d8a0..cd77c39 100755 --- a/android/assets/shaders/glow_frag.glsl +++ b/android/assets/shaders/glow_frag.glsl @@ -1,37 +1,42 @@ #ifdef GL_ES #define LOWP lowp - precision mediump float; +precision mediump float; #else - #define LOWP +#define LOWP #endif + varying LOWP vec4 vColor; varying vec2 vTexCoord; uniform sampler2D u_texture; -uniform float resolution; -uniform float radius; -uniform vec2 dir; -void main() { +void main() +{ + vec4 sum = vec4(0); + vec2 texcoord = vTexCoord; + int j; + int i; - vec4 sum = vec4(0.0); - vec2 tc = vTexCoord; - float blur = radius/resolution; - - float hstep = dir.x; - float vstep = dir.y; - - sum += texture2D(u_texture, vec2(tc.x - 4.0*blur*hstep, tc.y - 4.0*blur*vstep)) * 0.05; - sum += texture2D(u_texture, vec2(tc.x - 3.0*blur*hstep, tc.y - 3.0*blur*vstep)) * 0.09; - sum += texture2D(u_texture, vec2(tc.x - 2.0*blur*hstep, tc.y - 2.0*blur*vstep)) * 0.12; - sum += texture2D(u_texture, vec2(tc.x - 1.0*blur*hstep, tc.y - 1.0*blur*vstep)) * 0.15; - - sum += texture2D(u_texture, vec2(tc.x, tc.y)) * 0.16; - - sum += texture2D(u_texture, vec2(tc.x + 1.0*blur*hstep, tc.y + 1.0*blur*vstep)) * 0.15; - sum += texture2D(u_texture, vec2(tc.x + 2.0*blur*hstep, tc.y + 2.0*blur*vstep)) * 0.12; - sum += texture2D(u_texture, vec2(tc.x + 3.0*blur*hstep, tc.y + 3.0*blur*vstep)) * 0.09; - sum += texture2D(u_texture, vec2(tc.x + 4.0*blur*hstep, tc.y + 4.0*blur*vstep)) * 0.05; - - gl_FragColor = vColor * vec4(sum.rgb, 1.0); + for( i= -4 ;i < 4; i++) + { + for (j = -3; j < 3; j++) + { + sum += texture2D(u_texture, texcoord + vec2(j, i)*0.004) * 0.25; + } + } + if (texture2D(u_texture, texcoord).r < 0.3) + { + gl_FragColor = sum*sum*0.012 + texture2D(u_texture, texcoord); + } + else + { + if (texture2D(u_texture, texcoord).r < 0.5) + { + gl_FragColor = sum*sum*0.009 + texture2D(u_texture, texcoord); + } + else + { + gl_FragColor = sum*sum*0.0075 + texture2D(u_texture, texcoord); + } + } } diff --git a/core/src/zero1hd/polyjet/ui/stages/GamePlayArea.java b/core/src/zero1hd/polyjet/ui/stages/GamePlayArea.java index 7c7f6e6..918567d 100755 --- a/core/src/zero1hd/polyjet/ui/stages/GamePlayArea.java +++ b/core/src/zero1hd/polyjet/ui/stages/GamePlayArea.java @@ -100,8 +100,8 @@ public class GamePlayArea extends Stage { if (bgShader != null) { getBatch().setShader(bgShader); - bgShader.setUniformf("resolution", background.getWidth(), background.getHeight()); bgShader.setUniformf("time", time); + bgShader.setUniformf("resolution", background.getWidth(), background.getHeight()); } getBatch().draw(background, 0f, 0f, Polyjet.GAME_AREA_WIDTH, Polyjet.GAME_AREA_HEIGHT); getBatch().end();