mixer working pretty well now
This commit is contained in:
@@ -37,12 +37,15 @@ void App::initShaders()
|
||||
static const char* shader_alpha_f =
|
||||
SHADER_VERSION
|
||||
"uniform sampler2D tex;\n"
|
||||
"uniform sampler2D tex_alpha;\n"
|
||||
"uniform mediump float alpha;\n"
|
||||
"uniform bool highlight;\n"
|
||||
"in mediump vec3 uv;\n"
|
||||
"out mediump vec4 frag;\n"
|
||||
"void main(){\n"
|
||||
" mediump vec4 c = texture(tex, uv.xy);\n"
|
||||
" mediump vec3 rgb = texture(tex, uv.xy).rgb;\n"
|
||||
" mediump float a = texture(tex_alpha, uv.xy).a;\n"
|
||||
" mediump vec4 c = vec4(rgb, a);\n"
|
||||
" frag = highlight ? \n"
|
||||
" vec4(clamp(vec3(.3)+c.rgb, vec3(0), vec3(1)), c.a) : \n"
|
||||
" texture(tex, uv.xy) * vec4(1,1,1,alpha);\n"
|
||||
@@ -350,15 +353,15 @@ void App::initShaders()
|
||||
#endif
|
||||
" fg.a *= 1.0-rand(uv2+uv)*noise;\n"
|
||||
" if (fg.a == 0.0) discard;\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"
|
||||
" 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"
|
||||
" rgb.rgb = mix(rgb.rgb, mbg.rgb, mix_alpha * mbg.a);\n"
|
||||
" fg.rgb = mix(fg.rgb, mbg.rgb, mix_alpha * mbg.a);\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"
|
||||
|
||||
Reference in New Issue
Block a user