[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [51298] trunk/blender/intern/cycles/kernel /svm/svm_geometry.h: Fix for wrong cycles tangent in some cases, was missing transform.

Brecht Van Lommel brechtvanlommel at pandora.be
Sat Oct 13 14:11:02 CEST 2012


Revision: 51298
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51298
Author:   blendix
Date:     2012-10-13 12:11:01 +0000 (Sat, 13 Oct 2012)
Log Message:
-----------
Fix for wrong cycles tangent in some cases, was missing transform.

Modified Paths:
--------------
    trunk/blender/intern/cycles/kernel/svm/svm_geometry.h

Modified: trunk/blender/intern/cycles/kernel/svm/svm_geometry.h
===================================================================
--- trunk/blender/intern/cycles/kernel/svm/svm_geometry.h	2012-10-13 11:23:04 UTC (rev 51297)
+++ trunk/blender/intern/cycles/kernel/svm/svm_geometry.h	2012-10-13 12:11:01 UTC (rev 51298)
@@ -29,12 +29,18 @@
 		case NODE_GEOM_N: data = sd->N; break;
 #ifdef __DPDU__
 		case NODE_GEOM_T: {
-			int attr_offset = find_attribute(kg, sd, ATTR_STD_TANGENT);
+			if(sd->object != ~0) {
+				int attr_offset = find_attribute(kg, sd, ATTR_STD_TANGENT);
 
-			if(attr_offset == ATTR_STD_NOT_FOUND)
+				if(attr_offset != ATTR_STD_NOT_FOUND) {
+					data = triangle_attribute_float3(kg, sd, ATTR_ELEMENT_VERTEX, attr_offset, NULL, NULL);
+					object_normal_transform(kg, sd, &data);
+				}
+				else
+					data = normalize(sd->dPdu);
+			}
+			else
 				data = normalize(sd->dPdu);
-			else
-				data = triangle_attribute_float3(kg, sd, ATTR_ELEMENT_VERTEX, attr_offset, NULL, NULL);
 
 			break;
 		}




More information about the Bf-blender-cvs mailing list