Commit: 56e61ca23fe0eb769dbbf3352bba8b60ec39d5ea Author: Sergey Sharybin Date: Thu Jul 15 17:49:35 2021 +0200 Branches: cycles-x https://developer.blender.org/rB56e61ca23fe0eb769dbbf3352bba8b60ec39d5ea
Cycles X: Ignore shadow catcher from holdout collection Differential Revision: https://developer.blender.org/D11937 =================================================================== M intern/cycles/kernel/kernel_accumulate.h M intern/cycles/kernel/kernel_shadow_catcher.h =================================================================== diff --git a/intern/cycles/kernel/kernel_accumulate.h b/intern/cycles/kernel/kernel_accumulate.h index 7417ad126d3..63fdf0dc912 100644 --- a/intern/cycles/kernel/kernel_accumulate.h +++ b/intern/cycles/kernel/kernel_accumulate.h @@ -242,6 +242,22 @@ ccl_device bool kernel_accum_shadow_catcher_transparent(INTEGRATOR_STATE_CONST_A return false; } +ccl_device void kernel_accum_shadow_catcher_transparent_only(INTEGRATOR_STATE_CONST_ARGS, + const float transparent, + ccl_global float *ccl_restrict buffer) +{ + if (!kernel_data.integrator.has_shadow_catcher) { + return; + } + + kernel_assert(kernel_data.film.pass_shadow_catcher_matte != PASS_UNUSED); + + /* Matte pass. */ + if (kernel_shadow_catcher_is_matte_path(INTEGRATOR_STATE_PASS)) { + kernel_write_pass_float(buffer + kernel_data.film.pass_shadow_catcher_matte + 3, transparent); + } +} + #endif /* __SHADOW_CATCHER__ */ /* -------------------------------------------------------------------- @@ -441,11 +457,14 @@ ccl_device_inline void kernel_accum_transparent(INTEGRATOR_STATE_CONST_ARGS, const float transparent, ccl_global float *ccl_restrict render_buffer) { + ccl_global float *buffer = kernel_accum_pixel_render_buffer(INTEGRATOR_STATE_PASS, + render_buffer); + if (kernel_data.film.light_pass_flag & PASSMASK(COMBINED)) { - ccl_global float *buffer = kernel_accum_pixel_render_buffer(INTEGRATOR_STATE_PASS, - render_buffer); kernel_write_pass_float(buffer + kernel_data.film.pass_combined + 3, transparent); } + + kernel_accum_shadow_catcher_transparent_only(INTEGRATOR_STATE_PASS, transparent, buffer); } /* Write background contribution to render buffer. diff --git a/intern/cycles/kernel/kernel_shadow_catcher.h b/intern/cycles/kernel/kernel_shadow_catcher.h index 1c453e1d3f6..9671f4f6837 100644 --- a/intern/cycles/kernel/kernel_shadow_catcher.h +++ b/intern/cycles/kernel/kernel_shadow_catcher.h @@ -34,6 +34,9 @@ ccl_device_inline bool kernel_shadow_catcher_is_path_split_bounce(INTEGRATOR_STA if ((object_flag & SD_OBJECT_SHADOW_CATCHER) == 0) { return false; } + if (object_flag & SD_OBJECT_HOLDOUT_MASK) { + return false; + } const int path_flag = INTEGRATOR_STATE(path, flag); _______________________________________________ Bf-blender-cvs mailing list [email protected] List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs
