[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [52711] trunk/blender/intern/cycles/kernel /shaders/node_geometry.osl: Fix performance issue in OSL geometry node, compiler fails to optimize out the

Brecht Van Lommel brechtvanlommel at pandora.be
Sun Dec 2 09:25:46 CET 2012


Revision: 52711
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=52711
Author:   blendix
Date:     2012-12-02 08:25:40 +0000 (Sun, 02 Dec 2012)
Log Message:
-----------
Fix performance issue in OSL geometry node, compiler fails to optimize out the
tangent computation, tweaked the code so this works.

Modified Paths:
--------------
    trunk/blender/intern/cycles/kernel/shaders/node_geometry.osl

Modified: trunk/blender/intern/cycles/kernel/shaders/node_geometry.osl
===================================================================
--- trunk/blender/intern/cycles/kernel/shaders/node_geometry.osl	2012-12-02 07:23:10 UTC (rev 52710)
+++ trunk/blender/intern/cycles/kernel/shaders/node_geometry.osl	2012-12-02 08:25:40 UTC (rev 52711)
@@ -51,7 +51,12 @@
 
 	/* try to create spherical tangent from generated coordinates */
 	if (getattribute("geom:generated", generated)) {
-		vector T = vector(-(generated[1] - 0.5), (generated[0] - 0.5), 0.0);
+		matrix project = matrix(0.0, 1.0, 0.0, 0.0,
+		                  -1.0, 0.0, 0.0, 0.0,
+						  0.0, 0.0, 0.0, 0.0,
+						  0.5, -0.5, 0.0, 1.0);
+
+		vector T = transform(project, generated);
 		T = transform("object", "world", T);
 		Tangent = cross(Normal, normalize(cross(T, Normal)));
 	}




More information about the Bf-blender-cvs mailing list