Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/intern
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2012-09-03 21:41:49 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2012-09-03 21:41:49 +0400
commita2515f3ca060500e0407bf39ec261e884c254765 (patch)
treea9c7a7e1a532b0fd14ea5382cea303c22afdc89b /intern
parent195c520d0567782dbe09d6fc1506d630a11372da (diff)
Fix #32089: non-progressive integrator issue with semi-transparent surfaces.
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/kernel/kernel_path.h17
1 files 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);
}
}