[Bf-blender-cvs] [5d4b766a499] greasepencil-object: Interpolate render result for transparent colors

Antonio Vazquez noreply at git.blender.org
Sat Feb 10 12:37:50 CET 2018


Commit: 5d4b766a49926601ff74681273311efd6ec1431a
Author: Antonio Vazquez
Date:   Sat Feb 10 12:37:36 2018 +0100
Branches: greasepencil-object
https://developer.blender.org/rB5d4b766a49926601ff74681273311efd6ec1431a

Interpolate render result for transparent colors

There is still some problems with AA.

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

M	source/blender/draw/engines/gpencil/gpencil_engine.c

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

diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c b/source/blender/draw/engines/gpencil/gpencil_engine.c
index 64aaf381960..cb6e93aab8c 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.c
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.c
@@ -1113,15 +1113,21 @@ static void GPENCIL_render_to_image(void *vedata, struct RenderEngine *engine, s
 		/* check transparency */
 		if (gp_rgba[3] > 0.0f) {
 			/* grease pencil is on back of source render */
-			if (gp_depth[0] >= src_depth[0]){
-				/* copy source color */
-				copy_v4_v4(gp_rgba, src_rgba);
+			if (gp_depth[0] >= src_depth[0]) {
+				/* interpolate source color on top of grease pencil */
+				interp_v3_v3v3(gp_rgba, gp_rgba, src_rgba, src_rgba[3]);
 				/* copy source z-depth */
 				gp_depth[0] = src_depth[0];
 			}
+			else {
+				float tmp[4];
+				copy_v4_v4(tmp, gp_rgba);
+				copy_v4_v4(gp_rgba, src_rgba);
+				/* interpolate background with grease pencil */
+				interp_v3_v3v3(gp_rgba, gp_rgba, tmp, tmp[3]);
+			}
 		}
 		else {
-			/* transparent grease pencil, so copy source render data */
 			copy_v4_v4(gp_rgba, src_rgba);
 			gp_depth[0] = src_depth[0];
 		}



More information about the Bf-blender-cvs mailing list