[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [51956] trunk/blender/intern/cycles: Fix cycles crash with normal map node, issue with tangent sign attribute.

Brecht Van Lommel brechtvanlommel at pandora.be
Tue Nov 6 22:28:02 CET 2012


Revision: 51956
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51956
Author:   blendix
Date:     2012-11-06 21:27:59 +0000 (Tue, 06 Nov 2012)
Log Message:
-----------
Fix cycles crash with normal map node, issue with tangent sign attribute.

Modified Paths:
--------------
    trunk/blender/intern/cycles/blender/blender_mesh.cpp
    trunk/blender/intern/cycles/kernel/svm/svm_tex_coord.h

Modified: trunk/blender/intern/cycles/blender/blender_mesh.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_mesh.cpp	2012-11-06 20:48:26 UTC (rev 51955)
+++ trunk/blender/intern/cycles/blender/blender_mesh.cpp	2012-11-06 21:27:59 UTC (rev 51956)
@@ -302,11 +302,11 @@
 
 			/* UV tangent */
 			std = (active_render)? ATTR_STD_UV_TANGENT: ATTR_STD_NONE;
-			name = ustring((string(name.c_str()) + ".tangent").c_str());
+			name = ustring((string(l->name().c_str()) + ".tangent").c_str());
 
 			if(mesh->need_attribute(scene, name) || mesh->need_attribute(scene, std)) {
 				std = (active_render)? ATTR_STD_UV_TANGENT_SIGN: ATTR_STD_NONE;
-				name = ustring((string(name.c_str()) + ".tangent_sign").c_str());
+				name = ustring((string(l->name().c_str()) + ".tangent_sign").c_str());
 				bool need_sign = (mesh->need_attribute(scene, name) || mesh->need_attribute(scene, std));
 
 				mikk_compute_tangents(b_mesh, *l, mesh, nverts, need_sign, active_render);

Modified: trunk/blender/intern/cycles/kernel/svm/svm_tex_coord.h
===================================================================
--- trunk/blender/intern/cycles/kernel/svm/svm_tex_coord.h	2012-11-06 20:48:26 UTC (rev 51955)
+++ trunk/blender/intern/cycles/kernel/svm/svm_tex_coord.h	2012-11-06 21:27:59 UTC (rev 51956)
@@ -244,7 +244,7 @@
 		int attr_offset = find_attribute(kg, sd, node.z);
 		int attr_sign_offset = find_attribute(kg, sd, node.w);
 
-		if(attr_offset == ATTR_STD_NOT_FOUND || attr_offset == ATTR_STD_NOT_FOUND) {
+		if(attr_offset == ATTR_STD_NOT_FOUND || attr_sign_offset == ATTR_STD_NOT_FOUND) {
 			stack_store_float3(stack, normal_offset, make_float3(0.0f, 0.0f, 0.0f));
 			return;
 		}




More information about the Bf-blender-cvs mailing list