[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