Commit: 87674f432ec8d6006c2afff018dd42907728afaf Author: Lukas Stockner Date: Mon May 1 15:12:58 2017 +0200 Branches: temp-cycles-denoising https://developer.blender.org/rB87674f432ec8d6006c2afff018dd42907728afaf
Cycles Denoising: Fix shadowing pass calculation =================================================================== M intern/cycles/kernel/kernel_passes.h M intern/cycles/kernel/kernel_path_state.h =================================================================== diff --git a/intern/cycles/kernel/kernel_passes.h b/intern/cycles/kernel/kernel_passes.h index 9e64518b82e..8ab4c724829 100644 --- a/intern/cycles/kernel/kernel_passes.h +++ b/intern/cycles/kernel/kernel_passes.h @@ -180,9 +180,6 @@ ccl_device_inline void kernel_update_denoising_features(KernelGlobals *kg, L->denoising_albedo += ensure_finite3(state->denoising_feature_weight * albedo); state->denoising_feature_weight = 0.0f; - if(!(state->flag & PATH_RAY_SHADOW_CATCHER)) { - state->flag &= ~PATH_RAY_STORE_SHADOW_INFO; - } } #else (void) kg; @@ -353,9 +350,9 @@ ccl_device_inline void kernel_write_result(KernelGlobals *kg, ccl_global float * #ifdef __DENOISING_FEATURES__ if(kernel_data.film.pass_denoising_data) { # ifdef __SHADOW_TRICKS__ - kernel_write_denoising_shadow(kg, buffer, sample, average(L->path_total), average(L->path_total_shaded)); + kernel_write_denoising_shadow(kg, buffer + kernel_data.film.pass_denoising_data, sample, average(L->path_total), average(L->path_total_shaded)); # else - kernel_write_denoising_shadow(kg, buffer, sample, 0.0f, 0.0f); + kernel_write_denoising_shadow(kg, buffer + kernel_data.film.pass_denoising_data, sample, 0.0f, 0.0f); # endif if(kernel_data.film.pass_denoising_clean) { float3 noisy, clean; @@ -384,7 +381,7 @@ ccl_device_inline void kernel_write_result(KernelGlobals *kg, ccl_global float * #ifdef __DENOISING_FEATURES__ if(kernel_data.film.pass_denoising_data) { - kernel_write_denoising_shadow(kg, buffer, sample, 0.0f, 0.0f); + kernel_write_denoising_shadow(kg, buffer + kernel_data.film.pass_denoising_data, sample, 0.0f, 0.0f); kernel_write_pass_float3_variance(buffer + kernel_data.film.pass_denoising_data + DENOISING_PASS_COLOR, sample, make_float3(0.0f, 0.0f, 0.0f)); diff --git a/intern/cycles/kernel/kernel_path_state.h b/intern/cycles/kernel/kernel_path_state.h index 9d1eef45710..0fa77d9e8bd 100644 --- a/intern/cycles/kernel/kernel_path_state.h +++ b/intern/cycles/kernel/kernel_path_state.h @@ -138,6 +138,10 @@ ccl_device_inline void path_state_next(KernelGlobals *kg, ccl_addr_space PathSta /* random number generator next bounce */ state->rng_offset += PRNG_BOUNCE_NUM; + + if((state->denoising_feature_weight == 0.0f) && !(state->flag & PATH_RAY_SHADOW_CATCHER)) { + state->flag &= ~PATH_RAY_STORE_SHADOW_INFO; + } } ccl_device_inline uint path_state_ray_visibility(KernelGlobals *kg, PathState *state) _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org https://lists.blender.org/mailman/listinfo/bf-blender-cvs