Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2011-10-16 00:13:35 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2011-10-16 00:13:35 +0400
commit9c959d98fe5b873f2538882e041f00b6cd90d7cf (patch)
tree3556a4621c44a06b07df1497fe4a2151d311c487 /intern/cycles
parent19a42adc61877dfbc584ef84f52bdbfa5061b43c (diff)
Cycles: make Attribute node work, code for it was implemented in kernel, only
missing was the ability to specify the attribute name in the node. This makes it possible to use multiple uv or vertex color layers now.
Diffstat (limited to 'intern/cycles')
-rw-r--r--intern/cycles/blender/blender_mesh.cpp17
-rw-r--r--intern/cycles/blender/blender_shader.cpp3
2 files changed, 11 insertions, 9 deletions
diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp
index 0dc0b91be79..af14bad6402 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -121,17 +121,18 @@ static void create_mesh(Scene *scene, Mesh *mesh, BL::Mesh b_mesh, const vector<
size_t i = 0;
for(l->data.begin(c); c != l->data.end(); ++c, ++i) {
- fdata[0] = get_float3(c->color1());
- fdata[1] = get_float3(c->color2());
- fdata[2] = get_float3(c->color3());
- fdata += 3;
+ fdata[0] = color_srgb_to_scene_linear(get_float3(c->color1()));
+ fdata[1] = color_srgb_to_scene_linear(get_float3(c->color2()));
+ fdata[2] = color_srgb_to_scene_linear(get_float3(c->color3()));
if(nverts[i] == 4) {
- fdata[0] = get_float3(c->color1());
- fdata[1] = get_float3(c->color3());
- fdata[2] = get_float3(c->color4());
- fdata += 3;
+ fdata[3] = fdata[0];
+ fdata[4] = fdata[2];
+ fdata[5] = color_srgb_to_scene_linear(get_float3(c->color4()));
+ fdata += 6;
}
+ else
+ fdata += 3;
}
}
}
diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp
index f798d4ff44a..9e3095f23e2 100644
--- a/intern/cycles/blender/blender_shader.cpp
+++ b/intern/cycles/blender/blender_shader.cpp
@@ -196,8 +196,9 @@ static ShaderNode *add_node(BL::BlendData b_data, ShaderGraph *graph, BL::Node *
break;
}
case BL::ShaderNode::type_ATTRIBUTE: {
+ BL::ShaderNodeAttribute b_attr_node(b_node);
AttributeNode *attr = new AttributeNode();
- attr->attribute = "";
+ attr->attribute = b_attr_node.attribute_name();
node = attr;
break;
}