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>2013-05-11 13:31:58 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2013-05-11 13:31:58 +0400
commit561cf26c2f92a11c8f2fa2da79bcaebf2647fc76 (patch)
tree31b680b7aa9e21d230128dc9db9836aa5df27574 /intern/cycles/blender/blender_mesh.cpp
parent18fda6d84c139d1e105dc58796f37effc31f35d5 (diff)
Fix #35306: cycles normal mapping not working with flat shading.
Diffstat (limited to 'intern/cycles/blender/blender_mesh.cpp')
-rw-r--r--intern/cycles/blender/blender_mesh.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/intern/cycles/blender/blender_mesh.cpp b/intern/cycles/blender/blender_mesh.cpp
index 7f02bc68e6b..d628fa04f92 100644
--- a/intern/cycles/blender/blender_mesh.cpp
+++ b/intern/cycles/blender/blender_mesh.cpp
@@ -106,9 +106,16 @@ static void mikk_get_normal(const SMikkTSpaceContext *context, float N[3], const
{
MikkUserData *userdata = (MikkUserData*)context->m_pUserData;
BL::MeshTessFace f = userdata->mesh.tessfaces[face_num];
- int4 vi = get_int4(f.vertices_raw());
- BL::MeshVertex v = userdata->mesh.vertices[vi[vert_num]];
- float3 vN = get_float3(v.normal());
+ float3 vN;
+
+ if(f.use_smooth()) {
+ int4 vi = get_int4(f.vertices_raw());
+ BL::MeshVertex v = userdata->mesh.vertices[vi[vert_num]];
+ vN = get_float3(v.normal());
+ }
+ else {
+ vN = get_float3(f.normal());
+ }
N[0] = vN.x;
N[1] = vN.y;