[Bf-blender-cvs] [49573b8] blender-v2.77-release: Fix T47931: Missed world shader update when having object dependency

Sergey Sharybin noreply at git.blender.org
Tue Apr 5 10:38:26 CEST 2016


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;
+				}
+			}
 		}
 	}




More information about the Bf-blender-cvs mailing list