[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [41650] trunk/blender/source/blender: Nodes: add cycles shader nodes, these will only be available to render engines

Brecht Van Lommel brechtvanlommel at pandora.be
Tue Nov 8 12:38:16 CET 2011


Revision: 41650
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=41650
Author:   blendix
Date:     2011-11-08 11:38:16 +0000 (Tue, 08 Nov 2011)
Log Message:
-----------
Nodes: add cycles shader nodes, these will only be available to render engines
that use the new shading nodes system. Documentation:

http://wiki.blender.org/index.php/Doc:2.6/Manual/Render/Cycles/Nodes

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_node.h
    trunk/blender/source/blender/blenkernel/intern/node.c
    trunk/blender/source/blender/editors/object/object_add.c
    trunk/blender/source/blender/editors/space_node/drawnode.c
    trunk/blender/source/blender/editors/space_node/node_edit.c
    trunk/blender/source/blender/gpu/intern/gpu_shader_material.glsl
    trunk/blender/source/blender/gpu/intern/gpu_shader_material.glsl.c
    trunk/blender/source/blender/makesdna/DNA_node_types.h
    trunk/blender/source/blender/makesrna/intern/rna_nodetree.c
    trunk/blender/source/blender/makesrna/intern/rna_nodetree_types.h
    trunk/blender/source/blender/nodes/CMakeLists.txt
    trunk/blender/source/blender/nodes/NOD_shader.h
    trunk/blender/source/blender/nodes/shader/node_shader_tree.c
    trunk/blender/source/blender/nodes/shader/node_shader_util.c
    trunk/blender/source/blender/nodes/shader/node_shader_util.h
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_geom.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_mapping.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_math.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_mixRgb.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_rgb.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_valToRgb.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_value.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_vectMath.c

Added Paths:
-----------
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_add_shader.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_attribute.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_background.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_anisotropic.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_diffuse.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_glass.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_glossy.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_translucent.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_transparent.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_bsdf_velvet.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_emission.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_fresnel.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_geometry.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_holdout.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_layer_weight.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_light_path.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_mix_shader.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_output_lamp.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_output_material.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_output_world.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_tex_coord.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_tex_environment.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_tex_gradient.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_tex_image.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_tex_magic.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_tex_musgrave.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_tex_noise.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_tex_sky.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_tex_voronoi.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_tex_wave.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_volume_isotropic.c
    trunk/blender/source/blender/nodes/shader/nodes/node_shader_volume_transparent.c

Modified: trunk/blender/source/blender/blenkernel/BKE_node.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_node.h	2011-11-08 11:15:40 UTC (rev 41649)
+++ trunk/blender/source/blender/blenkernel/BKE_node.h	2011-11-08 11:38:16 UTC (rev 41650)
@@ -456,6 +456,40 @@
 #define SH_NODE_HUE_SAT		122
 #define NODE_DYNAMIC		123
 
+#define SH_NODE_OUTPUT_MATERIAL			124
+#define SH_NODE_OUTPUT_WORLD			125
+#define SH_NODE_OUTPUT_LAMP				126
+#define SH_NODE_FRESNEL					127
+#define SH_NODE_MIX_SHADER				128
+#define SH_NODE_ATTRIBUTE				129
+#define SH_NODE_BACKGROUND				130
+#define SH_NODE_BSDF_ANISOTROPIC		131
+#define SH_NODE_BSDF_DIFFUSE			132
+#define SH_NODE_BSDF_GLOSSY				133
+#define SH_NODE_BSDF_GLASS				134
+#define SH_NODE_BSDF_TRANSLUCENT		137
+#define SH_NODE_BSDF_TRANSPARENT		138
+#define SH_NODE_BSDF_VELVET				139
+#define SH_NODE_EMISSION				140
+#define SH_NODE_NEW_GEOMETRY			141
+#define SH_NODE_LIGHT_PATH				142
+#define SH_NODE_TEX_IMAGE				143
+#define SH_NODE_TEX_SKY					145
+#define SH_NODE_TEX_GRADIENT			146
+#define SH_NODE_TEX_VORONOI				147
+#define SH_NODE_TEX_MAGIC				148
+#define SH_NODE_TEX_WAVE				149
+#define SH_NODE_TEX_NOISE				150
+#define SH_NODE_TEX_MUSGRAVE			152
+#define SH_NODE_TEX_COORD				155
+#define SH_NODE_ADD_SHADER				156
+#define SH_NODE_TEX_ENVIRONMENT			157
+#define SH_NODE_OUTPUT_TEXTURE			158
+#define SH_NODE_HOLDOUT					159
+#define SH_NODE_LAYER_WEIGHT			160
+#define SH_NODE_VOLUME_TRANSPARENT		161
+#define SH_NODE_VOLUME_ISOTROPIC		162
+
 /* custom defines options for Material node */
 #define SH_NODE_MAT_DIFF   1
 #define SH_NODE_MAT_SPEC   2

Modified: trunk/blender/source/blender/blenkernel/intern/node.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/node.c	2011-11-08 11:15:40 UTC (rev 41649)
+++ trunk/blender/source/blender/blenkernel/intern/node.c	2011-11-08 11:38:16 UTC (rev 41650)
@@ -1865,13 +1865,18 @@
 	register_node_type_frame(ntypelist);
 	
 	register_node_type_sh_group(ntypelist);
-//	register_node_type_sh_forloop(ntypelist);
-//	register_node_type_sh_whileloop(ntypelist);
-	
+	//register_node_type_sh_forloop(ntypelist);
+	//register_node_type_sh_whileloop(ntypelist);
+
 	register_node_type_sh_output(ntypelist);
+	register_node_type_sh_material(ntypelist);
+	register_node_type_sh_camera(ntypelist);
+	register_node_type_sh_value(ntypelist);
+	register_node_type_sh_rgb(ntypelist);
 	register_node_type_sh_mix_rgb(ntypelist);
 	register_node_type_sh_valtorgb(ntypelist);
 	register_node_type_sh_rgbtobw(ntypelist);
+	register_node_type_sh_texture(ntypelist);
 	register_node_type_sh_normal(ntypelist);
 	register_node_type_sh_geom(ntypelist);
 	register_node_type_sh_mapping(ntypelist);
@@ -1880,17 +1885,47 @@
 	register_node_type_sh_math(ntypelist);
 	register_node_type_sh_vect_math(ntypelist);
 	register_node_type_sh_squeeze(ntypelist);
-	register_node_type_sh_camera(ntypelist);
-	register_node_type_sh_material(ntypelist);
+	//register_node_type_sh_dynamic(ntypelist);
 	register_node_type_sh_material_ext(ntypelist);
-	register_node_type_sh_value(ntypelist);
-	register_node_type_sh_rgb(ntypelist);
-	register_node_type_sh_texture(ntypelist);
-//	register_node_type_sh_dynamic(ntypelist);
 	register_node_type_sh_invert(ntypelist);
 	register_node_type_sh_seprgb(ntypelist);
 	register_node_type_sh_combrgb(ntypelist);
 	register_node_type_sh_hue_sat(ntypelist);
+
+	register_node_type_sh_attribute(ntypelist);
+	register_node_type_sh_geometry(ntypelist);
+	register_node_type_sh_light_path(ntypelist);
+	register_node_type_sh_fresnel(ntypelist);
+	register_node_type_sh_layer_weight(ntypelist);
+	register_node_type_sh_tex_coord(ntypelist);
+
+	register_node_type_sh_background(ntypelist);
+	register_node_type_sh_bsdf_diffuse(ntypelist);
+	register_node_type_sh_bsdf_glossy(ntypelist);
+	register_node_type_sh_bsdf_glass(ntypelist);
+	register_node_type_sh_bsdf_translucent(ntypelist);
+	register_node_type_sh_bsdf_transparent(ntypelist);
+	register_node_type_sh_bsdf_velvet(ntypelist);
+	register_node_type_sh_emission(ntypelist);
+	register_node_type_sh_holdout(ntypelist);
+	//register_node_type_sh_volume_transparent(ntypelist);
+	//register_node_type_sh_volume_isotropic(ntypelist);
+	register_node_type_sh_mix_shader(ntypelist);
+	register_node_type_sh_add_shader(ntypelist);
+
+	register_node_type_sh_output_lamp(ntypelist);
+	register_node_type_sh_output_material(ntypelist);
+	register_node_type_sh_output_world(ntypelist);
+
+	register_node_type_sh_tex_image(ntypelist);
+	register_node_type_sh_tex_environment(ntypelist);
+	register_node_type_sh_tex_sky(ntypelist);
+	register_node_type_sh_tex_noise(ntypelist);
+	register_node_type_sh_tex_wave(ntypelist);
+	register_node_type_sh_tex_voronoi(ntypelist);
+	register_node_type_sh_tex_musgrave(ntypelist);
+	register_node_type_sh_tex_gradient(ntypelist);
+	register_node_type_sh_tex_magic(ntypelist);
 }
 
 static void registerTextureNodes(ListBase *ntypelist)

Modified: trunk/blender/source/blender/editors/object/object_add.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_add.c	2011-11-08 11:15:40 UTC (rev 41649)
+++ trunk/blender/source/blender/editors/object/object_add.c	2011-11-08 11:38:16 UTC (rev 41650)
@@ -78,6 +78,7 @@
 #include "BKE_particle.h"
 #include "BKE_report.h"
 #include "BKE_sca.h"
+#include "BKE_scene.h"
 #include "BKE_speaker.h"
 #include "BKE_texture.h"
 
@@ -92,6 +93,7 @@
 #include "ED_curve.h"
 #include "ED_mball.h"
 #include "ED_mesh.h"
+#include "ED_node.h"
 #include "ED_object.h"
 #include "ED_render.h"
 #include "ED_screen.h"
@@ -322,6 +324,7 @@
 	/* more editor stuff */
 	ED_object_base_init_transform(C, BASACT, loc, rot);
 
+	DAG_id_type_tag(bmain, ID_OB);
 	DAG_scene_sort(bmain, scene);
 	ED_render_id_flush_update(bmain, ob->data);
 
@@ -700,7 +703,9 @@
 
 static int object_lamp_add_exec(bContext *C, wmOperator *op)
 {
+	Scene *scene= CTX_data_scene(C);
 	Object *ob;
+	Lamp *la;
 	int type= RNA_enum_get(op->ptr, "type");
 	int enter_editmode;
 	unsigned int layer;
@@ -711,9 +716,16 @@
 		return OPERATOR_CANCELLED;
 
 	ob= ED_object_add_type(C, OB_LAMP, loc, rot, FALSE, layer);
-	((Lamp*)ob->data)->type= type;
-	rename_id((ID *)ob, get_lamp_defname(type));
-	rename_id((ID *)ob->data, get_lamp_defname(type));
+	la= (Lamp*)ob->data;
+
+	la->type= type;
+	rename_id(&ob->id, get_lamp_defname(type));
+	rename_id(&la->id, get_lamp_defname(type));
+
+	if(scene_use_new_shading_nodes(scene)) {
+		ED_node_shader_default(scene, &la->id);
+		la->use_nodes= 1;
+	}
 	
 	return OPERATOR_FINISHED;
 }

Modified: trunk/blender/source/blender/editors/space_node/drawnode.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/drawnode.c	2011-11-08 11:15:40 UTC (rev 41649)
+++ trunk/blender/source/blender/editors/space_node/drawnode.c	2011-11-08 11:38:16 UTC (rev 41650)
@@ -994,6 +994,54 @@
 	}
 }
 
+static void node_shader_buts_attribute(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+	uiItemR(layout, ptr, "attribute_name", 0, "Name", ICON_NONE);
+}
+
+static void node_shader_buts_tex_image(uiLayout *layout, bContext *C, PointerRNA *ptr)
+{
+	//uiItemR(layout, ptr, "image", 0, "", ICON_NONE);
+	uiTemplateID(layout, C, ptr, "image", NULL, "IMAGE_OT_open", NULL);
+	uiItemR(layout, ptr, "color_space", 0, "", ICON_NONE);
+}
+
+static void node_shader_buts_tex_sky(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+	uiItemR(layout, ptr, "sun_direction", 0, "", ICON_NONE);
+	uiItemR(layout, ptr, "turbidity", 0, NULL, ICON_NONE);
+}
+
+static void node_shader_buts_tex_gradient(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+	uiItemR(layout, ptr, "gradient_type", 0, "", ICON_NONE);
+}
+
+static void node_shader_buts_tex_magic(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+	uiItemR(layout, ptr, "turbulence_depth", 0, NULL, ICON_NONE);
+}
+
+static void node_shader_buts_tex_wave(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+	uiItemR(layout, ptr, "wave_type", 0, "", ICON_NONE);
+}
+
+static void node_shader_buts_tex_musgrave(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+	uiItemR(layout, ptr, "musgrave_type", 0, "", ICON_NONE);
+}
+
+static void node_shader_buts_tex_voronoi(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+	uiItemR(layout, ptr, "coloring", 0, "", ICON_NONE);
+}
+
+static void node_shader_buts_glossy(uiLayout *layout, bContext *UNUSED(C), PointerRNA *ptr)
+{
+	uiItemR(layout, ptr, "distribution", 0, "", ICON_NONE);
+}
+
 static void node_shader_buts_dynamic(uiLayout *layout, bContext *C, PointerRNA *ptr)
 { 
 	Main *bmain= CTX_data_main(C);
@@ -1080,6 +1128,37 @@
 		case SH_NODE_GEOMETRY:
 			ntype->uifunc= node_shader_buts_geometry;
 			break;
+		case SH_NODE_ATTRIBUTE:
+			ntype->uifunc= node_shader_buts_attribute;
+			break;
+		case SH_NODE_TEX_SKY:
+			ntype->uifunc= node_shader_buts_tex_sky;
+			break;
+		case SH_NODE_TEX_IMAGE:
+			ntype->uifunc= node_shader_buts_tex_image;
+			break;
+		case SH_NODE_TEX_ENVIRONMENT:
+			ntype->uifunc= node_shader_buts_tex_image;
+			break;
+		case SH_NODE_TEX_GRADIENT:
+			ntype->uifunc= node_shader_buts_tex_gradient;
+			break;
+		case SH_NODE_TEX_MAGIC:
+			ntype->uifunc= node_shader_buts_tex_magic;
+			break;
+		case SH_NODE_TEX_WAVE:
+			ntype->uifunc= node_shader_buts_tex_wave;
+			break;
+		case SH_NODE_TEX_MUSGRAVE:
+			ntype->uifunc= node_shader_buts_tex_musgrave;
+			break;
+		case SH_NODE_TEX_VORONOI:
+			ntype->uifunc= node_shader_buts_tex_voronoi;
+			break;
+		case SH_NODE_BSDF_GLOSSY:
+		case SH_NODE_BSDF_GLASS:
+			ntype->uifunc= node_shader_buts_glossy;
+			break;
 		case NODE_DYNAMIC:
 			ntype->uifunc= node_shader_buts_dynamic;
 			break;

Modified: trunk/blender/source/blender/editors/space_node/node_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_edit.c	2011-11-08 11:15:40 UTC (rev 41649)
+++ trunk/blender/source/blender/editors/space_node/node_edit.c	2011-11-08 11:38:16 UTC (rev 41650)
@@ -61,6 +61,7 @@
 #include "BKE_material.h"
 #include "BKE_modifier.h"
 #include "BKE_paint.h"
+#include "BKE_scene.h"
 #include "BKE_screen.h"
 #include "BKE_texture.h"
 #include "BKE_report.h"
@@ -269,13 +270,14 @@
 

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list