[Bf-blender-cvs] [4546e35c920] master: Fix T95244: Cycles produces incorrect AO pass for shadow catchers
Lukas Stockner
noreply at git.blender.org
Mon Jan 9 03:55:19 CET 2023
Commit: 4546e35c92022997dacc322c8ab43df23bf98ca3
Author: Lukas Stockner
Date: Sun Jan 8 21:38:54 2023 +0100
Branches: master
https://developer.blender.org/rB4546e35c92022997dacc322c8ab43df23bf98ca3
Fix T95244: Cycles produces incorrect AO pass for shadow catchers
Differential Revision: https://developer.blender.org/D16951
===================================================================
M intern/cycles/kernel/integrator/shade_surface.h
===================================================================
diff --git a/intern/cycles/kernel/integrator/shade_surface.h b/intern/cycles/kernel/integrator/shade_surface.h
index 19bec243757..3410195cd19 100644
--- a/intern/cycles/kernel/integrator/shade_surface.h
+++ b/intern/cycles/kernel/integrator/shade_surface.h
@@ -502,8 +502,15 @@ ccl_device_forceinline void integrate_surface_ao(KernelGlobals kg,
rng_state,
ccl_global float *ccl_restrict render_buffer)
{
+ const uint32_t path_flag = INTEGRATOR_STATE(state, path, flag);
+
if (!(kernel_data.kernel_features & KERNEL_FEATURE_AO_ADDITIVE) &&
- !(INTEGRATOR_STATE(state, path, flag) & PATH_RAY_CAMERA)) {
+ !(path_flag & PATH_RAY_CAMERA)) {
+ return;
+ }
+
+ /* Skip AO for paths that were split off for shadow catchers to avoid double-counting. */
+ if (path_flag & PATH_RAY_SHADOW_CATCHER_PASS) {
return;
}
More information about the Bf-blender-cvs
mailing list