Fix #35272: cycles GPU crash with anisotropic shader in group node.

Problem was that due to group proxy node the anisotropic node did not detect
early enough that it needs generated texture coordinate data to generate the
tangent. Now the proxy nodes are removed earlier.
This commit is contained in:
Brecht Van Lommel
2013-05-10 11:31:57 +00:00
parent 4392fc6f1d
commit e46551246c
3 changed files with 42 additions and 27 deletions

View File

@@ -239,6 +239,7 @@ public:
void connect(ShaderOutput *from, ShaderInput *to);
void disconnect(ShaderInput *to);
void remove_unneeded_nodes();
void finalize(bool do_bump = false, bool do_osl = false, bool do_multi_closure = false);
protected:
@@ -247,7 +248,6 @@ protected:
void find_dependencies(set<ShaderNode*>& dependencies, ShaderInput *input);
void copy_nodes(set<ShaderNode*>& nodes, map<ShaderNode*, ShaderNode*>& nnodemap);
void remove_proxy_nodes(vector<bool>& removed);
void break_cycles(ShaderNode *node, vector<bool>& visited, vector<bool>& on_stack);
void clean();
void bump_from_displacement();