[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