[Bf-blender-cvs] [e0c98e18f9e] master: GPencil: Remove blend_opacity from shader

Antonioya noreply at git.blender.org
Thu Jun 13 13:40:44 CEST 2019


Commit: e0c98e18f9e808e3a5fffe191ac091343aa4887c
Author: Antonioya
Date:   Wed Jun 12 17:15:50 2019 +0200
Branches: master
https://developer.blender.org/rBe0c98e18f9e808e3a5fffe191ac091343aa4887c

GPencil: Remove blend_opacity from shader

The opacity was already used and using it in the shader only duplicate the blend.

===================================================================

M	source/blender/draw/engines/gpencil/gpencil_engine.c
M	source/blender/draw/engines/gpencil/gpencil_engine.h
M	source/blender/draw/engines/gpencil/shaders/gpencil_blend_frag.glsl

===================================================================

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;
   }



More information about the Bf-blender-cvs mailing list