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
_______________________________________________
Bf-blender-cvs mailing list
[email protected]
List details, subscription details or unsubscribe:
https://lists.blender.org/mailman/listinfo/bf-blender-cvs