[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