diff options
author | Brecht Van Lommel <brecht@blender.org> | 2021-11-12 20:26:30 +0300 |
---|---|---|
committer | Brecht Van Lommel <brecht@blender.org> | 2021-11-12 22:03:46 +0300 |
commit | ef0b8d6306e5e1cddf1d7a2087e5589adcf74172 (patch) | |
tree | 1fb8369fc17afa6f06f82b0ca14cf1209ca7e2c5 /intern/cycles/scene/integrator.cpp | |
parent | 9d0d4b8601dfb9de335dd7af32562cbfb94238a6 (diff) |
Fix T92002: no Cycles combined baking support for filter settings
Diffstat (limited to 'intern/cycles/scene/integrator.cpp')
-rw-r--r-- | intern/cycles/scene/integrator.cpp | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/intern/cycles/scene/integrator.cpp b/intern/cycles/scene/integrator.cpp index e9ff868c3fc..737db8b98d5 100644 --- a/intern/cycles/scene/integrator.cpp +++ b/intern/cycles/scene/integrator.cpp @@ -63,6 +63,14 @@ NODE_DEFINE(Integrator) SOCKET_BOOLEAN(caustics_reflective, "Reflective Caustics", true); SOCKET_BOOLEAN(caustics_refractive, "Refractive Caustics", true); SOCKET_FLOAT(filter_glossy, "Filter Glossy", 0.0f); + + SOCKET_BOOLEAN(use_direct_light, "Use Direct Light", true); + SOCKET_BOOLEAN(use_indirect_light, "Use Indirect Light", true); + SOCKET_BOOLEAN(use_diffuse, "Use Diffuse", true); + SOCKET_BOOLEAN(use_glossy, "Use Glossy", true); + SOCKET_BOOLEAN(use_transmission, "Use Transmission", true); + SOCKET_BOOLEAN(use_emission, "Use Emission", true); + SOCKET_INT(seed, "Seed", 0); SOCKET_FLOAT(sample_clamp_direct, "Sample Clamp Direct", 0.0f); SOCKET_FLOAT(sample_clamp_indirect, "Sample Clamp Indirect", 0.0f); @@ -184,6 +192,27 @@ void Integrator::device_update(Device *device, DeviceScene *dscene, Scene *scene kintegrator->caustics_refractive = caustics_refractive; kintegrator->filter_glossy = (filter_glossy == 0.0f) ? FLT_MAX : 1.0f / filter_glossy; + kintegrator->filter_closures = 0; + if (!use_direct_light) { + kintegrator->filter_closures |= FILTER_CLOSURE_DIRECT_LIGHT; + } + if (!use_indirect_light) { + kintegrator->min_bounce = 1; + kintegrator->max_bounce = 1; + } + if (!use_diffuse) { + kintegrator->filter_closures |= FILTER_CLOSURE_DIFFUSE; + } + if (!use_glossy) { + kintegrator->filter_closures |= FILTER_CLOSURE_GLOSSY; + } + if (!use_transmission) { + kintegrator->filter_closures |= FILTER_CLOSURE_TRANSMISSION; + } + if (!use_emission) { + kintegrator->filter_closures |= FILTER_CLOSURE_EMISSION; + } + kintegrator->seed = seed; kintegrator->sample_clamp_direct = (sample_clamp_direct == 0.0f) ? FLT_MAX : |