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
diff options
context:
space:
mode:
Diffstat (limited to 'intern/cycles/kernel/kernel_light.h')
-rw-r--r--intern/cycles/kernel/kernel_light.h5
1 files changed, 3 insertions, 2 deletions
diff --git a/intern/cycles/kernel/kernel_light.h b/intern/cycles/kernel/kernel_light.h
index 9f198c6c595..4983122fb34 100644
--- a/intern/cycles/kernel/kernel_light.h
+++ b/intern/cycles/kernel/kernel_light.h
@@ -558,11 +558,11 @@ __device void light_sample(KernelGlobals *kg, float randt, float randu, float ra
if(prim >= 0) {
int object = __float_as_int(l.w);
#ifdef __HAIR__
- int segment = __float_as_int(l.z);
+ int segment = __float_as_int(l.z) & SHADER_MASK;
#endif
#ifdef __HAIR__
- if (segment != (int)~0)
+ if (segment != SHADER_MASK)
curve_segment_light_sample(kg, prim, object, segment, randu, randv, time, ls);
else
#endif
@@ -571,6 +571,7 @@ __device void light_sample(KernelGlobals *kg, float randt, float randu, float ra
/* compute incoming direction, distance and pdf */
ls->D = normalize_len(ls->P - P, &ls->t);
ls->pdf = triangle_light_pdf(kg, ls->Ng, -ls->D, ls->t);
+ ls->shader |= __float_as_int(l.z) & (~SHADER_MASK);
}
else {
int lamp = -prim-1;