[Bf-blender-cvs] [aa20bd8908f] cycles-x: Fix shadow catcher denoiser after recent changes in Cycles X
Sergey Sharybin
noreply at git.blender.org
Thu Jul 8 13:24:48 CEST 2021
Commit: aa20bd8908f47253184f82ce64ec08291c145efc
Author: Sergey Sharybin
Date: Thu Jul 8 13:20:31 2021 +0200
Branches: cycles-x
https://developer.blender.org/rBaa20bd8908f47253184f82ce64ec08291c145efc
Fix shadow catcher denoiser after recent changes in Cycles X
The shadow catcher pass access requires combined pass.
This means that the combined pass can not be modified in-place before
the shadow catcher pass is calculated.
===================================================================
M intern/cycles/integrator/denoiser_oidn.cpp
===================================================================
diff --git a/intern/cycles/integrator/denoiser_oidn.cpp b/intern/cycles/integrator/denoiser_oidn.cpp
index 12a0a1bad69..e4de4f8b3c1 100644
--- a/intern/cycles/integrator/denoiser_oidn.cpp
+++ b/intern/cycles/integrator/denoiser_oidn.cpp
@@ -513,9 +513,12 @@ void OIDNDenoiser::denoise_buffer(const BufferParams &buffer_params,
oidn_filter,
num_samples,
allow_inplace_modification);
- context.denoise(PASS_COMBINED);
- context.denoise(PASS_SHADOW_CATCHER);
+ /* NOTE: Passes are in the reverse order of their dependency. For example, Shadow Catcher pass
+ * uses combined pass, so the combined pass needs to be handled later. This is because of
+ * possible in-place modification of the input noisy passes. */
context.denoise(PASS_SHADOW_CATCHER_MATTE);
+ context.denoise(PASS_SHADOW_CATCHER);
+ context.denoise(PASS_COMBINED);
#endif
/* TODO: It may be possible to avoid this copy, but we have to ensure that when other code copies
More information about the Bf-blender-cvs
mailing list