diff options
author | Scurest <scurest> | 2021-05-14 00:14:57 +0300 |
---|---|---|
committer | Gaia Clary <gaia.clary@machinimatrix.org> | 2021-05-14 00:43:37 +0300 |
commit | 2953732fc5e159d2ae0e9fc23c593a9127a2004a (patch) | |
tree | 9026120e8e05c4227eaee3cf8cfc4fd339532f4e | |
parent | d889e9684aaf523a422227f0aa61079705865a16 (diff) |
Collada import: connect Emission texture to Emission socket
An emission texture is currently connected to the Base Color socket. It should connect to the Emission socket, like a constant does.
Reviewed By: gaiaclary
Differential Revision: https://developer.blender.org/D10990
m--------- | release/datafiles/locale | 0 | ||||
m--------- | release/scripts/addons | 0 | ||||
m--------- | release/scripts/addons_contrib | 0 | ||||
-rw-r--r-- | source/blender/io/collada/Materials.cpp | 12 | ||||
-rw-r--r-- | source/blender/io/collada/Materials.h | 1 | ||||
m--------- | source/tools | 0 |
6 files changed, 12 insertions, 1 deletions
diff --git a/release/datafiles/locale b/release/datafiles/locale -Subproject 2cef4877edc40875978c4e95322bb5193f5815b +Subproject 5ab29b1331d2103dae634b987f121c4599459d7 diff --git a/release/scripts/addons b/release/scripts/addons -Subproject bcd08a9506d33bdd7358201031b04d041ef22d9 +Subproject bb16aba5bd3873794eefe167497118b6063b9a8 diff --git a/release/scripts/addons_contrib b/release/scripts/addons_contrib -Subproject f948f658ba33eb670a65e0bba058d43138abea7 +Subproject 7d78c8a63f2f4b146f9327ddc0d567a5921b94e diff --git a/source/blender/io/collada/Materials.cpp b/source/blender/io/collada/Materials.cpp index 194a9ea397e..35f1b82a71f 100644 --- a/source/blender/io/collada/Materials.cpp +++ b/source/blender/io/collada/Materials.cpp @@ -133,6 +133,16 @@ void MaterialNode::add_link(bNode *from_node, int from_index, bNode *to_node, in nodeAddLink(ntree, from_node, from_socket, to_node, to_socket); } +void MaterialNode::add_link(bNode *from_node, const char* from_label, bNode *to_node, const char* to_label) +{ + bNodeSocket *from_socket = nodeFindSocket(from_node, SOCK_OUT, from_label); + bNodeSocket *to_socket = nodeFindSocket(to_node, SOCK_IN, to_label); + + if (from_socket && to_socket) { + nodeAddLink(ntree, from_node, from_socket, to_node, to_socket); + } +} + void MaterialNode::set_reflectivity(COLLADAFW::FloatOrParam &val) { float reflectivity = val.getFloatValue(); @@ -326,7 +336,7 @@ void MaterialNode::set_emission(COLLADAFW::ColorOrTexture &cot) else if (cot.isTexture()) { bNode *texture_node = add_texture_node(cot, -300, locy, "Emission"); if (texture_node != nullptr) { - add_link(texture_node, 0, shader_node, 0); + add_link(texture_node, "Color", shader_node, "Emission"); } } diff --git a/source/blender/io/collada/Materials.h b/source/blender/io/collada/Materials.h index 2d8c823a4c2..431c309467a 100644 --- a/source/blender/io/collada/Materials.h +++ b/source/blender/io/collada/Materials.h @@ -48,6 +48,7 @@ class MaterialNode { bNodeTree *prepare_material_nodetree(); bNode *add_node(int node_type, int locx, int locy, std::string label); void add_link(bNode *from_node, int from_index, bNode *to_node, int to_index); + void add_link(bNode *from_node, const char* from_label, bNode *to_node, const char* to_label); bNode *add_texture_node(COLLADAFW::ColorOrTexture &cot, int locx, int locy, std::string label); void setShaderType(); diff --git a/source/tools b/source/tools -Subproject 2afbb8ec472cac5102eb239f57b006f8c938768 +Subproject f99d29ae3e6ad44d45d79309454c45f8088781a |