diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-01-14 20:24:47 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-01-14 20:24:47 +0400 |
commit | 6cdbd1b1aaae0f8b3018ecf2648699a0ea6d6be8 (patch) | |
tree | 5a07433247e2c9b2e12f23d553091bc36cb88cf0 /intern | |
parent | d0621c1daee9c477216fa3fd7944858c1b1c968b (diff) |
Fix #33868: cycles sample as lamp for world background not rendering with the
correct intensity on the GPU.
Diffstat (limited to 'intern')
-rw-r--r-- | intern/cycles/kernel/kernel_light.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/intern/cycles/kernel/kernel_light.h b/intern/cycles/kernel/kernel_light.h index e0d0802ae84..6ba3e439329 100644 --- a/intern/cycles/kernel/kernel_light.h +++ b/intern/cycles/kernel/kernel_light.h @@ -233,8 +233,10 @@ __device void lamp_light_sample(KernelGlobals *kg, int lamp, if(radius > 0.0f) D = distant_light_sample(D, radius, randu, randv); +#ifdef __LAMP_MIS__ else ls->use_mis = false; +#endif ls->P = D; ls->Ng = D; @@ -255,6 +257,9 @@ __device void lamp_light_sample(KernelGlobals *kg, int lamp, ls->D = -D; ls->t = FLT_MAX; ls->eval_fac = 1.0f; +#ifndef __LAMP_MIS__ + ls->use_mis = true; +#endif } #endif else { @@ -266,8 +271,10 @@ __device void lamp_light_sample(KernelGlobals *kg, int lamp, if(radius > 0.0f) /* sphere light */ ls->P += sphere_light_sample(P, ls->P, radius, randu, randv); +#ifdef __LAMP_MIS__ else ls->use_mis = false; +#endif ls->D = normalize_len(ls->P - P, &ls->t); ls->Ng = -ls->D; @@ -298,7 +305,9 @@ __device void lamp_light_sample(KernelGlobals *kg, int lamp, float invarea = data2.x; if(invarea == 0.0f) { +#ifdef __LAMP_MIS__ ls->use_mis = false; +#endif invarea = 1.0f; } |