[Bf-blender-cvs] [657165db94f] master: Workbench: Fix TAA logic

Clément Foucault noreply at git.blender.org
Wed May 22 13:30:29 CEST 2019


Commit: 657165db94f14150416c2ee2221eeeafa32603f3
Author: Clément Foucault
Date:   Tue May 21 10:07:41 2019 +0200
Branches: master
https://developer.blender.org/rB657165db94f14150416c2ee2221eeeafa32603f3

Workbench: Fix TAA logic

Having both TAA and FXAA enabled at the same time resulted in conflicts.
The jitter_index was incremented twice before being used instead of once.

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

M	source/blender/draw/engines/workbench/workbench_effect_aa.c
M	source/blender/draw/engines/workbench/workbench_effect_taa.c
M	source/blender/draw/engines/workbench/workbench_private.h

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

diff --git a/source/blender/draw/engines/workbench/workbench_effect_aa.c b/source/blender/draw/engines/workbench/workbench_effect_aa.c
index b4cdcfcfc99..965f5a5ca4f 100644
--- a/source/blender/draw/engines/workbench/workbench_effect_aa.c
+++ b/source/blender/draw/engines/workbench/workbench_effect_aa.c
@@ -49,6 +49,7 @@ void workbench_aa_create_pass(WORKBENCH_Data *vedata, GPUTexture **tx)
   }
   else {
     psl->effect_aa_pass = NULL;
+    effect_info->jitter_index = 0;
   }
 }
 
diff --git a/source/blender/draw/engines/workbench/workbench_effect_taa.c b/source/blender/draw/engines/workbench/workbench_effect_taa.c
index 69f41f56440..7fd68babc13 100644
--- a/source/blender/draw/engines/workbench/workbench_effect_taa.c
+++ b/source/blender/draw/engines/workbench/workbench_effect_taa.c
@@ -243,7 +243,7 @@ void workbench_taa_draw_scene_start(WORKBENCH_Data *vedata)
 
   const int jitter_index = effect_info->jitter_index;
   const float *transform_offset = samples[jitter_index];
-  effect_info->taa_mix_factor = 1.0f / (effect_info->jitter_index + 1);
+  effect_info->taa_mix_factor = 1.0f / (jitter_index + 1);
   effect_info->jitter_index = (jitter_index + 1) % num_samples;
 
   /* construct new matrices from transform delta */
diff --git a/source/blender/draw/engines/workbench/workbench_private.h b/source/blender/draw/engines/workbench/workbench_private.h
index af9401959ab..240d06c1e79 100644
--- a/source/blender/draw/engines/workbench/workbench_private.h
+++ b/source/blender/draw/engines/workbench/workbench_private.h
@@ -326,7 +326,8 @@ BLI_INLINE bool workbench_is_taa_enabled(WORKBENCH_PrivateData *wpd)
     }
   }
   else {
-    return wpd->preferences->viewport_aa > SCE_DISPLAY_AA_FXAA && !wpd->is_playback;
+    return !(IS_NAVIGATING(wpd) || wpd->is_playback) &&
+           wpd->preferences->viewport_aa > SCE_DISPLAY_AA_FXAA;
   }
 }
 
@@ -346,8 +347,9 @@ BLI_INLINE bool workbench_is_fxaa_enabled(WORKBENCH_PrivateData *wpd)
       return true;
     }
 
-    /* when navigating or animation playback use FXAA. */
-    return (IS_NAVIGATING(wpd) || wpd->is_playback) && workbench_is_taa_enabled(wpd);
+    /* when navigating or animation playback use FXAA if scene uses TAA. */
+    return (IS_NAVIGATING(wpd) || wpd->is_playback) &&
+           wpd->preferences->viewport_aa > SCE_DISPLAY_AA_FXAA;
   }
 }



More information about the Bf-blender-cvs mailing list