From d979f39cf1e7bed3e82563908e5248afd544dd89 Mon Sep 17 00:00:00 2001 From: Thomas Dinges Date: Sat, 14 Feb 2015 20:44:30 +0100 Subject: [PATCH] Cycles: Small improvement for volume render (decoupled) Simplify branching here a bit, helps ~3% in volume_light_sampling.blend (Branched MIS scene). --- intern/cycles/kernel/kernel_path.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h index a1012cf2b72..151e762020b 100644 --- a/intern/cycles/kernel/kernel_path.h +++ b/intern/cycles/kernel/kernel_path.h @@ -130,9 +130,6 @@ ccl_device void kernel_path_indirect(KernelGlobals *kg, RNG *rng, Ray ray, rphase, rscatter, &volume_segment, NULL, true); } - if(result != VOLUME_PATH_SCATTERED) - throughput *= volume_segment.accum_transmittance; - /* free cached steps */ kernel_volume_decoupled_free(kg, &volume_segment); @@ -142,6 +139,9 @@ ccl_device void kernel_path_indirect(KernelGlobals *kg, RNG *rng, Ray ray, else break; } + else { + throughput *= volume_segment.accum_transmittance; + } } else #endif @@ -575,9 +575,6 @@ ccl_device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int sample, rphase, rscatter, &volume_segment, NULL, true); } - if(result != VOLUME_PATH_SCATTERED) - throughput *= volume_segment.accum_transmittance; - /* free cached steps */ kernel_volume_decoupled_free(kg, &volume_segment); @@ -587,6 +584,9 @@ ccl_device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int sample, else break; } + else { + throughput *= volume_segment.accum_transmittance; + } } else #endif