[Bf-blender-cvs] [5203d0ca484] greasepencil-refactor: GPencil: Implement Fade 3D objects

Antonio Vazquez noreply at git.blender.org
Tue Jan 21 16:05:27 CET 2020


Commit: 5203d0ca484e8e3857177cd324ed1825087c0218
Author: Antonio Vazquez
Date:   Tue Jan 21 16:03:30 2020 +0100
Branches: greasepencil-refactor
https://developer.blender.org/rB5203d0ca484e8e3857177cd324ed1825087c0218

GPencil: Implement Fade 3D objects

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

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

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

diff --git a/source/blender/draw/engines/gpencil/gpencil_cache_utils.c b/source/blender/draw/engines/gpencil/gpencil_cache_utils.c
index 68ddba024a9..974ef244340 100644
--- a/source/blender/draw/engines/gpencil/gpencil_cache_utils.c
+++ b/source/blender/draw/engines/gpencil/gpencil_cache_utils.c
@@ -116,8 +116,8 @@ GPENCIL_tLayer *gpencil_layer_cache_add(GPENCIL_PrivateData *pd, Object *ob, bGP
   if ((is_obact) && (is_fade)) {
     fade_layer_opacity = pd->fade_layer_opacity;
   }
-  else if ((!is_obact) && (pd->fade_object_opacity > -1.0f)) {
-    fade_layer_opacity = pd->fade_object_opacity;
+  else if ((!is_obact) && (pd->fade_gp_object_opacity > -1.0f)) {
+    fade_layer_opacity = pd->fade_gp_object_opacity;
   }
 
   bGPdata *gpd = (bGPdata *)ob->data;
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c b/source/blender/draw/engines/gpencil/gpencil_engine.c
index bc47a18ba42..545f1a2cfae 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.c
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.c
@@ -196,8 +196,12 @@ void GPENCIL_cache_init(void *ved)
     const bool is_fade_object = ((!hide_overlay) && (!pd->is_render) &&
                                  (draw_ctx->v3d->gp_flag & V3D_GP_FADE_OBJECTS) &&
                                  (draw_ctx->v3d->gp_flag & V3D_GP_FADE_NOACTIVE_GPENCIL));
-    pd->fade_object_opacity = (is_fade_object) ? draw_ctx->v3d->overlay.gpencil_paper_opacity :
-                                                 -1.0f;
+    pd->fade_gp_object_opacity = (is_fade_object) ? draw_ctx->v3d->overlay.gpencil_paper_opacity :
+                                                    -1.0f;
+    pd->fade_3d_object_opacity = ((!hide_overlay) && (!pd->is_render) &&
+                                  (draw_ctx->v3d->gp_flag & V3D_GP_FADE_OBJECTS)) ?
+                                     draw_ctx->v3d->overlay.gpencil_paper_opacity :
+                                     -1.0f;
   }
   else {
     pd->do_onion = true;
@@ -896,6 +900,11 @@ void GPENCIL_draw_scene(void *ved)
   GPENCIL_FramebufferList *fbl = vedata->fbl;
   float clear_cols[2][4] = {{0.0f, 0.0f, 0.0f, 0.0f}, {1.0f, 1.0f, 1.0f, 1.0f}};
 
+  /* Fade 3D objects. */
+  if (pd->fade_3d_object_opacity > -1.0f) {
+    mul_v4_fl(clear_cols[1], pd->fade_3d_object_opacity);
+  }
+
   if (pd->draw_depth_only) {
     GPENCIL_draw_scene_depth_only(vedata);
     return;
diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.h b/source/blender/draw/engines/gpencil/gpencil_engine.h
index 52f857dbad7..dfb5ba92353 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.h
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.h
@@ -329,8 +329,10 @@ typedef struct GPENCIL_PrivateData {
   bool use_signed_fb;
   /* Layer opacity for fading. */
   float fade_layer_opacity;
-  /* Opacity for fading objects. */
-  float fade_object_opacity;
+  /* Opacity for fading gpencil objects. */
+  float fade_gp_object_opacity;
+  /* Opacity for fading 3D objects. */
+  float fade_3d_object_opacity;
 } GPENCIL_PrivateData;
 
 /* geometry batch cache functions */



More information about the Bf-blender-cvs mailing list