[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18823] trunk/blender/source/blender: Patch #18015, adds "Value to Normal" node

Robin Allen roblovski at gmail.com
Fri Feb 6 02:21:41 CET 2009


Revision: 18823
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18823
Author:   kakbarnf
Date:     2009-02-06 02:21:38 +0100 (Fri, 06 Feb 2009)

Log Message:
-----------
Patch #18015, adds "Value to Normal" node

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_node.h
    trunk/blender/source/blender/blenkernel/intern/node.c
    trunk/blender/source/blender/nodes/TEX_node.h

Added Paths:
-----------
    trunk/blender/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c

Modified: trunk/blender/source/blender/blenkernel/BKE_node.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_node.h	2009-02-06 00:55:38 UTC (rev 18822)
+++ trunk/blender/source/blender/blenkernel/BKE_node.h	2009-02-06 01:21:38 UTC (rev 18823)
@@ -405,6 +405,7 @@
 #define TEX_NODE_DISTANCE   118
 #define TEX_NODE_COMPOSE    119
 #define TEX_NODE_DECOMPOSE  120
+#define TEX_NODE_VALTONOR   121
 
 /* 201-299 reserved. Use like this: TEX_NODE_PROC + TEX_CLOUDS, etc */
 #define TEX_NODE_PROC      200

Modified: trunk/blender/source/blender/blenkernel/intern/node.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/node.c	2009-02-06 00:55:38 UTC (rev 18822)
+++ trunk/blender/source/blender/blenkernel/intern/node.c	2009-02-06 01:21:38 UTC (rev 18823)
@@ -2882,6 +2882,7 @@
 	nodeRegisterType(ntypelist, &tex_node_mix_rgb);
 	nodeRegisterType(ntypelist, &tex_node_valtorgb);
 	nodeRegisterType(ntypelist, &tex_node_rgbtobw);
+	nodeRegisterType(ntypelist, &tex_node_valtonor);
 	nodeRegisterType(ntypelist, &tex_node_curve_rgb);
 	nodeRegisterType(ntypelist, &tex_node_curve_time);
 	nodeRegisterType(ntypelist, &tex_node_invert);

Modified: trunk/blender/source/blender/nodes/TEX_node.h
===================================================================
--- trunk/blender/source/blender/nodes/TEX_node.h	2009-02-06 00:55:38 UTC (rev 18822)
+++ trunk/blender/source/blender/nodes/TEX_node.h	2009-02-06 01:21:38 UTC (rev 18823)
@@ -1,75 +1,76 @@
-/**
- * $Id: CMP_node.h 12429 2007-10-29 14:37:19Z bebraw $
- *
- * ***** BEGIN GPL LICENSE BLOCK *****
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version. The Blender
- * Foundation also sells licenses for use in proprietary software under
- * the Blender License.  See http://www.blender.org/BL/ for information
- * about this.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software Foundation,
- * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
- *
- * The Original Code is Copyright (C) 2005 Blender Foundation.
- * All rights reserved.
- *
- * The Original Code is: all of this file.
- *
- * Contributor(s): none yet.
- *
- * ***** END GPL LICENSE BLOCK *****
- */
-
-#ifndef TEX_NODE_H
-#define TEX_NODE_H
-
-#include "BKE_node.h"
-
-
-/* ****************** types array for all texture nodes ****************** */
-
-extern bNodeType tex_node_math;
-extern bNodeType tex_node_mix_rgb;
-extern bNodeType tex_node_valtorgb;
-extern bNodeType tex_node_rgbtobw;
-extern bNodeType tex_node_output;
-extern bNodeType tex_node_viewer;
-extern bNodeType tex_node_checker;
-extern bNodeType tex_node_texture;
-extern bNodeType tex_node_bricks;
-extern bNodeType tex_node_image;
-extern bNodeType tex_node_curve_rgb;
-extern bNodeType tex_node_curve_time;
-extern bNodeType tex_node_invert;
-extern bNodeType tex_node_hue_sat;
-extern bNodeType tex_node_coord;
-extern bNodeType tex_node_distance;
-
-extern bNodeType tex_node_rotate;
-extern bNodeType tex_node_translate;
-
-extern bNodeType tex_node_compose;
-extern bNodeType tex_node_decompose;
-
-extern bNodeType tex_node_proc_voronoi;
-extern bNodeType tex_node_proc_blend;
-extern bNodeType tex_node_proc_magic;
-extern bNodeType tex_node_proc_marble;
-extern bNodeType tex_node_proc_clouds;
-extern bNodeType tex_node_proc_wood;
-extern bNodeType tex_node_proc_musgrave;
-extern bNodeType tex_node_proc_noise;
-extern bNodeType tex_node_proc_stucci;
-extern bNodeType tex_node_proc_distnoise;
-
-#endif
+/**
+ * $Id: CMP_node.h 12429 2007-10-29 14:37:19Z bebraw $
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. The Blender
+ * Foundation also sells licenses for use in proprietary software under
+ * the Blender License.  See http://www.blender.org/BL/ for information
+ * about this.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2005 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#ifndef TEX_NODE_H
+#define TEX_NODE_H
+
+#include "BKE_node.h"
+
+
+/* ****************** types array for all texture nodes ****************** */
+
+extern bNodeType tex_node_math;
+extern bNodeType tex_node_mix_rgb;
+extern bNodeType tex_node_valtorgb;
+extern bNodeType tex_node_valtonor;
+extern bNodeType tex_node_rgbtobw;
+extern bNodeType tex_node_output;
+extern bNodeType tex_node_viewer;
+extern bNodeType tex_node_checker;
+extern bNodeType tex_node_texture;
+extern bNodeType tex_node_bricks;
+extern bNodeType tex_node_image;
+extern bNodeType tex_node_curve_rgb;
+extern bNodeType tex_node_curve_time;
+extern bNodeType tex_node_invert;
+extern bNodeType tex_node_hue_sat;
+extern bNodeType tex_node_coord;
+extern bNodeType tex_node_distance;
+
+extern bNodeType tex_node_rotate;
+extern bNodeType tex_node_translate;
+
+extern bNodeType tex_node_compose;
+extern bNodeType tex_node_decompose;
+
+extern bNodeType tex_node_proc_voronoi;
+extern bNodeType tex_node_proc_blend;
+extern bNodeType tex_node_proc_magic;
+extern bNodeType tex_node_proc_marble;
+extern bNodeType tex_node_proc_clouds;
+extern bNodeType tex_node_proc_wood;
+extern bNodeType tex_node_proc_musgrave;
+extern bNodeType tex_node_proc_noise;
+extern bNodeType tex_node_proc_stucci;
+extern bNodeType tex_node_proc_distnoise;
+
+#endif

Added: trunk/blender/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c
===================================================================
--- trunk/blender/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c	                        (rev 0)
+++ trunk/blender/source/blender/nodes/intern/TEX_nodes/TEX_valToNor.c	2009-02-06 01:21:38 UTC (rev 18823)
@@ -0,0 +1,92 @@
+/**
+ *
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version. 
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
+ *
+ * The Original Code is Copyright (C) 2005 Blender Foundation.
+ * All rights reserved.
+ *
+ * The Original Code is: all of this file.
+ *
+ * Contributor(s): Jucas.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+#include "../TEX_util.h"
+
+static bNodeSocketType inputs[]= { 
+	{ SOCK_VALUE, 1, "Val",   0.0f,   0.0f, 0.0f, 1.0f,  0.0f,   1.0f },
+	{ SOCK_VALUE, 1, "Nabla", 0.025f, 0.0f, 0.0f, 0.0f,  0.001f, 0.1f },
+	{ -1, 0, "" } 
+};
+
+static bNodeSocketType outputs[]= { 
+	{ SOCK_VECTOR, 0, "Normal", 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, 1.0f }, 
+	{ -1, 0, "" } 
+};
+
+static void normalfn(float *out, float *coord, bNode *node, bNodeStack **in, short thread)
+{
+	float new_coord[3];
+
+	float nabla = tex_input_value(in[1], coord, thread);	
+	float val;
+	float nor[2];
+
+	val = tex_input_value(in[0], coord, thread);
+
+	new_coord[0] = coord[0] + nabla;
+	new_coord[1] = coord[1];
+	new_coord[2] = coord[2];
+	nor[0] = tex_input_value(in[0], new_coord, thread);
+
+	new_coord[0] = coord[0];
+	new_coord[1] = coord[1] + nabla;
+	nor[1] = tex_input_value(in[0], new_coord, thread);
+	
+	new_coord[1] = coord[1];
+	new_coord[2] = coord[2] + nabla;
+	nor[2] = tex_input_value(in[0], new_coord, thread);
+
+	out[0] = val-nor[0];
+	out[1] = val-nor[1];
+	out[2] = val-nor[2];
+}
+static void exec(void *data, bNode *node, bNodeStack **in, bNodeStack **out) 
+{
+	tex_output(node, in, out[0], &normalfn);
+	
+	tex_do_preview(node, out[0], data);
+}
+
+bNodeType tex_node_valtonor = {
+	/* *next,*prev     */ NULL, NULL,
+	/* type code       */ TEX_NODE_VALTONOR, 
+	/* name            */ "Value to Normal", 
+	/* width+range     */ 90, 80, 100, 
+	/* class+opts      */ NODE_CLASS_CONVERTOR, NODE_OPTIONS, 
+	/* input sock      */ inputs, 
+	/* output sock     */ outputs, 
+	/* storage         */ "", 
+	/* execfunc        */ exec,
+	/* butfunc         */ NULL,
+	/* initfunc        */ NULL,
+	/* freestoragefunc */ NULL,
+	/* copystoragefunc */ NULL,
+	/* id              */ NULL
+};
+





More information about the Bf-blender-cvs mailing list