mixer working except when changing plane, previous sample does't work in this case

This commit is contained in:
2018-08-01 16:47:13 +02:00
parent 663863fe44
commit 76033a1ca8
5 changed files with 34 additions and 5 deletions

View File

@@ -348,16 +348,23 @@ void App::initShaders()
#else
" mediump vec4 bg = texture(tex_bg, uv2);\n"
#endif
" mediump vec4 mbg = texture(tex_mix, uv_2);\n"
" bg.rgb = mix(bg.rgb, mbg.rgb, mix_alpha);\n"
" fg.a *= 1.0-rand(uv2+uv)*noise;\n"
" if (fg.a == 0.0) discard;\n"
" if (mix_alpha > 0.0){\n"
" mediump vec2 uv_mix = uv_2 / q;\n"
" if (uv_mix.x < 0.0 || uv_mix.x > 1.0 || uv_mix.y < 0.0 || uv_mix.y > 1.0) discard;\n"
" mediump vec4 mbg = texture(tex_mix, uv_mix);\n"
" fg.rgb = mix(fg.rgb, mbg.rgb, mix_alpha);\n"
" }\n"
" mediump float contribution = (1.0 - bg.a) * fg.a;\n"
" mediump float alpha_tot = bg.a + contribution;"
" mediump vec3 rgb = mix(bg.rgb, fg.rgb, fg.a / alpha_tot);\n"
" mediump vec4 frag_wet = vec4(rgb, max(bg.a, fg.a * 1.2));\n"
" mediump vec4 frag_dry = vec4(rgb, alpha_tot);\n"
" frag = mix(frag_dry, frag_wet, wet);\n"
// " mediump vec4 mbg = texture(tex_mix, uv_2 / q);\n"
// " frag.rgb = mix(frag.rgb, mbg.rgb, mix_alpha);\n"
"}\n";
static const char* shader_checkerboard_v =