[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [47479] branches/soc-2012-fried_chicken: Added copy of Diffuse BSDF node for testing

Philipp Volguine phil.volguine at gmail.com
Tue Jun 5 22:07:09 CEST 2012


Revision: 47479
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=47479
Author:   zer000
Date:     2012-06-05 20:07:01 +0000 (Tue, 05 Jun 2012)
Log Message:
-----------
Added copy of Diffuse BSDF node for testing

-Changed blender nodes source for UI changes,
-Added new cycles node type MY_BSDF_NODE
-Did not copy shader closure

Conflicts:

	source/blender/blenkernel/BKE_node.h

Modified Paths:
--------------
    branches/soc-2012-fried_chicken/intern/cycles/blender/blender_shader.cpp
    branches/soc-2012-fried_chicken/intern/cycles/kernel/svm/svm.h
    branches/soc-2012-fried_chicken/intern/cycles/kernel/svm/svm_bsdf.h
    branches/soc-2012-fried_chicken/intern/cycles/kernel/svm/svm_closure.h
    branches/soc-2012-fried_chicken/intern/cycles/kernel/svm/svm_types.h
    branches/soc-2012-fried_chicken/intern/cycles/render/nodes.cpp
    branches/soc-2012-fried_chicken/intern/cycles/render/nodes.h
    branches/soc-2012-fried_chicken/source/blender/blenkernel/BKE_node.h
    branches/soc-2012-fried_chicken/source/blender/blenkernel/intern/node.c
    branches/soc-2012-fried_chicken/source/blender/makesrna/intern/rna_nodetree_types.h
    branches/soc-2012-fried_chicken/source/blender/nodes/NOD_shader.h
    branches/soc-2012-fried_chicken/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c

Added Paths:
-----------
    branches/soc-2012-fried_chicken/source/blender/nodes/shader/nodes/node_shader_mybsdf_diffuse.c

Modified: branches/soc-2012-fried_chicken/intern/cycles/blender/blender_shader.cpp
===================================================================
--- branches/soc-2012-fried_chicken/intern/cycles/blender/blender_shader.cpp	2012-06-05 19:39:12 UTC (rev 47478)
+++ branches/soc-2012-fried_chicken/intern/cycles/blender/blender_shader.cpp	2012-06-05 20:07:01 UTC (rev 47479)
@@ -261,7 +261,11 @@
 		case BL::ShaderNode::type_BSDF_DIFFUSE: {
 			node = new DiffuseBsdfNode();
 			break;
-		}
+        }
+        case BL::ShaderNode::type_MYBSDF_DIFFUSE: {
+            node = new MYBsdfNode();
+            break;
+        }
 		case BL::ShaderNode::type_BSDF_GLOSSY: {
 			BL::ShaderNodeBsdfGlossy b_glossy_node(b_node);
 			GlossyBsdfNode *glossy = new GlossyBsdfNode();

Modified: branches/soc-2012-fried_chicken/intern/cycles/kernel/svm/svm.h
===================================================================
--- branches/soc-2012-fried_chicken/intern/cycles/kernel/svm/svm.h	2012-06-05 19:39:12 UTC (rev 47478)
+++ branches/soc-2012-fried_chicken/intern/cycles/kernel/svm/svm.h	2012-06-05 20:07:01 UTC (rev 47479)
@@ -186,6 +186,9 @@
 			case NODE_CLOSURE_BSDF:
 				svm_node_closure_bsdf(kg, sd, stack, node, randb, path_flag);
 				break;
+            case CLOSURE_MYBSDF_ID:
+                svm_node_closure_bsdf(kg, sd, stack, node, randb, path_flag);
+                break;
 			case NODE_CLOSURE_EMISSION:
 				svm_node_closure_emission(sd, stack, node);
 				break;

Modified: branches/soc-2012-fried_chicken/intern/cycles/kernel/svm/svm_bsdf.h
===================================================================
--- branches/soc-2012-fried_chicken/intern/cycles/kernel/svm/svm_bsdf.h	2012-06-05 19:39:12 UTC (rev 47478)
+++ branches/soc-2012-fried_chicken/intern/cycles/kernel/svm/svm_bsdf.h	2012-06-05 20:07:01 UTC (rev 47479)
@@ -38,6 +38,9 @@
 		case CLOSURE_BSDF_DIFFUSE_ID:
 			label = bsdf_diffuse_sample(sd, sc, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf);
 			break;
+        case CLOSURE_MYBSDF_ID:
+            label = bsdf_diffuse_sample(sd, sc, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf);
+            break;
 #ifdef __SVM__
 		case CLOSURE_BSDF_OREN_NAYAR_ID:
 			label = bsdf_oren_nayar_sample(sd, sc, randu, randv, eval, omega_in, &domega_in->dx, &domega_in->dy, pdf);
@@ -94,6 +97,9 @@
 			case CLOSURE_BSDF_DIFFUSE_ID:
 				eval = bsdf_diffuse_eval_reflect(sd, sc, sd->I, omega_in, pdf);
 				break;
+            case CLOSURE_MYBSDF_ID:
+                eval = bsdf_diffuse_eval_reflect(sd, sc, sd->I, omega_in, pdf);
+                break;
 #ifdef __SVM__
 			case CLOSURE_BSDF_OREN_NAYAR_ID:
 				eval = bsdf_oren_nayar_eval_reflect(sd, sc, sd->I, omega_in, pdf);
@@ -143,6 +149,9 @@
 			case CLOSURE_BSDF_DIFFUSE_ID:
 				eval = bsdf_diffuse_eval_transmit(sd, sc, sd->I, omega_in, pdf);
 				break;
+            case CLOSURE_MYBSDF_ID:
+                eval = bsdf_diffuse_eval_transmit(sd, sc, sd->I, omega_in, pdf);
+                break;
 #ifdef __SVM__
 			case CLOSURE_BSDF_OREN_NAYAR_ID:
 				eval = bsdf_oren_nayar_eval_transmit(sd, sc, sd->I, omega_in, pdf);
@@ -197,6 +206,9 @@
 		case CLOSURE_BSDF_DIFFUSE_ID:
 			bsdf_diffuse_blur(sc, roughness);
 			break;
+        case CLOSURE_MYBSDF_ID:
+            bsdf_diffuse_blur(sc, roughness);
+            break;
 #ifdef __SVM__
 		case CLOSURE_BSDF_OREN_NAYAR_ID:
 			bsdf_oren_nayar_blur(sc, roughness);

Modified: branches/soc-2012-fried_chicken/intern/cycles/kernel/svm/svm_closure.h
===================================================================
--- branches/soc-2012-fried_chicken/intern/cycles/kernel/svm/svm_closure.h	2012-06-05 19:39:12 UTC (rev 47478)
+++ branches/soc-2012-fried_chicken/intern/cycles/kernel/svm/svm_closure.h	2012-06-05 20:07:01 UTC (rev 47479)
@@ -88,6 +88,17 @@
 				bsdf_oren_nayar_setup(sd, sc, roughness);
 			break;
 		}
+        case CLOSURE_MYBSDF_ID: {
+            ShaderClosure *sc = svm_node_closure_get(sd);
+            svm_node_closure_set_mix_weight(sc, mix_weight);
+
+            float roughness = param1;
+            if(roughness == 0.0f)
+                bsdf_diffuse_setup(sd, sc);
+            else
+                bsdf_oren_nayar_setup(sd, sc, roughness);
+            break;
+        }
 		case CLOSURE_BSDF_TRANSLUCENT_ID: {
 			ShaderClosure *sc = svm_node_closure_get(sd);
 			svm_node_closure_set_mix_weight(sc, mix_weight);

Modified: branches/soc-2012-fried_chicken/intern/cycles/kernel/svm/svm_types.h
===================================================================
--- branches/soc-2012-fried_chicken/intern/cycles/kernel/svm/svm_types.h	2012-06-05 19:39:12 UTC (rev 47478)
+++ branches/soc-2012-fried_chicken/intern/cycles/kernel/svm/svm_types.h	2012-06-05 20:07:01 UTC (rev 47479)
@@ -288,6 +288,7 @@
 	CLOSURE_BSDF_ID,
 
 	CLOSURE_BSDF_DIFFUSE_ID,
+    CLOSURE_MYBSDF_ID, //diffuse clone, added for learning
 	CLOSURE_BSDF_OREN_NAYAR_ID,
 
 	CLOSURE_BSDF_REFLECTION_ID,

Modified: branches/soc-2012-fried_chicken/intern/cycles/render/nodes.cpp
===================================================================
--- branches/soc-2012-fried_chicken/intern/cycles/render/nodes.cpp	2012-06-05 19:39:12 UTC (rev 47478)
+++ branches/soc-2012-fried_chicken/intern/cycles/render/nodes.cpp	2012-06-05 20:07:01 UTC (rev 47479)
@@ -1227,6 +1227,25 @@
 	compiler.add(this, "node_diffuse_bsdf");
 }
 
+/* START test bsdf closure */
+MYBsdfNode::MYBsdfNode()
+{
+    closure = CLOSURE_MYBSDF_ID;
+    add_input("Roughness", SHADER_SOCKET_FLOAT, 0.0f);
+}
+
+void MYBsdfNode::compile(SVMCompiler& compiler)
+{
+    BsdfNode::compile(compiler, input("Roughness"), NULL);
+}
+
+void MYBsdfNode::compile(OSLCompiler& compiler)
+{
+    compiler.add(this, "node_mydiffuse_bsdf");
+}
+
+/* END test bsdf closure */
+
 /* Translucent BSDF Closure */
 
 TranslucentBsdfNode::TranslucentBsdfNode()

Modified: branches/soc-2012-fried_chicken/intern/cycles/render/nodes.h
===================================================================
--- branches/soc-2012-fried_chicken/intern/cycles/render/nodes.h	2012-06-05 19:39:12 UTC (rev 47478)
+++ branches/soc-2012-fried_chicken/intern/cycles/render/nodes.h	2012-06-05 20:07:01 UTC (rev 47479)
@@ -197,6 +197,13 @@
 	SHADER_NODE_CLASS(DiffuseBsdfNode)
 };
 
+/* Test Node for learning purposes. Copy of bsdf node */
+class MYBsdfNode : public BsdfNode {
+public:
+    SHADER_NODE_CLASS(MYBsdfNode)
+};
+
+
 class TranslucentBsdfNode : public BsdfNode {
 public:
 	SHADER_NODE_CLASS(TranslucentBsdfNode)

Modified: branches/soc-2012-fried_chicken/source/blender/blenkernel/BKE_node.h
===================================================================
--- branches/soc-2012-fried_chicken/source/blender/blenkernel/BKE_node.h	2012-06-05 19:39:12 UTC (rev 47478)
+++ branches/soc-2012-fried_chicken/source/blender/blenkernel/BKE_node.h	2012-06-05 20:07:01 UTC (rev 47479)
@@ -528,6 +528,7 @@
 #define SH_NODE_BRIGHTCONTRAST			165
 #define SH_NODE_LIGHT_FALLOFF			166
 #define SH_NODE_OBJECT_INFO				167
+#define SH_NODE_MYBSDF_DIFFUSE          168 //Diffuse copy node added for test purposes
 
 /* custom defines options for Material node */
 #define SH_NODE_MAT_DIFF   1

Modified: branches/soc-2012-fried_chicken/source/blender/blenkernel/intern/node.c
===================================================================
--- branches/soc-2012-fried_chicken/source/blender/blenkernel/intern/node.c	2012-06-05 19:39:12 UTC (rev 47478)
+++ branches/soc-2012-fried_chicken/source/blender/blenkernel/intern/node.c	2012-06-05 20:07:01 UTC (rev 47479)
@@ -1959,6 +1959,7 @@
 
 	register_node_type_sh_background(ttype);
 	register_node_type_sh_bsdf_diffuse(ttype);
+    register_node_type_sh_mybsdf_diffuse(ttype);//Test node
 	register_node_type_sh_bsdf_glossy(ttype);
 	register_node_type_sh_bsdf_glass(ttype);
 	register_node_type_sh_bsdf_translucent(ttype);

Modified: branches/soc-2012-fried_chicken/source/blender/makesrna/intern/rna_nodetree_types.h
===================================================================
--- branches/soc-2012-fried_chicken/source/blender/makesrna/intern/rna_nodetree_types.h	2012-06-05 19:39:12 UTC (rev 47478)
+++ branches/soc-2012-fried_chicken/source/blender/makesrna/intern/rna_nodetree_types.h	2012-06-05 20:07:01 UTC (rev 47479)
@@ -68,6 +68,8 @@
 DefNode( ShaderNode,     SH_NODE_BACKGROUND,         0,                      "BACKGROUND",         Background,       "Background",        ""       )
 DefNode( ShaderNode,     SH_NODE_HOLDOUT,            0,                      "HOLDOUT",            Holdout,          "Holdout",           ""       )
 DefNode( ShaderNode,     SH_NODE_BSDF_DIFFUSE,       0,                      "BSDF_DIFFUSE",       BsdfDiffuse,      "Diffuse Bsdf",      ""       )
+//Custom node for learning purposes
+DefNode( ShaderNode,     SH_NODE_MYBSDF_DIFFUSE,     0,                      "MYBSDF_DIFFUSE",     MYBSDFDiffuse,    "CustomNode",        ""       )
 DefNode( ShaderNode,     SH_NODE_BSDF_GLOSSY,        def_glossy,             "BSDF_GLOSSY",        BsdfGlossy,       "Glossy Bsdf",       ""       )
 DefNode( ShaderNode,     SH_NODE_BSDF_GLASS,         def_glossy,             "BSDF_GLASS",         BsdfGlass,        "Glass Bsdf",        ""       )
 DefNode( ShaderNode,     SH_NODE_BSDF_TRANSLUCENT,   0,                      "BSDF_TRANSLUCENT",   BsdfTranslucent,  "Translucent Bsdf",  ""       )

Modified: branches/soc-2012-fried_chicken/source/blender/nodes/NOD_shader.h
===================================================================
--- branches/soc-2012-fried_chicken/source/blender/nodes/NOD_shader.h	2012-06-05 19:39:12 UTC (rev 47478)
+++ branches/soc-2012-fried_chicken/source/blender/nodes/NOD_shader.h	2012-06-05 20:07:01 UTC (rev 47479)
@@ -81,6 +81,7 @@
 
 void register_node_type_sh_background(struct bNodeTreeType *ttype);
 void register_node_type_sh_bsdf_diffuse(struct bNodeTreeType *ttype);
+void register_node_type_sh_mybsdf_diffuse(struct bNodeTreeType *ttype);//Copy of diffuse node added for testing
 void register_node_type_sh_bsdf_glossy(struct bNodeTreeType *ttype);
 void register_node_type_sh_bsdf_glass(struct bNodeTreeType *ttype);
 void register_node_type_sh_bsdf_translucent(struct bNodeTreeType *ttype);

Modified: branches/soc-2012-fried_chicken/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c
===================================================================

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list