From a2515f3ca060500e0407bf39ec261e884c254765 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Mon, 3 Sep 2012 17:41:49 +0000 Subject: [PATCH] Fix #32089: non-progressive integrator issue with semi-transparent surfaces. --- intern/cycles/kernel/kernel_path.h | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h index f5188345948..acf17e695e3 100644 --- a/intern/cycles/kernel/kernel_path.h +++ b/intern/cycles/kernel/kernel_path.h @@ -842,15 +842,20 @@ __device float4 kernel_path_non_progressive(KernelGlobals *kg, RNG *rng, int sam path_state_next(kg, &ps, label); /* setup ray */ - ray.P = ray_offset(sd.P, (label & LABEL_TRANSMIT)? -sd.Ng: sd.Ng); - ray.D = bsdf_omega_in; - ray.t = FLT_MAX; + Ray bsdf_ray; + + bsdf_ray.P = ray_offset(sd.P, (label & LABEL_TRANSMIT)? -sd.Ng: sd.Ng); + bsdf_ray.D = bsdf_omega_in; + bsdf_ray.t = FLT_MAX; #ifdef __RAY_DIFFERENTIALS__ - ray.dP = sd.dP; - ray.dD = bsdf_domega_in; + bsdf_ray.dP = sd.dP; + bsdf_ray.dD = bsdf_domega_in; +#endif +#ifdef __MOTION__ + bsdf_ray.time = sd.time; #endif - kernel_path_indirect(kg, rng, sample*num_samples, ray, buffer, + kernel_path_indirect(kg, rng, sample*num_samples, bsdf_ray, buffer, tp*num_samples_inv, min_ray_pdf, bsdf_pdf, ps, rng_offset+PRNG_BOUNCE_NUM, &L); } }