Changeset View
Changeset View
Standalone View
Standalone View
source/blender/io/collada/Materials.cpp
| Context not available. | |||||
| } | } | ||||
| } | } | ||||
| void MaterialNode::set_zero_specular() | |||||
| { | |||||
| bNodeSocket *socket = nodeFindSocket(shader_node, SOCK_IN, "Specular"); | |||||
| ((bNodeSocketValueFloat *)socket->default_value)->value = 0.0f; | |||||
| } | |||||
| void MaterialNode::set_specular(COLLADAFW::ColorOrTexture &cot) | void MaterialNode::set_specular(COLLADAFW::ColorOrTexture &cot) | ||||
| { | { | ||||
| int locy = -300 * (node_map.size() - 2); | int locy = -300 * (node_map.size() - 2); | ||||
| if (cot.isColor()) { | if (cot.isColor()) { | ||||
| COLLADAFW::Color col = cot.getColor(); | COLLADAFW::Color col = cot.getColor(); | ||||
| if (col.getRed() == 0.0 && col.getGreen() == 0.0 && col.getBlue() == 0.0) { | |||||
| set_zero_specular(); | |||||
| } | |||||
| bNode *node = add_node(SH_NODE_RGB, -300, locy, "Specular"); | bNode *node = add_node(SH_NODE_RGB, -300, locy, "Specular"); | ||||
| set_color(node, col); | set_color(node, col); | ||||
| /* TODO: Connect node */ | /* TODO: Connect node */ | ||||
| Context not available. | |||||
| add_texture_node(cot, -300, locy, "Specular"); | add_texture_node(cot, -300, locy, "Specular"); | ||||
| /* TODO: Connect node */ | /* TODO: Connect node */ | ||||
| } | } | ||||
| /* not specified (no specular term) */ | |||||
| else { | |||||
| set_zero_specular(); | |||||
| } | |||||
| } | } | ||||
| bNode *MaterialNode::add_texture_node(COLLADAFW::ColorOrTexture &cot, | bNode *MaterialNode::add_texture_node(COLLADAFW::ColorOrTexture &cot, | ||||
| Context not available. | |||||