Commit: 49573b8e39bae2b70e3b391b8cd492a496f54110
Author: Sergey Sharybin
Date:   Mon Mar 28 10:45:29 2016 +0200
Branches: blender-v2.77-release
https://developer.blender.org/rB49573b8e39bae2b70e3b391b8cd492a496f54110

Fix T47931: Missed world shader update when having object dependency

===================================================================

M       intern/cycles/blender/blender_sync.cpp

===================================================================

diff --git a/intern/cycles/blender/blender_sync.cpp 
b/intern/cycles/blender/blender_sync.cpp
index 3098522..749b8c0 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -133,10 +133,18 @@ bool BlenderSync::sync_recalc()
        BL::BlendData::worlds_iterator b_world;
 
        for(b_data.worlds.begin(b_world); b_world != b_data.worlds.end(); 
++b_world) {
-               if(world_map == b_world->ptr.data &&
-                  (b_world->is_updated() || (b_world->node_tree() && 
b_world->node_tree().is_updated())))
-               {
-                       world_recalc = true;
+               if(world_map == b_world->ptr.data) {
+                       if(b_world->is_updated() ||
+                          (b_world->node_tree() && 
b_world->node_tree().is_updated()))
+                       {
+                               world_recalc = true;
+                       }
+                       else if(b_world->node_tree() && b_world->use_nodes()) {
+                               Shader *shader = 
scene->shaders[scene->default_background];
+                               if(has_updated_objects && shader != NULL && 
shader->has_object_dependency) {
+                                       world_recalc = true;
+                               }
+                       }
                }
        }

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to