[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [58782] trunk/blender: Cycles / HSV Separator and Combine node:

Thomas Dinges blender at dingto.org
Wed Jul 31 23:27:48 CEST 2013


Revision: 58782
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=58782
Author:   dingto
Date:     2013-07-31 21:27:48 +0000 (Wed, 31 Jul 2013)
Log Message:
-----------
Cycles / HSV Separator and Combine node:
* Added nodes to separate and combine hsv colors.

Part of my GSoC 2013 project, SVN merge of r57981. 

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57981

Modified Paths:
--------------
    trunk/blender/intern/cycles/blender/blender_shader.cpp
    trunk/blender/intern/cycles/kernel/CMakeLists.txt
    trunk/blender/intern/cycles/kernel/shaders/CMakeLists.txt
    trunk/blender/intern/cycles/kernel/svm/svm.h
    trunk/blender/intern/cycles/kernel/svm/svm_types.h
    trunk/blender/intern/cycles/render/nodes.cpp
    trunk/blender/intern/cycles/render/nodes.h
    trunk/blender/release/scripts/startup/nodeitems_builtins.py
    trunk/blender/source/blender/blenkernel/BKE_node.h
    trunk/blender/source/blender/blenkernel/intern/node.c
    trunk/blender/source/blender/nodes/CMakeLists.txt
    trunk/blender/source/blender/nodes/NOD_shader.h
    trunk/blender/source/blender/nodes/NOD_static_types.h

Added Paths:
-----------
    trunk/blender/intern/cycles/kernel/shaders/node_combine_hsv.osl
    trunk/blender/intern/cycles/kernel/shaders/node_separate_hsv.osl
    trunk/blender/intern/cycles/kernel/svm/svm_sepcomb_hsv.h
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_sepcombHSV.c

Property Changed:
----------------
    trunk/blender/


Property changes on: trunk/blender
___________________________________________________________________
Modified: svn:mergeinfo
   - /branches/ge_dev:58091-58422
/branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872,44130,44141,44147-44149,44151-44152,44229-44230,45623-45625,46037,48089,48092,48551-48552,48679,48790,48792-48793,49076,49087,49292,49294,49466,49894,50052,50126,52854-52856,54573
/branches/soc-2013-depsgraph_mt:57516
/branches/soc-2013-dingto:57424,57487,57507,57525,57599,57670,57918-57919,58091,58245,58253,58772,58774-58775
/tags/blender-2.67b-release/blender:57122
   + /branches/ge_dev:58091-58422
/branches/ge_harmony:42255,42279-42282,42286,42302,42338,42349,42616,42620,42698-42699,42739,42753,42773-42774,42832,44568,44597-44598,44793-44794
/branches/soc-2011-cucumber:37517,38166-38167,38177,38179-38180,38187,38242,38384,38387,38403-38404,38407,38968,38970,38973,39045,40845,42997-42998,43439
/branches/soc-2011-tomato:42376,42378-42379,42383,42385,42395,42397-42400,42407,42411,42418,42443-42444,42446,42467,42472,42486,42650-42652,42654-42655,42709-42710,42733-42734,42801,43872,44130,44141,44147-44149,44151-44152,44229-44230,45623-45625,46037,48089,48092,48551-48552,48679,48790,48792-48793,49076,49087,49292,49294,49466,49894,50052,50126,52854-52856,54573
/branches/soc-2013-depsgraph_mt:57516
/branches/soc-2013-dingto:57424,57487,57507,57525,57599,57670,57918-57919,57981,58091,58245,58253,58772,58774-58775
/tags/blender-2.67b-release/blender:57122

Modified: trunk/blender/intern/cycles/blender/blender_shader.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_shader.cpp	2013-07-31 21:18:23 UTC (rev 58781)
+++ trunk/blender/intern/cycles/blender/blender_shader.cpp	2013-07-31 21:27:48 UTC (rev 58782)
@@ -231,6 +231,12 @@
 	else if (b_node.is_a(&RNA_ShaderNodeCombineRGB)) {
 		node = new CombineRGBNode();
 	}
+	else if (b_node.is_a(&RNA_ShaderNodeSeparateHSV)) {
+		node = new SeparateHSVNode();
+	}
+	else if (b_node.is_a(&RNA_ShaderNodeCombineHSV)) {
+		node = new CombineHSVNode();
+	}
 	else if (b_node.is_a(&RNA_ShaderNodeHueSaturation)) {
 		node = new HSVNode();
 	}

Modified: trunk/blender/intern/cycles/kernel/CMakeLists.txt
===================================================================
--- trunk/blender/intern/cycles/kernel/CMakeLists.txt	2013-07-31 21:18:23 UTC (rev 58781)
+++ trunk/blender/intern/cycles/kernel/CMakeLists.txt	2013-07-31 21:27:48 UTC (rev 58782)
@@ -100,6 +100,7 @@
 	svm/svm_normal.h
 	svm/svm_ramp.h
 	svm/svm_sepcomb_rgb.h
+	svm/svm_sepcomb_hsv.h
 	svm/svm_sky.h
 	svm/svm_tex_coord.h
 	svm/svm_texture.h

Modified: trunk/blender/intern/cycles/kernel/shaders/CMakeLists.txt
===================================================================
--- trunk/blender/intern/cycles/kernel/shaders/CMakeLists.txt	2013-07-31 21:18:23 UTC (rev 58781)
+++ trunk/blender/intern/cycles/kernel/shaders/CMakeLists.txt	2013-07-31 21:27:48 UTC (rev 58782)
@@ -12,6 +12,7 @@
 	node_camera.osl
 	node_checker_texture.osl
 	node_combine_rgb.osl
+	node_combine_hsv.osl
 	node_convert_from_color.osl
 	node_convert_from_float.osl
 	node_convert_from_int.osl
@@ -53,6 +54,7 @@
 	node_rgb_curves.osl
 	node_rgb_ramp.osl
 	node_separate_rgb.osl
+	node_separate_hsv.osl
 	node_set_normal.osl
 	node_sky_texture.osl
 	node_subsurface_scattering.osl

Copied: trunk/blender/intern/cycles/kernel/shaders/node_combine_hsv.osl (from rev 57981, branches/soc-2013-dingto/intern/cycles/kernel/shaders/node_combine_hsv.osl)
===================================================================
--- trunk/blender/intern/cycles/kernel/shaders/node_combine_hsv.osl	                        (rev 0)
+++ trunk/blender/intern/cycles/kernel/shaders/node_combine_hsv.osl	2013-07-31 21:27:48 UTC (rev 58782)
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2013, Blender Foundation.
+ *
+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "stdosl.h"
+
+shader node_combine_hsv(
+	float H = 0.0,
+	float S = 0.0,
+	float V = 0.0,
+	output color Color = 0.8)
+{
+	Color = color("hsv", H, S, V);	
+}
+

Copied: trunk/blender/intern/cycles/kernel/shaders/node_separate_hsv.osl (from rev 57981, branches/soc-2013-dingto/intern/cycles/kernel/shaders/node_separate_hsv.osl)
===================================================================
--- trunk/blender/intern/cycles/kernel/shaders/node_separate_hsv.osl	                        (rev 0)
+++ trunk/blender/intern/cycles/kernel/shaders/node_separate_hsv.osl	2013-07-31 21:27:48 UTC (rev 58782)
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2013, Blender Foundation.
+ *
+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "stdosl.h"
+#include "node_color.h"
+
+shader node_separate_hsv(
+	color Color = 0.8,
+	output float H = 0.0,
+	output float S = 0.0,
+	output float V = 0.0)
+{
+	color col = rgb_to_hsv(Color);
+	
+	H = col[0];
+	S = col[1];
+	V = col[2];
+}

Modified: trunk/blender/intern/cycles/kernel/svm/svm.h
===================================================================
--- trunk/blender/intern/cycles/kernel/svm/svm.h	2013-07-31 21:18:23 UTC (rev 58781)
+++ trunk/blender/intern/cycles/kernel/svm/svm.h	2013-07-31 21:27:48 UTC (rev 58782)
@@ -170,6 +170,7 @@
 #include "svm_mix.h"
 #include "svm_ramp.h"
 #include "svm_sepcomb_rgb.h"
+#include "svm_sepcomb_hsv.h"
 #include "svm_musgrave.h"
 #include "svm_sky.h"
 #include "svm_tex_coord.h"
@@ -340,6 +341,12 @@
 			case NODE_COMBINE_RGB:
 				svm_node_combine_rgb(sd, stack, node.y, node.z, node.w);
 				break;
+			case NODE_SEPARATE_HSV:
+				svm_node_separate_hsv(kg, sd, stack, node.y, node.z, node.w, &offset);
+				break;
+			case NODE_COMBINE_HSV:
+				svm_node_combine_hsv(kg, sd, stack, node.y, node.z, node.w, &offset);
+				break;
 			case NODE_HSV:
 				svm_node_hsv(kg, sd, stack, node.y, node.z, node.w, &offset);
 				break;

Copied: trunk/blender/intern/cycles/kernel/svm/svm_sepcomb_hsv.h (from rev 57981, branches/soc-2013-dingto/intern/cycles/kernel/svm/svm_sepcomb_hsv.h)
===================================================================
--- trunk/blender/intern/cycles/kernel/svm/svm_sepcomb_hsv.h	                        (rev 0)
+++ trunk/blender/intern/cycles/kernel/svm/svm_sepcomb_hsv.h	2013-07-31 21:27:48 UTC (rev 58782)
@@ -0,0 +1,56 @@
+/*
+ * Copyright 2013, Blender Foundation.
+ *
+ * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+CCL_NAMESPACE_BEGIN
+
+__device void svm_node_combine_hsv(KernelGlobals *kg, ShaderData *sd, float *stack, uint hue_in, uint saturation_in, uint value_in, int *offset)
+{
+	uint4 node1 = read_node(kg, offset);
+	uint color_out = node1.y;
+	
+	float hue = stack_load_float(stack, hue_in);
+	float saturation = stack_load_float(stack, saturation_in);
+	float value = stack_load_float(stack, value_in);
+	
+	/* Combine, and convert back to RGB */
+	float3 color = hsv_to_rgb(make_float3(hue, saturation, value));
+
+	if (stack_valid(color_out))
+		stack_store_float3(stack, color_out, color);
+}
+
+__device void svm_node_separate_hsv(KernelGlobals *kg, ShaderData *sd, float *stack, uint color_in, uint hue_out, uint saturation_out, int *offset)
+{
+	uint4 node1 = read_node(kg, offset);
+	uint value_out = node1.y;
+	
+	float3 color = stack_load_float3(stack, color_in);
+	
+	/* Convert to HSV */
+	color = rgb_to_hsv(color);
+
+	if (stack_valid(hue_out)) 
+			stack_store_float(stack, hue_out, color.x);
+	if (stack_valid(saturation_out)) 
+			stack_store_float(stack, saturation_out, color.y);
+	if (stack_valid(value_out)) 
+			stack_store_float(stack, value_out, color.z);
+}
+
+CCL_NAMESPACE_END
+

Modified: trunk/blender/intern/cycles/kernel/svm/svm_types.h
===================================================================
--- trunk/blender/intern/cycles/kernel/svm/svm_types.h	2013-07-31 21:18:23 UTC (rev 58781)
+++ trunk/blender/intern/cycles/kernel/svm/svm_types.h	2013-07-31 21:27:48 UTC (rev 58782)
@@ -83,6 +83,8 @@
 	NODE_CLOSURE_VOLUME,
 	NODE_SEPARATE_RGB,
 	NODE_COMBINE_RGB,

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list