[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [46947] trunk/blender/intern/cycles/render /graph.cpp: Fix cycles render issue with a (useless) mix node that has the same shader

Brecht Van Lommel brechtvanlommel at pandora.be
Wed May 23 19:55:34 CEST 2012


Revision: 46947
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46947
Author:   blendix
Date:     2012-05-23 17:55:34 +0000 (Wed, 23 May 2012)
Log Message:
-----------
Fix cycles render issue with a (useless) mix node that has the same shader
plugged into both sockets.

Modified Paths:
--------------
    trunk/blender/intern/cycles/render/graph.cpp

Modified: trunk/blender/intern/cycles/render/graph.cpp
===================================================================
--- trunk/blender/intern/cycles/render/graph.cpp	2012-05-23 17:26:49 UTC (rev 46946)
+++ trunk/blender/intern/cycles/render/graph.cpp	2012-05-23 17:55:34 UTC (rev 46947)
@@ -325,6 +325,25 @@
 			
 			removed[proxy->id] = true;
 		}
+
+		/* remove useless mix closures nodes */
+		MixClosureNode *mix = dynamic_cast<MixClosureNode*>(node);
+
+		if(mix) {
+			if(mix->outputs[0]->links.size() && mix->inputs[1]->link == mix->inputs[2]->link) {
+				ShaderOutput *output = mix->inputs[1]->link;
+				vector<ShaderInput*> inputs = mix->outputs[0]->links;
+
+				foreach(ShaderInput *sock, mix->inputs)
+					if(sock->link)
+						disconnect(sock);
+
+				foreach(ShaderInput *input, inputs) {
+					disconnect(input);
+					connect(output, input);
+				}
+			}
+		}
 	}
 }
 




More information about the Bf-blender-cvs mailing list