[Bf-blender-cvs] [9604db7] master: Fix T47813: Cycles Standalone not respecting integrator sample_clamp_direct
Sergey Sharybin
noreply at git.blender.org
Wed Apr 13 10:39:52 CEST 2016
Commit: 9604db76505fb832252776810edc430c9159542a
Author: Sergey Sharybin
Date: Wed Apr 13 10:39:21 2016 +0200
Branches: master
https://developer.blender.org/rB9604db76505fb832252776810edc430c9159542a
Fix T47813: Cycles Standalone not respecting integrator sample_clamp_direct
===================================================================
M intern/cycles/blender/blender_sync.cpp
M intern/cycles/render/integrator.cpp
M intern/cycles/render/scene.cpp
===================================================================
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index 749b8c0..2239f99 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -297,10 +297,6 @@ void BlenderSync::sync_film()
Film *film = scene->film;
Film prevfilm = *film;
- /* Clamping */
- Integrator *integrator = scene->integrator;
- film->use_sample_clamp = (integrator->sample_clamp_direct != 0.0f || integrator->sample_clamp_indirect != 0.0f);
-
film->exposure = get_float(cscene, "film_exposure");
film->filter_type = (FilterType)get_enum(cscene,
"pixel_filter_type",
diff --git a/intern/cycles/render/integrator.cpp b/intern/cycles/render/integrator.cpp
index 47489f6..be8fd55 100644
--- a/intern/cycles/render/integrator.cpp
+++ b/intern/cycles/render/integrator.cpp
@@ -16,6 +16,7 @@
#include "device.h"
#include "integrator.h"
+#include "film.h"
#include "light.h"
#include "scene.h"
#include "shader.h"
@@ -174,6 +175,14 @@ void Integrator::device_update(Device *device, DeviceScene *dscene, Scene *scene
device->tex_alloc("__sobol_directions", dscene->sobol_directions);
+ /* Clamping. */
+ bool use_sample_clamp = (sample_clamp_direct != 0.0f ||
+ sample_clamp_indirect != 0.0f);
+ if(use_sample_clamp != scene->film->use_sample_clamp) {
+ scene->film->use_sample_clamp = use_sample_clamp;
+ scene->film->tag_update(scene);
+ }
+
need_update = false;
}
diff --git a/intern/cycles/render/scene.cpp b/intern/cycles/render/scene.cpp
index 9842cd1..ece4919 100644
--- a/intern/cycles/render/scene.cpp
+++ b/intern/cycles/render/scene.cpp
@@ -217,13 +217,13 @@ void Scene::device_update(Device *device_, Progress& progress)
if(progress.get_cancel() || device->have_error()) return;
- progress.set_status("Updating Film");
- film->device_update(device, &dscene, this);
+ progress.set_status("Updating Integrator");
+ integrator->device_update(device, &dscene, this);
if(progress.get_cancel() || device->have_error()) return;
- progress.set_status("Updating Integrator");
- integrator->device_update(device, &dscene, this);
+ progress.set_status("Updating Film");
+ film->device_update(device, &dscene, this);
if(progress.get_cancel() || device->have_error()) return;
More information about the Bf-blender-cvs
mailing list