[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