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-27 21:48:02 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2013-05-27 21:48:02 +0400
commit601b8c1041a6eece565e575d127a6056bc45cbbb (patch)
tree1f29d388e4bff9c06431e91ad6d4ad7032f66605 /intern/cycles/kernel/shaders/node_normal_map.osl
parent833ca58260ec024abde2d43ba39184f74e66e86b (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/shaders/node_normal_map.osl')
-rw-r--r--intern/cycles/kernel/shaders/node_normal_map.osl14
1 files changed, 12 insertions, 2 deletions
diff --git a/intern/cycles/kernel/shaders/node_normal_map.osl b/intern/cycles/kernel/shaders/node_normal_map.osl
index c3d6e7bd391..9018cca1390 100644
--- a/intern/cycles/kernel/shaders/node_normal_map.osl
+++ b/intern/cycles/kernel/shaders/node_normal_map.osl
@@ -55,10 +55,20 @@ shader node_normal_map(
Normal = normal(0, 0, 0);
}
}
- else if (space == "Object")
+ else if (space == "Object") {
+ /* strange blender convention */
+ mcolor[1] = -mcolor[1];
+ mcolor[2] = -mcolor[2];
+
Normal = normalize(transform("object", "world", vector(mcolor)));
- else if (space == "World")
+ }
+ else if (space == "World") {
+ /* strange blender convention */
+ mcolor[1] = -mcolor[1];
+ mcolor[2] = -mcolor[2];
+
Normal = normalize(vector(mcolor));
+ }
if (Strength != 1.0)
Normal = normalize(NormalIn + (Normal - NormalIn) * max(Strength, 0.0));