[Bf-blender-cvs] [7ffcce86072] master: Fix Cycles AO pass not working for shadow catcher objects.

Brecht Van Lommel noreply at git.blender.org
Mon Aug 20 16:21:30 CEST 2018


Commit: 7ffcce860729e043f41022357ac5703c899cf4db
Author: Brecht Van Lommel
Date:   Mon Aug 20 16:09:17 2018 +0200
Branches: master
https://developer.blender.org/rB7ffcce860729e043f41022357ac5703c899cf4db

Fix Cycles AO pass not working for shadow catcher objects.

===================================================================

M	intern/cycles/kernel/kernel_accumulate.h

===================================================================

diff --git a/intern/cycles/kernel/kernel_accumulate.h b/intern/cycles/kernel/kernel_accumulate.h
index 6b3cec9fda6..86ad6e1a061 100644
--- a/intern/cycles/kernel/kernel_accumulate.h
+++ b/intern/cycles/kernel/kernel_accumulate.h
@@ -320,7 +320,13 @@ ccl_device_inline void path_radiance_accum_ao(PathRadiance *L,
                                               float3 bsdf,
                                               float3 ao)
 {
+	/* Store AO pass. */
+	if(L->use_light_pass && state->bounce == 0) {
+		L->ao += alpha*throughput*ao;
+	}
+
 #ifdef __SHADOW_TRICKS__
+	/* For shadow catcher, accumulate ratio. */
 	if(state->flag & PATH_RAY_STORE_SHADOW_INFO) {
 		float3 light = throughput * bsdf;
 		L->path_total += light;
@@ -335,12 +341,11 @@ ccl_device_inline void path_radiance_accum_ao(PathRadiance *L,
 #ifdef __PASSES__
 	if(L->use_light_pass) {
 		if(state->bounce == 0) {
-			/* directly visible lighting */
+			/* Directly visible lighting. */
 			L->direct_diffuse += throughput*bsdf*ao;
-			L->ao += alpha*throughput*ao;
 		}
 		else {
-			/* indirectly visible lighting after BSDF bounce */
+			/* Indirectly visible lighting after BSDF bounce. */
 			L->indirect += throughput*bsdf*ao;
 		}
 	}



More information about the Bf-blender-cvs mailing list