diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-10-16 21:00:48 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-10-16 21:00:48 +0400 |
commit | 7b1ef0f41620514be98fc9fff9db9bd59ae57e0d (patch) | |
tree | b6bbd95af29ab44fb493f7637e8179b812dbde89 /intern/cycles/blender/blender_mesh.cpp | |
parent | 5c3d8c1eb6ba4c6a18da7b089c145c4cc4556237 (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.cpp | 7 |
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; |