Fix #34226: cycles shadow pass got incorrectly influenced by world multiple

importance sampleing.
This commit is contained in:
Brecht Van Lommel
2013-02-13 16:46:18 +00:00
parent 8a20930c71
commit 909d64079a
5 changed files with 20 additions and 12 deletions

View File

@@ -125,14 +125,7 @@ __device_inline void kernel_write_light_passes(KernelGlobals *kg, __global float
kernel_write_pass_float3(buffer + kernel_data.film.pass_transmission_color, sample, L->color_transmission);
if(flag & PASS_SHADOW) {
float4 shadow = L->shadow;
/* bit of an ugly hack to compensate for emitting triangles influencing
* amount of samples we get for this pass */
if(kernel_data.integrator.progressive && kernel_data.integrator.pdf_triangles != 0.0f)
shadow.w = 0.5f;
else
shadow.w = 1.0f;
shadow.w = kernel_data.film.pass_shadow_scale;
kernel_write_pass_float4(buffer + kernel_data.film.pass_shadow, sample, shadow);
}
#endif