diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2017-08-28 14:33:37 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2017-09-13 16:24:14 +0300 |
commit | 37d9e65ddfe04ca8bac3c983515066b9eb78dcba (patch) | |
tree | a579f7083b602d0baf2d65f85ba67e8ebecd7203 /intern/cycles/kernel/kernel_path_branched.h | |
parent | f77cdd1d59f6e895b567c4d5fdcc6f2440e03307 (diff) |
Code cleanup: abstract shadow catcher logic more into accumulation code.
Diffstat (limited to 'intern/cycles/kernel/kernel_path_branched.h')
-rw-r--r-- | intern/cycles/kernel/kernel_path_branched.h | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/intern/cycles/kernel/kernel_path_branched.h b/intern/cycles/kernel/kernel_path_branched.h index daab7c86f7f..b908cbbe970 100644 --- a/intern/cycles/kernel/kernel_path_branched.h +++ b/intern/cycles/kernel/kernel_path_branched.h @@ -269,8 +269,7 @@ ccl_device void kernel_branched_path_integrate(KernelGlobals *kg, int sample, Ray ray, ccl_global float *buffer, - PathRadiance *L, - bool *is_shadow_catcher) + PathRadiance *L) { /* initialize */ float3 throughput = make_float3(1.0f, 1.0f, 1.0f); @@ -374,7 +373,7 @@ ccl_device void kernel_branched_path_integrate(KernelGlobals *kg, /* emission and transmittance */ if(volume_segment.closure_flag & SD_EMISSION) - path_radiance_accum_emission(L, throughput, volume_segment.accum_emission, state.bounce); + path_radiance_accum_emission(L, &state, throughput, volume_segment.accum_emission); throughput *= volume_segment.accum_transmittance; /* free cached steps */ @@ -539,10 +538,6 @@ ccl_device void kernel_branched_path_integrate(KernelGlobals *kg, kernel_volume_stack_enter_exit(kg, &sd, state.volume_stack); #endif /* __VOLUME__ */ } - -#ifdef __SHADOW_TRICKS__ - *is_shadow_catcher = (state.flag & PATH_RAY_SHADOW_CATCHER) != 0; -#endif /* __SHADOW_TRICKS__ */ } ccl_device void kernel_branched_path_trace(KernelGlobals *kg, @@ -564,14 +559,13 @@ ccl_device void kernel_branched_path_trace(KernelGlobals *kg, /* integrate */ PathRadiance L; - bool is_shadow_catcher; if(ray.t != 0.0f) { - kernel_branched_path_integrate(kg, rng_hash, sample, ray, buffer, &L, &is_shadow_catcher); - kernel_write_result(kg, buffer, sample, &L, is_shadow_catcher); + kernel_branched_path_integrate(kg, rng_hash, sample, ray, buffer, &L); + kernel_write_result(kg, buffer, sample, &L); } else { - kernel_write_result(kg, buffer, sample, NULL, false); + kernel_write_result(kg, buffer, sample, NULL); } } |