From e0c98e18f9e808e3a5fffe191ac091343aa4887c Mon Sep 17 00:00:00 2001 From: Antonioya Date: Wed, 12 Jun 2019 17:15:50 +0200 Subject: GPencil: Remove blend_opacity from shader The opacity was already used and using it in the shader only duplicate the blend. --- source/blender/draw/engines/gpencil/gpencil_engine.c | 2 -- source/blender/draw/engines/gpencil/gpencil_engine.h | 1 - .../draw/engines/gpencil/shaders/gpencil_blend_frag.glsl | 15 +++++++-------- 3 files changed, 7 insertions(+), 11 deletions(-) (limited to 'source/blender/draw') diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c b/source/blender/draw/engines/gpencil/gpencil_engine.c index 62b893867f3..233e2ee2deb 100644 --- a/source/blender/draw/engines/gpencil/gpencil_engine.c +++ b/source/blender/draw/engines/gpencil/gpencil_engine.c @@ -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; diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.h b/source/blender/draw/engines/gpencil/gpencil_engine.h index a7e4c9d58d6..94a57c7f5d6 100644 --- a/source/blender/draw/engines/gpencil/gpencil_engine.h +++ b/source/blender/draw/engines/gpencil/gpencil_engine.h @@ -174,7 +174,6 @@ typedef struct GPENCIL_Storage { int blend_mode; int clamp_layer; - float blend_opacity; /* simplify settings*/ bool simplify_fill; diff --git a/source/blender/draw/engines/gpencil/shaders/gpencil_blend_frag.glsl b/source/blender/draw/engines/gpencil/shaders/gpencil_blend_frag.glsl index 009f58b8789..22abf6f61c3 100644 --- a/source/blender/draw/engines/gpencil/shaders/gpencil_blend_frag.glsl +++ b/source/blender/draw/engines/gpencil/shaders/gpencil_blend_frag.glsl @@ -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; } -- cgit v1.2.3