GPencil: Remove blend_opacity from shader
The opacity was already used and using it in the shader only duplicate the blend.
This commit is contained in:
parent
36faf739a7
commit
e0c98e18f9
|
@ -535,7 +535,6 @@ void GPENCIL_cache_init(void *vedata)
|
|||
DRW_shgroup_uniform_texture_ref(blend_shgrp, "blendDepth", &e_data.temp_depth_tx_fx);
|
||||
DRW_shgroup_uniform_int(blend_shgrp, "mode", &stl->storage->blend_mode, 1);
|
||||
DRW_shgroup_uniform_int(blend_shgrp, "clamp_layer", &stl->storage->clamp_layer, 1);
|
||||
DRW_shgroup_uniform_float(blend_shgrp, "blend_opacity", &stl->storage->blend_opacity, 1);
|
||||
DRW_shgroup_uniform_int(mix_shgrp, "tonemapping", &stl->storage->tonemapping, 1);
|
||||
|
||||
/* create effects passes */
|
||||
|
@ -975,7 +974,6 @@ void GPENCIL_draw_scene(void *ved)
|
|||
GPU_framebuffer_clear_color_depth(fbl->temp_fb_b, clearcol, 1.0f);
|
||||
stl->storage->blend_mode = array_elm->mode;
|
||||
stl->storage->clamp_layer = (int)array_elm->clamp_layer;
|
||||
stl->storage->blend_opacity = array_elm->blend_opacity;
|
||||
stl->storage->tonemapping = DRW_state_do_color_management() ? 0 : 1;
|
||||
DRW_draw_pass(psl->blend_pass);
|
||||
stl->storage->tonemapping = 0;
|
||||
|
|
|
@ -174,7 +174,6 @@ typedef struct GPENCIL_Storage {
|
|||
|
||||
int blend_mode;
|
||||
int clamp_layer;
|
||||
float blend_opacity;
|
||||
|
||||
/* simplify settings*/
|
||||
bool simplify_fill;
|
||||
|
|
|
@ -8,7 +8,6 @@ uniform sampler2D blendColor;
|
|||
uniform sampler2D blendDepth;
|
||||
uniform int mode;
|
||||
uniform int clamp_layer;
|
||||
uniform float blend_opacity;
|
||||
uniform int tonemapping;
|
||||
|
||||
#define ON 1
|
||||
|
@ -43,34 +42,34 @@ vec4 get_blend_color(int mode, vec4 src_color, vec4 blend_color)
|
|||
outcolor = src_color;
|
||||
}
|
||||
else if (mode == MODE_OVERLAY) {
|
||||
mix_color.rgb = mix(src_color.rgb, mix_color.rgb, mix_color.a * blend_opacity);
|
||||
mix_color.rgb = mix(src_color.rgb, mix_color.rgb, mix_color.a);
|
||||
outcolor.r = overlay_color(src_color.r, mix_color.r);
|
||||
outcolor.g = overlay_color(src_color.g, mix_color.g);
|
||||
outcolor.b = overlay_color(src_color.b, mix_color.b);
|
||||
outcolor.a = src_color.a;
|
||||
}
|
||||
else if (mode == MODE_ADD) {
|
||||
mix_color.rgb = mix(src_color.rgb, mix_color.rgb, mix_color.a * blend_opacity);
|
||||
mix_color.rgb = mix(src_color.rgb, mix_color.rgb, mix_color.a);
|
||||
outcolor = src_color + mix_color;
|
||||
outcolor.a = src_color.a;
|
||||
}
|
||||
else if (mode == MODE_SUB) {
|
||||
mix_color.rgb = mix(src_color.rgb, mix_color.rgb, mix_color.a * blend_opacity);
|
||||
mix_color.rgb = mix(src_color.rgb, mix_color.rgb, mix_color.a);
|
||||
outcolor = src_color - mix_color;
|
||||
outcolor.a = clamp(src_color.a - (mix_color.a * blend_opacity), 0.0, 1.0);
|
||||
outcolor.a = clamp(src_color.a - mix_color.a, 0.0, 1.0);
|
||||
}
|
||||
else if (mode == MODE_MULTIPLY) {
|
||||
mix_color.rgb = mix(src_color.rgb, mix_color.rgb, mix_color.a * blend_opacity);
|
||||
mix_color.rgb = mix(src_color.rgb, mix_color.rgb, mix_color.a);
|
||||
outcolor = src_color * mix_color;
|
||||
outcolor.a = src_color.a;
|
||||
}
|
||||
else if (mode == MODE_DIVIDE) {
|
||||
mix_color.rgb = mix(src_color.rgb, mix_color.rgb, mix_color.a * blend_opacity);
|
||||
mix_color.rgb = mix(src_color.rgb, mix_color.rgb, mix_color.a);
|
||||
outcolor = src_color / mix_color;
|
||||
outcolor.a = src_color.a;
|
||||
}
|
||||
else {
|
||||
outcolor = mix_color * blend_opacity;
|
||||
outcolor = mix_color;
|
||||
outcolor.a = src_color.a;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue