Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'intern/cycles/blender/blender_sync.cpp')
-rw-r--r--intern/cycles/blender/blender_sync.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index 511061db08a..f806569c389 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -304,6 +304,13 @@ void BlenderSync::sync_integrator()
integrator->method = (Integrator::Method)get_enum(
cscene, "progressive", Integrator::NUM_METHODS, Integrator::PATH);
+ integrator->use_light_tree = get_boolean(cscene, "use_light_tree");
+ if (get_enum(cscene, "progressive") == 0) {
+ integrator->splitting_threshold = get_float(cscene, "splitting_threshold");
+ }
+ else { // Not using branched path tracing
+ integrator->splitting_threshold = 0.0f;
+ }
integrator->sample_all_lights_direct = get_boolean(cscene, "sample_all_lights_direct");
integrator->sample_all_lights_indirect = get_boolean(cscene, "sample_all_lights_indirect");
integrator->light_sampling_threshold = get_float(cscene, "light_sampling_threshold");
@@ -359,8 +366,13 @@ void BlenderSync::sync_integrator()
integrator->ao_bounces = 0;
}
- if (integrator->modified(previntegrator))
+ if (integrator->modified(previntegrator)) {
integrator->tag_update(scene);
+ }
+ if (integrator->use_light_tree != previntegrator.use_light_tree ||
+ integrator->splitting_threshold != previntegrator.splitting_threshold) {
+ scene->light_manager->tag_update(scene);
+ }
}
/* Film */