[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [51918] trunk/blender/source/blender/nodes : Fix for Math node:

Ton Roosendaal ton at blender.org
Mon Nov 5 16:58:35 CET 2012


Revision: 51918
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=51918
Author:   ton
Date:     2012-11-05 15:58:35 +0000 (Mon, 05 Nov 2012)
Log Message:
-----------
Fix for Math node:

A test variable needed to be absoluted (positive).
Gives expected resuts on negative raiser values.

(next; digging in opencl :)

(In old compo code too, not effective).

Modified Paths:
--------------
    trunk/blender/source/blender/nodes/composite/nodes/node_composite_math.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_math.c

Modified: trunk/blender/source/blender/nodes/composite/nodes/node_composite_math.c
===================================================================
--- trunk/blender/source/blender/nodes/composite/nodes/node_composite_math.c	2012-11-05 15:55:59 UTC (rev 51917)
+++ trunk/blender/source/blender/nodes/composite/nodes/node_composite_math.c	2012-11-05 15:58:35 UTC (rev 51918)
@@ -103,7 +103,8 @@
 				out[0] = pow(in[0], in2[0]);
 			}
 			else {
-				float y_mod_1 = fmod(in2[0], 1);
+				float y_mod_1 = ABS(fmod(in2[0], 1));
+				
 				/* if input value is not nearly an integer, fall back to zero, nicer than straight rounding */
 				if (y_mod_1 > 0.999f || y_mod_1 < 0.001f) {
 					out[0] = powf(in[0], floorf(in2[0] + 0.5f));

Modified: trunk/blender/source/blender/nodes/shader/nodes/node_shader_math.c
===================================================================
--- trunk/blender/source/blender/nodes/shader/nodes/node_shader_math.c	2012-11-05 15:55:59 UTC (rev 51917)
+++ trunk/blender/source/blender/nodes/shader/nodes/node_shader_math.c	2012-11-05 15:58:35 UTC (rev 51918)
@@ -142,7 +142,7 @@
 				out[0]->vec[0] = pow(in[0]->vec[0], in[1]->vec[0]);
 			}
 			else {
-				float y_mod_1 = fmod(in[1]->vec[0], 1);
+				float y_mod_1 = ABS(fmod(in[1]->vec[0], 1));
 				
 				/* if input value is not nearly an integer, fall back to zero, nicer than straight rounding */
 				if (y_mod_1 > 0.999f || y_mod_1 < 0.001f) {




More information about the Bf-blender-cvs mailing list