#ifdef GL_ES precision mediump float; #endif uniform sampler2D u_Tex0; uniform sampler2D u_Tex1; uniform vec2 u_WalkOffset; varying vec2 v_TexCoord; const vec2 zoom = vec2(5.0, 5.0); const vec3 overlayColor = vec3(0.0, 0.0, 0.0); const float overlayOpacity = 0.3; void main(void) { vec2 offset = (u_WalkOffset + v_TexCoord) * zoom; offset = fract(offset); offset.y = 1.0 - offset.y; vec3 bgcol = texture2D(u_Tex0, v_TexCoord).rgb; vec3 fogcol = texture2D(u_Tex1, offset).rgb; vec3 finalFog = mix(fogcol, overlayColor, 0.4 - overlayOpacity); vec3 col = bgcol * finalFog; gl_FragColor = vec4(col, 1.0); }