[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