diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-09-03 19:23:07 +0400 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2014-09-03 19:28:43 +0400 |
commit | f7062ff3ed55faa6c40c1de19113746b221a7a8f (patch) | |
tree | c18317cb143c646cf069fc10865c0e46af71321d /intern/cycles/kernel/kernel_path.h | |
parent | c5a2c08dd9fa24a12b99a41cae861ee74b633aec (diff) |
Fix T41693: Volumes get brightened with extra volume samples on GPU + BPT
Diffstat (limited to 'intern/cycles/kernel/kernel_path.h')
-rw-r--r-- | intern/cycles/kernel/kernel_path.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/intern/cycles/kernel/kernel_path.h b/intern/cycles/kernel/kernel_path.h index 65755f0df12..b74822bc095 100644 --- a/intern/cycles/kernel/kernel_path.h +++ b/intern/cycles/kernel/kernel_path.h @@ -154,7 +154,7 @@ ccl_device void kernel_path_indirect(KernelGlobals *kg, RNG *rng, Ray ray, #ifdef __VOLUME_SCATTER__ if(result == VOLUME_PATH_SCATTERED) { /* direct lighting */ - kernel_path_volume_connect_light(kg, rng, &volume_sd, throughput, &state, L, 1.0f); + kernel_path_volume_connect_light(kg, rng, &volume_sd, throughput, &state, L); /* indirect light bounce */ if(kernel_path_volume_bounce(kg, rng, &volume_sd, &throughput, &state, L, &ray)) @@ -541,7 +541,7 @@ ccl_device float4 kernel_path_integrate(KernelGlobals *kg, RNG *rng, int sample, #ifdef __VOLUME_SCATTER__ if(result == VOLUME_PATH_SCATTERED) { /* direct lighting */ - kernel_path_volume_connect_light(kg, rng, &volume_sd, throughput, &state, &L, 1.0f); + kernel_path_volume_connect_light(kg, rng, &volume_sd, throughput, &state, &L); /* indirect light bounce */ if(kernel_path_volume_bounce(kg, rng, &volume_sd, &throughput, &state, &L, &ray)) @@ -897,7 +897,7 @@ ccl_device float4 kernel_branched_path_integrate(KernelGlobals *kg, RNG *rng, in PathState ps = state; Ray pray = ray; ShaderData volume_sd; - float3 tp = throughput; + float3 tp = throughput * num_samples_inv; /* branch RNG state */ path_state_branch(&ps, j, num_samples); @@ -909,10 +909,10 @@ ccl_device float4 kernel_branched_path_integrate(KernelGlobals *kg, RNG *rng, in if(result == VOLUME_PATH_SCATTERED) { /* todo: support equiangular, MIS and all light sampling. * alternatively get decoupled ray marching working on the GPU */ - kernel_path_volume_connect_light(kg, rng, &volume_sd, tp, &state, &L, num_samples_inv); + kernel_path_volume_connect_light(kg, rng, &volume_sd, tp, &state, &L); if(kernel_path_volume_bounce(kg, rng, &volume_sd, &tp, &ps, &L, &pray)) { - kernel_path_indirect(kg, rng, pray, tp*num_samples_inv, num_samples, ps, &L); + kernel_path_indirect(kg, rng, pray, tp, num_samples, ps, &L); /* for render passes, sum and reset indirect light pass variables * for the next samples */ |