Changeset View
Changeset View
Standalone View
Standalone View
source/blender/collada/Materials.cpp
| Show First 20 Lines • Show All 125 Lines • ▼ Show 20 Lines | void MaterialNode::add_link(bNode *from_node, int from_index, bNode *to_node, int to_index) | ||||
| bNodeSocket *to_socket = (bNodeSocket *)BLI_findlink(&to_node->inputs, to_index); | bNodeSocket *to_socket = (bNodeSocket *)BLI_findlink(&to_node->inputs, to_index); | ||||
| nodeAddLink(ntree, from_node, from_socket, to_node, to_socket); | nodeAddLink(ntree, from_node, from_socket, to_node, to_socket); | ||||
| } | } | ||||
| void MaterialNode::set_reflectivity(COLLADAFW::FloatOrParam &val) | void MaterialNode::set_reflectivity(COLLADAFW::FloatOrParam &val) | ||||
| { | { | ||||
| float reflectivity = val.getFloatValue(); | float reflectivity = val.getFloatValue(); | ||||
| if (reflectivity >= 0) { | |||||
| bNodeSocket *socket = nodeFindSocket(shader_node, SOCK_IN, "Metallic"); | bNodeSocket *socket = nodeFindSocket(shader_node, SOCK_IN, "Metallic"); | ||||
| ((bNodeSocketValueFloat *)socket->default_value)->value = reflectivity; | ((bNodeSocketValueFloat *)socket->default_value)->value = reflectivity; | ||||
| material->metallic = reflectivity; | material->metallic = reflectivity; | ||||
| } | } | ||||
brecht: Metallic and Roughness are values in the 0..1 range. Assigning them only if the value is… | |||||
| } | |||||
| void MaterialNode::set_shininess(COLLADAFW::FloatOrParam &val) | void MaterialNode::set_shininess(COLLADAFW::FloatOrParam &val) | ||||
| { | { | ||||
| float roughness = val.getFloatValue(); | float roughness = val.getFloatValue(); | ||||
| if (roughness >= 0) { | |||||
| bNodeSocket *socket = nodeFindSocket(shader_node, SOCK_IN, "Roughness"); | bNodeSocket *socket = nodeFindSocket(shader_node, SOCK_IN, "Roughness"); | ||||
| ((bNodeSocketValueFloat *)socket->default_value)->value = roughness; | ((bNodeSocketValueFloat *)socket->default_value)->value = roughness; | ||||
| } | } | ||||
| } | |||||
| void MaterialNode::set_ior(COLLADAFW::FloatOrParam &val) | void MaterialNode::set_ior(COLLADAFW::FloatOrParam &val) | ||||
| { | { | ||||
| float ior = val.getFloatValue(); | float ior = val.getFloatValue(); | ||||
| if (ior < 0) { | if (ior < 0) { | ||||
| fprintf(stderr, | fprintf(stderr, | ||||
| "IOR of negative value is not allowed for materials (using Blender default value " | "IOR of negative value is not allowed for materials (using Blender default value " | ||||
| "instead)"); | "instead)"); | ||||
| ▲ Show 20 Lines • Show All 213 Lines • Show Last 20 Lines | |||||
Metallic and Roughness are values in the 0..1 range. Assigning them only if the value is negative makes no sense to me?