[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