[Bf-blender-cvs] [23f51a4e43b] blender2.8: Eevee: Volumetrics: Request aditional frames when no TAA is enabled.

Clément Foucault noreply at git.blender.org
Fri Oct 27 23:28:37 CEST 2017


Commit: 23f51a4e43b75514b1219efcde9767bab0c166c2
Author: Clément Foucault
Date:   Tue Oct 24 18:18:14 2017 +0200
Branches: blender2.8
https://developer.blender.org/rB23f51a4e43b75514b1219efcde9767bab0c166c2

Eevee: Volumetrics: Request aditional frames when no TAA is enabled.

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

M	source/blender/draw/engines/eevee/eevee_effects.c
M	source/blender/draw/engines/eevee/eevee_private.h

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

diff --git a/source/blender/draw/engines/eevee/eevee_effects.c b/source/blender/draw/engines/eevee/eevee_effects.c
index e5f942f5e8e..c6dcf78d401 100644
--- a/source/blender/draw/engines/eevee/eevee_effects.c
+++ b/source/blender/draw/engines/eevee/eevee_effects.c
@@ -713,16 +713,21 @@ void EEVEE_effects_init(EEVEE_SceneLayerData *sldata, EEVEE_Data *vedata)
 		double ht_point[3];
 		double ht_offset[3] = {0.0, 0.0};
 		unsigned int ht_primes[3] = {3, 7, 2};
-		static unsigned int current_sample = 0;
 		struct wmWindowManager *wm = CTX_wm_manager(draw_ctx->evil_C);
+		unsigned int current_sample = 0;
 
 		if (((effects->enabled_effects & EFFECT_TAA) != 0) && (ED_screen_animation_no_scrub(wm) == NULL)) {
 			/* If TAA is in use do not use the history buffer. */
 			volumetrics->history_alpha = 0.0f;
 			current_sample = effects->taa_current_sample - 1;
+			effects->volume_current_sample = -1;
 		}
 		else {
-			current_sample = (current_sample + 1) % (ht_primes[0] * ht_primes[1] * ht_primes[2]);
+			const unsigned int max_sample = (ht_primes[0] * ht_primes[1] * ht_primes[2]);
+			current_sample = effects->volume_current_sample = (effects->volume_current_sample + 1) % max_sample;
+			if (current_sample != max_sample - 1) {
+				DRW_viewport_request_redraw();
+			}
 		}
 		BLI_halton_3D(ht_primes, ht_offset, current_sample, ht_point);
 
diff --git a/source/blender/draw/engines/eevee/eevee_private.h b/source/blender/draw/engines/eevee/eevee_private.h
index 15cc25788ca..ced44fad0c9 100644
--- a/source/blender/draw/engines/eevee/eevee_private.h
+++ b/source/blender/draw/engines/eevee/eevee_private.h
@@ -398,6 +398,7 @@ typedef struct EEVEE_EffectsInfo {
 
 	/* Volumetrics */
 	bool use_volumetrics;
+	int volume_current_sample;
 
 	/* SSR */
 	bool use_ssr;



More information about the Bf-blender-cvs mailing list