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
path: root/intern
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2019-06-26 15:28:26 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2019-06-26 16:06:49 +0300
commit4f386999ea92ad0f22bffa151581cf5c615c660b (patch)
tree9ff57aa48db1db699adf4376695eef9dc600e1bb /intern
parent6d64565524a24f79ec86b29b3e4aabb5335aa258 (diff)
Fix T66111: animated lights not updating in Cycles
Diffstat (limited to 'intern')
-rw-r--r--intern/cycles/blender/blender_object.cpp13
-rw-r--r--intern/cycles/blender/blender_shader.cpp3
-rw-r--r--intern/cycles/blender/blender_sync.cpp4
3 files changed, 12 insertions, 8 deletions
diff --git a/intern/cycles/blender/blender_object.cpp b/intern/cycles/blender/blender_object.cpp
index c07e896ab33..17a0dbb43e7 100644
--- a/intern/cycles/blender/blender_object.cpp
+++ b/intern/cycles/blender/blender_object.cpp
@@ -116,15 +116,18 @@ void BlenderSync::sync_light(BL::Object &b_parent,
/* test if we need to sync */
Light *light;
ObjectKey key(b_parent, persistent_id, b_ob_instance);
+ BL::Light b_light(b_ob.data());
+ /* Update if either object or light data changed. */
if (!light_map.sync(&light, b_ob, b_parent, key)) {
- if (light->is_portal)
- *use_portal = true;
- return;
+ Shader *shader;
+ if (!shader_map.sync(&shader, b_light)) {
+ if (light->is_portal)
+ *use_portal = true;
+ return;
+ }
}
- BL::Light b_light(b_ob.data());
-
/* type */
switch (b_light.type()) {
case BL::Light::type_POINT: {
diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp
index 13097f6bf8e..f952b3025f0 100644
--- a/intern/cycles/blender/blender_shader.cpp
+++ b/intern/cycles/blender/blender_shader.cpp
@@ -1437,9 +1437,6 @@ void BlenderSync::sync_shaders(BL::Depsgraph &b_depsgraph)
sync_world(b_depsgraph, auto_refresh_update);
sync_lights(b_depsgraph, auto_refresh_update);
sync_materials(b_depsgraph, auto_refresh_update);
-
- /* false = don't delete unused shaders, not supported */
- shader_map.post_sync(false);
}
CCL_NAMESPACE_END
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index 8d93d517d4e..95ecb4200c2 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -216,6 +216,10 @@ void BlenderSync::sync_data(BL::RenderSettings &b_render,
mesh_synced.clear();
+ /* Shader sync done at the end, since object sync uses it.
+ * false = don't delete unused shaders, not supported. */
+ shader_map.post_sync(false);
+
free_data_after_sync(b_depsgraph);
}