[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