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 21:00:48 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2011-10-16 21:00:48 +0400
commit7b1ef0f41620514be98fc9fff9db9bd59ae57e0d (patch)
treeb6bbd95af29ab44fb493f7637e8179b812dbde89 /intern/cycles/blender/blender_mesh.cpp
parent5c3d8c1eb6ba4c6a18da7b089c145c4cc4556237 (diff)
Cycles: use mesh normals computed by Blender instead of computing our own,
solves an issue with poor mesh geometry.
Diffstat (limited to 'intern/cycles/blender/blender_mesh.cpp')
-rw-r--r--intern/cycles/blender/blender_mesh.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp
index af14bad6402..3bf83fa533f 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -65,6 +65,13 @@ static void create_mesh(Scene *scene, Mesh *mesh, BL::Mesh b_mesh, const vector<
for(b_mesh.vertices.begin(v); v != b_mesh.vertices.end(); ++v)
mesh->verts.push_back(get_float3(v->co()));
+ /* create vertex normals */
+ Attribute *attr_N = mesh->attributes.add(Attribute::STD_VERTEX_NORMAL);
+ float3 *N = attr_N->data_float3();
+
+ for(b_mesh.vertices.begin(v); v != b_mesh.vertices.end(); ++v, ++N)
+ *N= get_float3(v->normal());
+
/* create faces */
BL::Mesh::faces_iterator f;
vector<int> nverts;