diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-05-27 21:48:02 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-05-27 21:48:02 +0400 |
commit | 601b8c1041a6eece565e575d127a6056bc45cbbb (patch) | |
tree | 1f29d388e4bff9c06431e91ad6d4ad7032f66605 /intern/cycles/kernel/svm/svm_tex_coord.h | |
parent | 833ca58260ec024abde2d43ba39184f74e66e86b (diff) |
Fix #35505: cycles object space normal mapping did not match blender internal.
Now it uses the same (strange) YZ flipping convention.
Diffstat (limited to 'intern/cycles/kernel/svm/svm_tex_coord.h')
-rw-r--r-- | intern/cycles/kernel/svm/svm_tex_coord.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/intern/cycles/kernel/svm/svm_tex_coord.h b/intern/cycles/kernel/svm/svm_tex_coord.h index c4cf0d95793..686b332a322 100644 --- a/intern/cycles/kernel/svm/svm_tex_coord.h +++ b/intern/cycles/kernel/svm/svm_tex_coord.h @@ -276,13 +276,17 @@ __device void svm_node_normal_map(KernelGlobals *kg, ShaderData *sd, float *stac object_normal_transform(kg, sd, &N); } else { + /* strange blender convention */ + color.y = -color.y; + color.z = -color.z; + /* object, world space */ N = color; if(space == NODE_NORMAL_MAP_OBJECT) object_normal_transform(kg, sd, &N); - - N = normalize(N); + else + N = normalize(N); } float strength = stack_load_float(stack, strength_offset); |