diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-02-20 16:22:40 +0300 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2018-02-22 02:55:32 +0300 |
commit | 2d81758aa650256d6b6ed283e43b6c35808ed205 (patch) | |
tree | db336da6924982031bbcc30844b496d600fd407a /intern/cycles/kernel/kernel_emission.h | |
parent | 84e92f9b3c50433221a4c30f3a14713d99680f3a (diff) |
Cycles: better path termination for transparency.
We now continue transparent paths after diffuse/glossy/transmission/volume
bounces are exceeded. This avoids unexpected boundaries in volumes with
transparent boundaries. It is also required for MIS to work correctly with
transparent surfaces, as we also continue through these in shadow rays.
The main visible changes is that volumes will now be lit by the background
even at volume bounces 0, same as surfaces.
Fixes T53914 and T54103.
Diffstat (limited to 'intern/cycles/kernel/kernel_emission.h')
-rw-r--r-- | intern/cycles/kernel/kernel_emission.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/intern/cycles/kernel/kernel_emission.h b/intern/cycles/kernel/kernel_emission.h index 94b0a37ce62..5875249b404 100644 --- a/intern/cycles/kernel/kernel_emission.h +++ b/intern/cycles/kernel/kernel_emission.h @@ -67,13 +67,13 @@ ccl_device_noinline float3 direct_emissive_eval(KernelGlobals *kg, ls->Ng = emission_sd->Ng; - /* no path flag, we're evaluating this for all closures. that's weak but - * we'd have to do multiple evaluations otherwise */ + /* No proper path flag, we're evaluating this for all closures. that's + * weak but we'd have to do multiple evaluations otherwise. */ path_state_modify_bounce(state, true); - shader_eval_surface(kg, emission_sd, state, 0, 0); + shader_eval_surface(kg, emission_sd, state, PATH_RAY_EMISSION); path_state_modify_bounce(state, false); - /* evaluate emissive closure */ + /* Evaluate emissive closure. */ eval = shader_emissive_eval(kg, emission_sd); } |