[Bf-blender-cvs] [85fe12071ad] blender-v2.92-release: Fix T85261: Eevee passes have slight inaccurate colors

Philipp Oeser noreply at git.blender.org
Wed Feb 3 15:53:13 CET 2021


Commit: 85fe12071ad7f7f866b2f2e213ee291dc607b38d
Author: Philipp Oeser
Date:   Tue Feb 2 17:27:12 2021 +0100
Branches: blender-v2.92-release
https://developer.blender.org/rB85fe12071ad7f7f866b2f2e213ee291dc607b38d

Fix T85261: Eevee passes have slight inaccurate colors

In everything in `EEVEE_renderpasses_postprocess` (or the corresponding
renderpass_postprocess_frag.glsl) colors get divided by a
'currentSample'.

This 'currentSample' is always incremented in
`EEVEE_temporal_sampling_draw` (and also one more time before we reach
`EEVEE_renderpasses_postprocess`.
This results in a "off-by-one", slightly inacurate colors and slight
inaccurate transparency (in certain passes like AOVs).

Now decrement the currentSample `EEVEE_renderpasses_postprocess` again
by one to compensate.

Maniphest Tasks: T85261

Differential Revision: https://developer.blender.org/D10286

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

M	source/blender/draw/engines/eevee/eevee_renderpasses.c

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

diff --git a/source/blender/draw/engines/eevee/eevee_renderpasses.c b/source/blender/draw/engines/eevee/eevee_renderpasses.c
index ce5292fbbb0..52160248d75 100644
--- a/source/blender/draw/engines/eevee/eevee_renderpasses.c
+++ b/source/blender/draw/engines/eevee/eevee_renderpasses.c
@@ -282,7 +282,9 @@ void EEVEE_renderpasses_postprocess(EEVEE_ViewLayerData *UNUSED(sldata),
   EEVEE_PrivateData *g_data = stl->g_data;
   EEVEE_EffectsInfo *effects = stl->effects;
 
-  const int current_sample = effects->taa_current_sample;
+  /* Compensate for taa_current_sample being incremented after last drawing in
+   * EEVEE_temporal_sampling_draw. */
+  const int current_sample = effects->taa_current_sample - 1;
   g_data->renderpass_current_sample = current_sample;
   g_data->renderpass_type = renderpass_type;
   g_data->renderpass_postprocess = PASS_POST_UNDEFINED;



More information about the Bf-blender-cvs mailing list