[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57434] trunk/blender/intern/cycles/kernel : Fix #35729: cycles normal maps not showing properly in preview render.

Brecht Van Lommel brechtvanlommel at pandora.be
Thu Jun 13 15:55:05 CEST 2013


Revision: 57434
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57434
Author:   blendix
Date:     2013-06-13 13:55:05 +0000 (Thu, 13 Jun 2013)
Log Message:
-----------
Fix #35729: cycles normal maps not showing properly in preview render.

Modified Paths:
--------------
    trunk/blender/intern/cycles/kernel/shaders/node_normal_map.osl
    trunk/blender/intern/cycles/kernel/svm/svm_tex_coord.h

Modified: trunk/blender/intern/cycles/kernel/shaders/node_normal_map.osl
===================================================================
--- trunk/blender/intern/cycles/kernel/shaders/node_normal_map.osl	2013-06-13 13:51:01 UTC (rev 57433)
+++ trunk/blender/intern/cycles/kernel/shaders/node_normal_map.osl	2013-06-13 13:55:05 UTC (rev 57434)
@@ -37,7 +37,7 @@
 
 		getattribute("geom:is_smooth", is_smooth);
 		if (!is_smooth)
-			ninterp = Ng;
+			ninterp = normalize(transform("world", "object", Ng));
 
 		// get _unnormalized_ interpolated normal and tangent
 		if (getattribute(attr_name, tangent) &&

Modified: trunk/blender/intern/cycles/kernel/svm/svm_tex_coord.h
===================================================================
--- trunk/blender/intern/cycles/kernel/svm/svm_tex_coord.h	2013-06-13 13:51:01 UTC (rev 57433)
+++ trunk/blender/intern/cycles/kernel/svm/svm_tex_coord.h	2013-06-13 13:55:05 UTC (rev 57434)
@@ -241,10 +241,13 @@
 		float sign = primitive_attribute_float(kg, sd, attr_sign_elem, attr_sign_offset, NULL, NULL);
 		float3 normal;
 
-		if(sd->shader & SHADER_SMOOTH_NORMAL)
+		if(sd->shader & SHADER_SMOOTH_NORMAL) {
 			normal = primitive_attribute_float3(kg, sd, attr_normal_elem, attr_normal_offset, NULL, NULL);
-		else
-			normal = sd->N;
+		}
+		else {
+			normal = sd->Ng;
+			object_inverse_normal_transform(kg, sd, &normal);
+		}
 
 		/* apply normal map */
 		float3 B = sign * cross(normal, tangent);




More information about the Bf-blender-cvs mailing list