diff options
author | Lukas Stockner <lukas.stockner@freenet.de> | 2017-05-19 04:47:09 +0300 |
---|---|---|
committer | Lukas Stockner <lukas.stockner@freenet.de> | 2017-05-19 05:04:54 +0300 |
commit | cf1127f3801f9809f385ad62f4388220f278a604 (patch) | |
tree | 77647849759152910ef2a88f4c4856acaefea4a5 /intern | |
parent | 29f4a8510cf4c555e7f1658e928636f38f4f84db (diff) |
Fix T51506: Wrong shadow catcher color when using selective denoising
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/kernel/kernel_passes.h | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/intern/cycles/kernel/kernel_passes.h b/intern/cycles/kernel/kernel_passes.h index c694e60ce14..c5206940493 100644 --- a/intern/cycles/kernel/kernel_passes.h +++ b/intern/cycles/kernel/kernel_passes.h @@ -356,7 +356,16 @@ ccl_device_inline void kernel_write_result(KernelGlobals *kg, ccl_global float * # endif if(kernel_data.film.pass_denoising_clean) { float3 noisy, clean; - path_radiance_split_denoising(kg, L, &noisy, &clean); +#ifdef __SHADOW_TRICKS__ + if(is_shadow_catcher) { + noisy = L_sum; + clean = make_float3(0.0f, 0.0f, 0.0f); + } + else +#endif /* __SHADOW_TRICKS__ */ + { + path_radiance_split_denoising(kg, L, &noisy, &clean); + } kernel_write_pass_float3_variance(buffer + kernel_data.film.pass_denoising_data + DENOISING_PASS_COLOR, sample, noisy); kernel_write_pass_float3_unaligned(buffer + kernel_data.film.pass_denoising_clean, |