move brush opacity from comp to stroke
This commit is contained in:
@@ -23,7 +23,6 @@ uniform sampler2D tex;
|
||||
uniform sampler2D tex_stroke;
|
||||
uniform sampler2D tex_mask;
|
||||
uniform mediump float alpha;
|
||||
uniform mediump float stroke_alpha;
|
||||
uniform int blend_mode;
|
||||
uniform mediump vec2 resolution;
|
||||
uniform bool lock;
|
||||
@@ -81,7 +80,7 @@ void main()
|
||||
stroke.a = blend_stroke(stroke.a, dual.a, dual_alpha, dual_blend_mode);
|
||||
}
|
||||
|
||||
stroke.a = mask ? stroke.a * stroke_alpha * blur(tex_mask, uv).r : stroke.a * stroke_alpha;
|
||||
stroke.a = mask ? stroke.a * blur(tex_mask, uv).r : stroke.a;
|
||||
if (!lock && base.a == 0.0)
|
||||
{
|
||||
frag = stroke * vec4(1.0, 1.0, 1.0, alpha);
|
||||
|
||||
@@ -20,7 +20,6 @@ uniform sampler2D tex;
|
||||
uniform sampler2D tex_stroke;
|
||||
uniform sampler2D tex_mask;
|
||||
uniform mediump float alpha;
|
||||
uniform mediump float stroke_alpha;
|
||||
uniform mediump vec2 resolution;
|
||||
uniform bool mask;
|
||||
|
||||
@@ -31,6 +30,6 @@ void main()
|
||||
{
|
||||
mediump vec4 base = texture(tex, uv);
|
||||
mediump vec4 stroke = texture(tex_stroke, uv);
|
||||
stroke.a = mask ? stroke.a * stroke_alpha * blur(tex_mask, uv).r : stroke.a * stroke_alpha;
|
||||
stroke.a = mask ? stroke.a * blur(tex_mask, uv).r : stroke.a;
|
||||
frag = vec4(base.rgb, clamp((base.a - stroke.a) * alpha, 0.0, 1.0));
|
||||
}
|
||||
|
||||
@@ -30,6 +30,7 @@ uniform mediump sampler2D tex_mix;
|
||||
uniform mediump vec4 col;
|
||||
uniform mediump vec2 resolution;
|
||||
uniform mediump float alpha;
|
||||
uniform mediump float opacity;
|
||||
uniform mediump float noise;
|
||||
uniform mediump float mix_alpha;
|
||||
uniform mediump float wet;
|
||||
@@ -99,11 +100,11 @@ void main()
|
||||
fg.rgb = mix(fg.rgb, mbg.rgb, mix_alpha * mbg.a);
|
||||
}
|
||||
|
||||
mediump float contribution = (1.0 - bg.a) * fg.a;
|
||||
mediump float contribution = (opacity - bg.a) * fg.a;
|
||||
mediump float alpha_tot = bg.a + contribution;
|
||||
mediump vec3 rgb = mix(bg.rgb, fg.rgb, fg.a / alpha_tot);
|
||||
mediump vec4 frag_wet = vec4(rgb, max(bg.a, fg.a * 1.2));
|
||||
mediump vec4 frag_dry = vec4(rgb, alpha_tot);
|
||||
mediump vec4 frag_dry = vec4(rgb, min(alpha_tot, opacity));
|
||||
frag = mix(frag_dry, frag_wet, wet);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user