diff options
author | Brecht Van Lommel <brechtvanlommel@gmail.com> | 2020-02-14 14:20:12 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2020-02-25 13:44:47 +0300 |
commit | e0085bfd24da3dcfb30498ad8c579620042aa6c5 (patch) | |
tree | 5b0c9a9dab1b8cc72add4f3bf0f9a331f6a87df4 /intern/cycles/kernel/kernel_bake.h | |
parent | e6be2af061ba154ec633fcaf3e4caecacec521c6 (diff) |
Cycles: move sss and diffuse transmission into diffuse pass
This simplifies compositors setups and will be consistent with Eevee render
passes from D6331. There's a continuum between these passes and it's not clear
there is much advantage to having them available separately.
Differential Revision: https://developer.blender.org/D6848
Diffstat (limited to 'intern/cycles/kernel/kernel_bake.h')
-rw-r--r-- | intern/cycles/kernel/kernel_bake.h | 20 |
1 files changed, 2 insertions, 18 deletions
diff --git a/intern/cycles/kernel/kernel_bake.h b/intern/cycles/kernel/kernel_bake.h index a349b225abb..f1fc697553a 100644 --- a/intern/cycles/kernel/kernel_bake.h +++ b/intern/cycles/kernel/kernel_bake.h @@ -71,7 +71,7 @@ ccl_device_inline void compute_light_pass( # ifdef __SUBSURFACE__ /* sample subsurface scattering */ - if ((pass_filter & BAKE_FILTER_SUBSURFACE) && (sd->flag & SD_BSSRDF)) { + if ((pass_filter & BAKE_FILTER_DIFFUSE) && (sd->flag & SD_BSSRDF)) { /* When mixing BSSRDF and BSDF closures we should skip BSDF lighting * if scattering was successful. */ SubsurfaceIndirectRays ss_indirect; @@ -123,7 +123,7 @@ ccl_device_inline void compute_light_pass( # ifdef __SUBSURFACE__ /* sample subsurface scattering */ - if ((pass_filter & BAKE_FILTER_SUBSURFACE) && (sd->flag & SD_BSSRDF)) { + if ((pass_filter & BAKE_FILTER_DIFFUSE) && (sd->flag & SD_BSSRDF)) { /* When mixing BSSRDF and BSDF closures we should skip BSDF lighting * if scattering was successful. */ kernel_branched_path_subsurface_scatter( @@ -178,10 +178,6 @@ ccl_device_inline float3 kernel_bake_shader_bsdf(KernelGlobals *kg, return shader_bsdf_glossy(kg, sd); case SHADER_EVAL_TRANSMISSION: return shader_bsdf_transmission(kg, sd); -# ifdef __SUBSURFACE__ - case SHADER_EVAL_SUBSURFACE: - return shader_bsdf_subsurface(kg, sd); -# endif default: kernel_assert(!"Unknown bake type passed to BSDF evaluate"); return make_float3(0.0f, 0.0f, 0.0f); @@ -385,11 +381,6 @@ ccl_device void kernel_bake_evaluate(KernelGlobals *kg, if ((pass_filter & BAKE_FILTER_TRANSMISSION_INDIRECT) == BAKE_FILTER_TRANSMISSION_INDIRECT) out += L.indirect_transmission; - if ((pass_filter & BAKE_FILTER_SUBSURFACE_DIRECT) == BAKE_FILTER_SUBSURFACE_DIRECT) - out += L.direct_subsurface; - if ((pass_filter & BAKE_FILTER_SUBSURFACE_INDIRECT) == BAKE_FILTER_SUBSURFACE_INDIRECT) - out += L.indirect_subsurface; - if ((pass_filter & BAKE_FILTER_EMISSION) != 0) out += L.emission; @@ -414,13 +405,6 @@ ccl_device void kernel_bake_evaluate(KernelGlobals *kg, kg, &sd, &state, L.direct_transmission, L.indirect_transmission, type, pass_filter); break; } - case SHADER_EVAL_SUBSURFACE: { -# ifdef __SUBSURFACE__ - out = kernel_bake_evaluate_direct_indirect( - kg, &sd, &state, L.direct_subsurface, L.indirect_subsurface, type, pass_filter); -# endif - break; - } # endif /* extra */ |