forked from bartvdbraak/blender
Fix #30034: bug in multiple importance sampling + transparency, would
give slightly wrong lighting behind transparent objects.
This commit is contained in:
parent
f07f59c760
commit
87149fc4b6
@ -220,9 +220,7 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int sample, R
|
|||||||
|
|
||||||
path_radiance_init(&L, kernel_data.film.use_light_pass);
|
path_radiance_init(&L, kernel_data.film.use_light_pass);
|
||||||
|
|
||||||
#if defined(__EMISSION__) || defined(__BACKGROUND__)
|
|
||||||
float ray_pdf = 0.0f;
|
float ray_pdf = 0.0f;
|
||||||
#endif
|
|
||||||
PathState state;
|
PathState state;
|
||||||
int rng_offset = PRNG_BASE_NUM;
|
int rng_offset = PRNG_BASE_NUM;
|
||||||
|
|
||||||
@ -344,9 +342,8 @@ __device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int sample, R
|
|||||||
path_radiance_bsdf_bounce(&L, &throughput, &bsdf_eval, bsdf_pdf, state.bounce, label);
|
path_radiance_bsdf_bounce(&L, &throughput, &bsdf_eval, bsdf_pdf, state.bounce, label);
|
||||||
|
|
||||||
/* set labels */
|
/* set labels */
|
||||||
#if defined(__EMISSION__) || defined(__BACKGROUND__)
|
if(!(label & LABEL_TRANSPARENT))
|
||||||
ray_pdf = bsdf_pdf;
|
ray_pdf = bsdf_pdf;
|
||||||
#endif
|
|
||||||
|
|
||||||
/* update path state */
|
/* update path state */
|
||||||
path_state_next(kg, &state, label);
|
path_state_next(kg, &state, label);
|
||||||
|
Loading…
Reference in New Issue
Block a user