diff options
Diffstat (limited to 'source/blender')
30 files changed, 231 insertions, 105 deletions
diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index 5b1a80186a6..ae7013ae293 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -128,7 +128,7 @@ typedef struct bNodeType { #define NODE_CLASS_OP_DYNAMIC 11 #define NODE_CLASS_PATTERN 12 #define NODE_CLASS_TEXTURE 13 -#define NODE_CLASS_CLOSURE 14 +#define NODE_CLASS_SHADER 14 /* bNodeSocketType flag */ #define SOCK_NO_VALUE 1 @@ -282,7 +282,7 @@ struct ShadeResult; #define SH_NODE_OUTPUT_WORLD 125 #define SH_NODE_OUTPUT_LAMP 126 #define SH_NODE_FRESNEL 127 -#define SH_NODE_MIX_CLOSURE 128 +#define SH_NODE_MIX_SHADER 128 #define SH_NODE_ATTRIBUTE 129 #define SH_NODE_BACKGROUND 130 #define SH_NODE_BSDF_ANISOTROPIC 131 @@ -308,10 +308,11 @@ struct ShadeResult; #define SH_NODE_TEX_STUCCI 153 #define SH_NODE_TEX_DISTNOISE 154 #define SH_NODE_TEX_COORD 155 -#define SH_NODE_ADD_CLOSURE 156 +#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_BLEND_WEIGHT 160 /* custom defines options for Material node */ #define SH_NODE_MAT_DIFF 1 diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index a36032f137e..49cda7e8736 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -3122,7 +3122,7 @@ static void gpu_from_node_stack(ListBase *sockets, bNodeStack **ns, GPUNodeStack gs[i].type= GPU_VEC3; else if (sock->type == SOCK_RGBA) gs[i].type= GPU_VEC4; - else if (sock->type == SOCK_CLOSURE) + else if (sock->type == SOCK_SHADER) gs[i].type= GPU_VEC4; else gs[i].type= GPU_NONE; @@ -3219,9 +3219,9 @@ static void ntreeGPUOutputLink(GPUMaterial *mat, bNode *node, bNodeStack *nsout[ if(nsout[i]->data) { GPUNodeLink *result= nsout[i]->data; - /* for closures, we can output the color directly, for others we + /* for shader sockets, we can output the color directly, for others we apply diffuse shading so we don't have flat colors */ - if(sock->type != SOCK_CLOSURE) + if(sock->type != SOCK_SHADER) GPU_link(mat, "node_bsdf_diffuse", result, GPU_builtin(GPU_VIEW_NORMAL), &result); GPU_material_output_link(mat, result); @@ -3690,6 +3690,7 @@ static void registerShaderNodes(ListBase *ntypelist) register_node_type_sh_geometry(ntypelist); register_node_type_sh_light_path(ntypelist); register_node_type_sh_fresnel(ntypelist); + register_node_type_sh_blend_weight(ntypelist); register_node_type_sh_tex_coord(ntypelist); register_node_type_sh_background(ntypelist); @@ -3700,8 +3701,8 @@ static void registerShaderNodes(ListBase *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_mix_closure(ntypelist); - register_node_type_sh_add_closure(ntypelist); + register_node_type_sh_mix_shader(ntypelist); + register_node_type_sh_add_shader(ntypelist); register_node_type_sh_holdout(ntypelist); register_node_type_sh_output_lamp(ntypelist); diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index f11da97a1a0..44dfdbddfa1 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -2103,6 +2103,44 @@ static void lib_nodetree_do_versions_group(bNodeTree *ntree) } } +static void ntree_tmp_cycles_version_patch(bNodeTree *ntree) +{ + bNode *node; + bNodeSocket *sock; + + for(node=ntree->nodes.first; node; node=node->next) { + if(node->type == SH_NODE_FRESNEL) { + node->type = SH_NODE_BLEND_WEIGHT; + + for(sock=node->inputs.first; sock; sock=sock->next) + if(strcmp(sock->name, "Fresnel") == 0) + strcpy(sock->name, "Blend"); + + for(sock=node->outputs.first; sock; sock=sock->next) + if(strcmp(sock->name, "Fac") == 0) + strcpy(sock->name, "Fresnel"); + } + else { + for(sock=node->inputs.first; sock; sock=sock->next) { + if(strcmp(sock->name, "Closure1") == 0) + strcpy(sock->name, "Shader1"); + + if(strcmp(sock->name, "Closure2") == 0) + strcpy(sock->name, "Shader2"); + + if(strcmp(sock->name, "Fresnel") == 0) { + strcpy(sock->name, "IOR"); + sock->ns.vec[0] = 1.0f/MAX2(1.0f - sock->ns.vec[0], 1e-5f); + } + } + + for(sock=node->outputs.first; sock; sock=sock->next) + if(strcmp(sock->name, "Closure") == 0) + strcpy(sock->name, "Shader"); + } + } +} + /* verify types for nodes and groups, all data has to be read */ /* open = 0: appending/linking, open = 1: open new file (need to clean out dynamic * typedefs*/ @@ -2123,6 +2161,7 @@ static void lib_verify_nodetree(Main *main, int UNUSED(open)) /* now create the own typeinfo structs an verify nodes */ /* here we still assume no groups in groups */ for(ntree= main->nodetree.first; ntree; ntree= ntree->id.next) { + ntree_tmp_cycles_version_patch(ntree); ntreeVerifyTypes(ntree); /* internal nodes, no groups! */ } @@ -2142,8 +2181,10 @@ static void lib_verify_nodetree(Main *main, int UNUSED(open)) } /* now verify all types in material trees, groups are set OK now */ for(ma= main->mat.first; ma; ma= ma->id.next) { - if(ma->nodetree) + if(ma->nodetree) { + ntree_tmp_cycles_version_patch(ma->nodetree); lib_nodetree_do_versions_group(ma->nodetree); + } } /* and scene trees */ for(sce= main->scene.first; sce; sce= sce->id.next) { @@ -2155,7 +2196,21 @@ static void lib_verify_nodetree(Main *main, int UNUSED(open)) if(tx->nodetree) lib_nodetree_do_versions_group(tx->nodetree); } - + /* and world trees */ + for(wrld= main->world.first; wrld; wrld= wrld->id.next) { + if(wrld->nodetree) { + ntree_tmp_cycles_version_patch(wrld->nodetree); + lib_nodetree_do_versions_group(wrld->nodetree); + } + } + /* and lamp trees */ + for(la= main->lamp.first; la; la= la->id.next) { + if(la->nodetree) { + ntree_tmp_cycles_version_patch(la->nodetree); + lib_nodetree_do_versions_group(la->nodetree); + } + } + for(ntree= main->nodetree.first; ntree; ntree= ntree->id.next) ntree->flag &= ~NTREE_DO_VERSIONS; } diff --git a/source/blender/editors/interface/interface_node.c b/source/blender/editors/interface/interface_node.c index 5a1b4c0a8b8..39d3755af51 100644 --- a/source/blender/editors/interface/interface_node.c +++ b/source/blender/editors/interface/interface_node.c @@ -149,7 +149,7 @@ static void ui_node_sock_name(bNodeSocket *sock, char name[UI_MAX_NAME_STR]) !(node->typeinfo->flag & NODE_OPTIONS)) BLI_snprintf(name, UI_MAX_NAME_STR, "%s | %s", name, sock->link->fromsock->name); } - else if(sock->type == SOCK_CLOSURE) + else if(sock->type == SOCK_SHADER) BLI_strncpy(name, "None", UI_MAX_NAME_STR); else BLI_strncpy(name, "Default", UI_MAX_NAME_STR); @@ -252,7 +252,7 @@ static void ui_node_link(bContext *C, void *arg_p, void *event_p) static int ui_compatible_sockets(int typeA, int typeB) { - if(typeA == SOCK_CLOSURE || typeB == SOCK_CLOSURE) + if(typeA == SOCK_SHADER || typeB == SOCK_SHADER) return (typeA == typeB); return (typeA == typeB); @@ -396,7 +396,7 @@ static void ui_template_node_link_menu(bContext *C, uiLayout *layout, void *but_ ui_node_menu_column(bmain, arg, split, "Input", NODE_CLASS_INPUT); ui_node_menu_column(bmain, arg, split, "Output", NODE_CLASS_OUTPUT); - ui_node_menu_column(bmain, arg, split, "Closure", NODE_CLASS_CLOSURE); + ui_node_menu_column(bmain, arg, split, "Shader", NODE_CLASS_SHADER); ui_node_menu_column(bmain, arg, split, "Texture", NODE_CLASS_TEXTURE); ui_node_menu_column(bmain, arg, split, "Color", NODE_CLASS_OP_COLOR); ui_node_menu_column(bmain, arg, split, "Vector", NODE_CLASS_OP_VECTOR); @@ -438,7 +438,7 @@ void uiTemplateNodeLink(uiLayout *layout, bNodeTree *ntree, bNode *node, bNodeSo uiBlockSetCurLayout(block, layout); - if(sock->link || sock->type == SOCK_CLOSURE || (stype && (stype->flag & SOCK_NO_VALUE))) { + if(sock->link || sock->type == SOCK_SHADER || (stype && (stype->flag & SOCK_NO_VALUE))) { char name[UI_MAX_NAME_STR]; ui_node_sock_name(sock, name); but= uiDefMenuBut(block, ui_template_node_link_menu, NULL, name, 0, 0, UI_UNIT_X*4, UI_UNIT_Y, ""); @@ -543,7 +543,7 @@ static void ui_node_draw_input(uiLayout *layout, bContext *C, bNodeTree *ntree, bNodeSocketType *stype = ui_node_input_socket_type(node, input); /* input not linked, show value */ - if(input->type != SOCK_CLOSURE && (!stype || !(stype->flag & SOCK_NO_VALUE))) { + if(input->type != SOCK_SHADER && (!stype || !(stype->flag & SOCK_NO_VALUE))) { if(input->type == SOCK_VECTOR) { row = uiLayoutRow(split, 0); col = uiLayoutColumn(row, 0); diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index faec823a314..8f243cc659f 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -882,7 +882,7 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN socket_circle_draw(sock, socket_size); if(node->block && sock->link==NULL) { - if((stype && stype->flag & SOCK_NO_VALUE) || sock->type==SOCK_CLOSURE) { + if((stype && stype->flag & SOCK_NO_VALUE) || sock->type==SOCK_SHADER) { uiDefBut(node->block, LABEL, 0, sock->name, (short)(sock->locx+7), (short)(sock->locy-9.0f), (short)(node->width-NODE_DY), NODE_DY, NULL, 0, 0, 0, 0, ""); } diff --git a/source/blender/editors/space_node/node_edit.c b/source/blender/editors/space_node/node_edit.c index 5b19a3b1509..ca59a9ed6a9 100644 --- a/source/blender/editors/space_node/node_edit.c +++ b/source/blender/editors/space_node/node_edit.c @@ -274,7 +274,7 @@ void ED_node_shader_default(ID *id) bNode *in, *out; bNodeSocket *fromsock, *tosock; bNodeTree *ntree; - int output_type, closure_type; + int output_type, shader_type; ntree= ntreeAddTree("Shader Nodetree", NTREE_SHADER, FALSE); @@ -282,22 +282,22 @@ void ED_node_shader_default(ID *id) case ID_MA: ((Material*)id)->nodetree = ntree; output_type = SH_NODE_OUTPUT_MATERIAL; - closure_type = SH_NODE_BSDF_DIFFUSE; + shader_type = SH_NODE_BSDF_DIFFUSE; break; case ID_WO: ((World*)id)->nodetree = ntree; output_type = SH_NODE_OUTPUT_WORLD; - closure_type = SH_NODE_BACKGROUND; + shader_type = SH_NODE_BACKGROUND; break; case ID_LA: ((Lamp*)id)->nodetree = ntree; output_type = SH_NODE_OUTPUT_LAMP; - closure_type = SH_NODE_EMISSION; + shader_type = SH_NODE_EMISSION; break; case ID_TE: ((Tex*)id)->nodetree = ntree; output_type = SH_NODE_OUTPUT_TEXTURE; - closure_type = SH_NODE_TEX_CLOUDS; + shader_type = SH_NODE_TEX_CLOUDS; break; default: printf("ED_node_shader_default called on wrong ID type.\n"); @@ -307,7 +307,7 @@ void ED_node_shader_default(ID *id) out= nodeAddNodeType(ntree, output_type, NULL, NULL); out->locx= 300.0f; out->locy= 300.0f; - in= nodeAddNodeType(ntree, closure_type, NULL, NULL); + in= nodeAddNodeType(ntree, shader_type, NULL, NULL); in->locx= 10.0f; in->locy= 300.0f; nodeSetActive(ntree, in); diff --git a/source/blender/editors/space_node/node_header.c b/source/blender/editors/space_node/node_header.c index e31710863d5..63eab2349b2 100644 --- a/source/blender/editors/space_node/node_header.c +++ b/source/blender/editors/space_node/node_header.c @@ -186,13 +186,13 @@ static void node_menu_add(const bContext *C, Menu *menu) uiItemMenuF(layout, "Input", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_INPUT)); uiItemMenuF(layout, "Output", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OUTPUT)); if(scene_use_new_shading_system(scene)) - uiItemMenuF(layout, "Closure", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CLOSURE)); + uiItemMenuF(layout, "Shader", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_SHADER)); + if(scene_use_new_shading_system(scene)) + uiItemMenuF(layout, "Texture", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_TEXTURE)); uiItemMenuF(layout, "Color", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_COLOR)); uiItemMenuF(layout, "Vector", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_VECTOR)); uiItemMenuF(layout, "Convertor", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_CONVERTOR)); uiItemMenuF(layout, "Group", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_GROUP)); - if(scene_use_new_shading_system(scene)) - uiItemMenuF(layout, "Texture", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_TEXTURE)); //uiItemMenuF(layout, "Dynamic", 0, node_auto_add_menu, SET_INT_IN_POINTER(NODE_CLASS_OP_DYNAMIC)); } else if(snode->treetype==NTREE_COMPOSIT) { diff --git a/source/blender/gpu/intern/gpu_shader_material.glsl b/source/blender/gpu/intern/gpu_shader_material.glsl index f2c4533a654..3f3e92dd1f1 100644 --- a/source/blender/gpu/intern/gpu_shader_material.glsl +++ b/source/blender/gpu/intern/gpu_shader_material.glsl @@ -1853,7 +1853,7 @@ void node_bsdf_diffuse(vec4 color, vec3 N, out vec4 result) result = vec4(L*color.rgb, 1.0); } -void node_bsdf_glossy(vec4 color, float roughness, float fresnel, vec3 N, vec3 I, out vec4 result) +void node_bsdf_glossy(vec4 color, float roughness, vec3 N, vec3 I, out vec4 result) { vec3 L = vec3(0.0); @@ -1874,7 +1874,7 @@ void node_bsdf_anisotropic(vec4 color, float roughnessU, float roughnessV, vec3 node_bsdf_diffuse(color, N, result); } -void node_bsdf_glass(vec4 color, float roughness, float fresnel, vec3 N, vec3 I, out vec4 result) +void node_bsdf_glass(vec4 color, float roughness, float ior, vec3 N, vec3 I, out vec4 result) { node_bsdf_diffuse(color, N, result); } @@ -1893,7 +1893,7 @@ void node_bsdf_transparent(vec4 color, out vec4 result) result.a = 0.0; } -void node_bsdf_velvet(vec4 color, float sigma, float fresnel, vec3 N, out vec4 result) +void node_bsdf_velvet(vec4 color, float sigma, vec3 N, out vec4 result) { node_bsdf_diffuse(color, N, result); } @@ -1907,22 +1907,22 @@ void node_emission(vec4 color, float strength, vec3 N, out vec4 result) /* closures */ -void node_mix_closure(float fac, vec4 closure1, vec4 closure2, out vec4 closure) +void node_mix_shader(float fac, vec4 shader1, vec4 shader2, out vec4 shader) { - closure = mix(closure1, closure2, fac); + shader = mix(shader1, shader2, fac); } -void node_add_closure(vec4 closure1, vec4 closure2, out vec4 closure) +void node_add_shader(vec4 shader1, vec4 shader2, out vec4 shader) { - closure = closure1 + closure2; + shader = shader1 + shader2; } /* fresnel */ -void node_fresnel(float f, vec3 N, vec3 I, out float result) +void node_fresnel(float ior, vec3 N, vec3 I, out float result) { - f = max(1.0 - f, 0.00001); - result = fresnel_dielectric(I, N, 1.0/f); //backfacing()? f: 1.0/f); + float eta = max(ior, 0.00001); + result = fresnel_dielectric(I, N, eta); //backfacing()? 1.0/eta: eta); } /* geometry */ diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index eea4c231980..7617effbb6f 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -100,7 +100,7 @@ typedef struct bNodeSocket { #define SOCK_VALUE 0 #define SOCK_VECTOR 1 #define SOCK_RGBA 2 -#define SOCK_CLOSURE 3 +#define SOCK_SHADER 3 /* sock->flag, first bit is select */ /* hidden is user defined, to hide unused */ diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 5eabbe72373..e56d848f29f 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -164,8 +164,8 @@ static StructRNA *rna_NodeSocketType_refine(struct PointerRNA *ptr) return &RNA_VectorNodeSocket; case SOCK_RGBA: return &RNA_RGBANodeSocket; - case SOCK_CLOSURE: - return &RNA_ClosureNodeSocket; + case SOCK_SHADER: + return &RNA_ShaderNodeSocket; default: return &RNA_NodeSocket; } @@ -2979,12 +2979,12 @@ static void rna_def_node_socket_rgba(BlenderRNA *brna) RNA_def_property_float_funcs(prop, NULL, NULL, "rna_NodeSocket_defvalue_range"); } -static void rna_def_node_socket_closure(BlenderRNA *brna) +static void rna_def_node_socket_shader(BlenderRNA *brna) { StructRNA *srna; - srna = RNA_def_struct(brna, "ClosureNodeSocket", "NodeSocket"); - RNA_def_struct_ui_text(srna, "Closure Node Socket", "Input or output socket of a node"); + srna = RNA_def_struct(brna, "ShaderNodeSocket", "NodeSocket"); + RNA_def_struct_ui_text(srna, "Shader Node Socket", "Input or output socket of a node"); RNA_def_struct_sdna(srna, "bNodeSocket"); RNA_def_struct_ui_icon(srna, ICON_PLUG); RNA_def_struct_path_func(srna, "rna_NodeSocket_path"); @@ -3224,7 +3224,7 @@ void RNA_def_nodetree(BlenderRNA *brna) rna_def_node_socket_value(brna); rna_def_node_socket_vector(brna); rna_def_node_socket_rgba(brna); - rna_def_node_socket_closure(brna); + rna_def_node_socket_shader(brna); rna_def_node(brna); rna_def_node_link(brna); rna_def_shader_node(brna); diff --git a/source/blender/makesrna/intern/rna_nodetree_types.h b/source/blender/makesrna/intern/rna_nodetree_types.h index d14e4cd76f2..abf421a2b79 100644 --- a/source/blender/makesrna/intern/rna_nodetree_types.h +++ b/source/blender/makesrna/intern/rna_nodetree_types.h @@ -55,8 +55,9 @@ DefNode( ShaderNode, SH_NODE_OUTPUT_LAMP, 0, "OUTPU //DefNode( ShaderNode, SH_NODE_OUTPUT_TEXTURE, 0, "OUTPUT_TEXTURE", OutputTexture, "Texture Output", "" ) DefNode( ShaderNode, SH_NODE_OUTPUT_WORLD, 0, "OUTPUT_WORLD", OutputWorld, "World Output", "" ) DefNode( ShaderNode, SH_NODE_FRESNEL, 0, "FRESNEL", Fresnel, "Fresnel", "" ) -DefNode( ShaderNode, SH_NODE_MIX_CLOSURE, 0, "MIX_CLOSURE", MixClosure, "Mix Closure", "" ) -DefNode( ShaderNode, SH_NODE_ADD_CLOSURE, 0, "ADD_CLOSURE", AddClosure, "Add Closure", "" ) +DefNode( ShaderNode, SH_NODE_BLEND_WEIGHT, 0, "BLEND_WEIGHT", BlendWeight, "BlendWeight", "" ) +DefNode( ShaderNode, SH_NODE_MIX_SHADER, 0, "MIX_SHADER", MixShader, "Mix Shader", "" ) +DefNode( ShaderNode, SH_NODE_ADD_SHADER, 0, "ADD_SHADER", AddShader, "Add Shader", "" ) DefNode( ShaderNode, SH_NODE_ATTRIBUTE, 0, "ATTRIBUTE", Attribute, "Attribute", "") DefNode( ShaderNode, SH_NODE_BACKGROUND, 0, "BACKGROUND", Background, "Background", "") diff --git a/source/blender/nodes/CMakeLists.txt b/source/blender/nodes/CMakeLists.txt index f4b6a452281..a789155bc5a 100644 --- a/source/blender/nodes/CMakeLists.txt +++ b/source/blender/nodes/CMakeLists.txt @@ -127,11 +127,12 @@ set(SRC intern/SHD_nodes/SHD_bsdf_velvet.c intern/SHD_nodes/SHD_emission.c intern/SHD_nodes/SHD_fresnel.c + intern/SHD_nodes/SHD_blend_weight.c intern/SHD_nodes/SHD_geometry.c intern/SHD_nodes/SHD_holdout.c intern/SHD_nodes/SHD_light_path.c - intern/SHD_nodes/SHD_mix_closure.c - intern/SHD_nodes/SHD_add_closure.c + intern/SHD_nodes/SHD_mix_shader.c + intern/SHD_nodes/SHD_add_shader.c intern/SHD_nodes/SHD_output_lamp.c intern/SHD_nodes/SHD_output_material.c intern/SHD_nodes/SHD_output_texture.c diff --git a/source/blender/nodes/SHD_node.h b/source/blender/nodes/SHD_node.h index a939bca161d..057b7ae4588 100644 --- a/source/blender/nodes/SHD_node.h +++ b/source/blender/nodes/SHD_node.h @@ -56,6 +56,7 @@ void register_node_type_sh_attribute(ListBase *lb); void register_node_type_sh_geometry(ListBase *lb); void register_node_type_sh_light_path(ListBase *lb); void register_node_type_sh_fresnel(ListBase *lb); +void register_node_type_sh_blend_weight(ListBase *lb); void register_node_type_sh_tex_coord(ListBase *lb); void register_node_type_sh_background(ListBase *lb); @@ -68,8 +69,8 @@ void register_node_type_sh_bsdf_transparent(ListBase *lb); void register_node_type_sh_bsdf_velvet(ListBase *lb); void register_node_type_sh_emission(ListBase *lb); void register_node_type_sh_holdout(ListBase *lb); -void register_node_type_sh_mix_closure(ListBase *lb); -void register_node_type_sh_add_closure(ListBase *lb); +void register_node_type_sh_mix_shader(ListBase *lb); +void register_node_type_sh_add_shader(ListBase *lb); void register_node_type_sh_output_lamp(ListBase *lb); void register_node_type_sh_output_material(ListBase *lb); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c b/source/blender/nodes/intern/SHD_nodes/SHD_add_shader.c index 8c4a7d83915..60fe04a8b34 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_add_shader.c @@ -31,38 +31,38 @@ /* **************** OUTPUT ******************** */ -static bNodeSocketType sh_node_add_closure_in[]= { - { SOCK_CLOSURE, 1, "Closure1", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_CLOSURE, 1, "Closure2", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, +static bNodeSocketType sh_node_add_shader_in[]= { + { SOCK_SHADER, 1, "Shader1", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Shader2", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; -static bNodeSocketType sh_node_add_closure_out[]= { - { SOCK_CLOSURE, 0, "Closure", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, +static bNodeSocketType sh_node_add_shader_out[]= { + { SOCK_SHADER, 0, "Shader", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; -static void node_shader_exec_add_closure(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +static void node_shader_exec_add_shader(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } -static int node_shader_gpu_add_closure(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_add_shader(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { - return GPU_stack_link(mat, "node_add_closure", in, out); + return GPU_stack_link(mat, "node_add_shader", in, out); } /* node type definition */ -void register_node_type_sh_add_closure(ListBase *lb) +void register_node_type_sh_add_shader(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_ADD_CLOSURE, "Add Closure", NODE_CLASS_CLOSURE, 0, - sh_node_add_closure_in, sh_node_add_closure_out); + node_type_base(&ntype, SH_NODE_ADD_SHADER, "Add Shader", NODE_CLASS_SHADER, 0, + sh_node_add_shader_in, sh_node_add_shader_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); node_type_storage(&ntype, "", NULL, NULL); - node_type_exec(&ntype, node_shader_exec_add_closure); - node_type_gpu(&ntype, node_shader_gpu_add_closure); + node_type_exec(&ntype, node_shader_exec_add_shader); + node_type_gpu(&ntype, node_shader_gpu_add_shader); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_background.c b/source/blender/nodes/intern/SHD_nodes/SHD_background.c index 195f804416f..e5603b2d167 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_background.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_background.c @@ -38,7 +38,7 @@ static bNodeSocketType sh_node_background_in[]= { }; static bNodeSocketType sh_node_background_out[]= { - { SOCK_CLOSURE, 0, "Background", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "Background", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -52,7 +52,7 @@ void register_node_type_sh_background(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_BACKGROUND, "Background", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_BACKGROUND, "Background", NODE_CLASS_SHADER, 0, sh_node_background_in, sh_node_background_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_blend_weight.c b/source/blender/nodes/intern/SHD_nodes/SHD_blend_weight.c new file mode 100644 index 00000000000..f68348a8aa5 --- /dev/null +++ b/source/blender/nodes/intern/SHD_nodes/SHD_blend_weight.c @@ -0,0 +1,68 @@ +/** + * $Id: SHD_blend_weight.c 32517 2010-10-16 14:32:17Z campbellbarton $ + * + * ***** BEGIN GPL LICENSE BLOCK ***** + * + * 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. + * + * The Original Code is Copyright (C) 2005 Blender Foundation. + * All rights reserved. + * + * The Original Code is: all of this file. + * + * Contributor(s): none yet. + * + * ***** END GPL LICENSE BLOCK ***** + */ + +#include "../SHD_util.h" + +/* **************** BlendWeight ******************** */ +static bNodeSocketType sh_node_blend_weight_in[]= { + { SOCK_VALUE, 1, "Blend", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static bNodeSocketType sh_node_blend_weight_out[]= { + { SOCK_VALUE, 0, "Fresnel", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Facing", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { -1, 0, "" } +}; + +static void node_shader_exec_blend_weight(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +{ +} + +static int node_shader_gpu_blend_weight(GPUMaterial *UNUSED(mat), bNode *UNUSED(node), GPUNodeStack *UNUSED(in), GPUNodeStack *UNUSED(out)) +{ + return 0; +} + +/* node type definition */ +void register_node_type_sh_blend_weight(ListBase *lb) +{ + static bNodeType ntype; + + node_type_base(&ntype, SH_NODE_BLEND_WEIGHT, "Blend Weight", NODE_CLASS_INPUT, 0, + sh_node_blend_weight_in, sh_node_blend_weight_out); + node_type_size(&ntype, 150, 60, 200); + node_type_init(&ntype, NULL); + node_type_storage(&ntype, "", NULL, NULL); + node_type_exec(&ntype, node_shader_exec_blend_weight); + node_type_gpu(&ntype, node_shader_gpu_blend_weight); + + nodeRegisterType(lb, &ntype); +}; + diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c index 508bf827440..15db7ebb53c 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c @@ -39,7 +39,7 @@ static bNodeSocketType sh_node_bsdf_anisotropic_in[]= { }; static bNodeSocketType sh_node_bsdf_anisotropic_out[]= { - { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -57,7 +57,7 @@ void register_node_type_sh_bsdf_anisotropic(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_BSDF_ANISOTROPIC, "Glossy Anisotropic BSDF", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_BSDF_ANISOTROPIC, "Glossy Anisotropic BSDF", NODE_CLASS_SHADER, 0, sh_node_bsdf_anisotropic_in, sh_node_bsdf_anisotropic_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c index 2525174606a..bd2781d4052 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c @@ -37,7 +37,7 @@ static bNodeSocketType sh_node_bsdf_diffuse_in[]= { }; static bNodeSocketType sh_node_bsdf_diffuse_out[]= { - { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -55,7 +55,7 @@ void register_node_type_sh_bsdf_diffuse(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_BSDF_DIFFUSE, "Diffuse BSDF", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_BSDF_DIFFUSE, "Diffuse BSDF", NODE_CLASS_SHADER, 0, sh_node_bsdf_diffuse_in, sh_node_bsdf_diffuse_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c index 7f42c70b338..2d2b31573f2 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c @@ -34,12 +34,12 @@ static bNodeSocketType sh_node_bsdf_glass_in[]= { { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, { SOCK_VALUE, 1, "Roughness", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Fresnel", 0.3f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "IOR", 1.45f, 0.0f, 0.0f, 0.0f, 1.0f, 1000.0f}, { -1, 0, "" } }; static bNodeSocketType sh_node_bsdf_glass_out[]= { - { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -57,7 +57,7 @@ void register_node_type_sh_bsdf_glass(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_BSDF_GLASS, "Glass BSDF", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_BSDF_GLASS, "Glass BSDF", NODE_CLASS_SHADER, 0, sh_node_bsdf_glass_in, sh_node_bsdf_glass_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c index 16dea77d492..033aea1509f 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c @@ -34,12 +34,11 @@ static bNodeSocketType sh_node_bsdf_glossy_in[]= { { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, { SOCK_VALUE, 1, "Roughness", 0.2f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Fresnel", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; static bNodeSocketType sh_node_bsdf_glossy_out[]= { - { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -58,7 +57,7 @@ void register_node_type_sh_bsdf_glossy(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_BSDF_GLOSSY, "Glossy BSDF", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_BSDF_GLOSSY, "Glossy BSDF", NODE_CLASS_SHADER, 0, sh_node_bsdf_glossy_in, sh_node_bsdf_glossy_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c index ceec2891aaf..7a9ff48f5c9 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c @@ -37,7 +37,7 @@ static bNodeSocketType sh_node_bsdf_translucent_in[]= { }; static bNodeSocketType sh_node_bsdf_translucent_out[]= { - { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -55,7 +55,7 @@ void register_node_type_sh_bsdf_translucent(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_BSDF_TRANSLUCENT, "Translucent BSDF", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_BSDF_TRANSLUCENT, "Translucent BSDF", NODE_CLASS_SHADER, 0, sh_node_bsdf_translucent_in, sh_node_bsdf_translucent_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c index 4f4537b339d..b3932162d73 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c @@ -37,7 +37,7 @@ static bNodeSocketType sh_node_bsdf_transparent_in[]= { }; static bNodeSocketType sh_node_bsdf_transparent_out[]= { - { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -55,7 +55,7 @@ void register_node_type_sh_bsdf_transparent(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_BSDF_TRANSPARENT, "Transparent BSDF", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_BSDF_TRANSPARENT, "Transparent BSDF", NODE_CLASS_SHADER, 0, sh_node_bsdf_transparent_in, sh_node_bsdf_transparent_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c index 5b700eb1e4e..dfdcf2a4f7f 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c @@ -34,12 +34,11 @@ static bNodeSocketType sh_node_bsdf_velvet_in[]= { { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, { SOCK_VALUE, 1, "Sigma", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Fresnel", 1.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; static bNodeSocketType sh_node_bsdf_velvet_out[]= { - { SOCK_CLOSURE, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "BSDF", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -57,7 +56,7 @@ void register_node_type_sh_bsdf_velvet(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_BSDF_VELVET, "Velvet BSDF", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_BSDF_VELVET, "Velvet BSDF", NODE_CLASS_SHADER, 0, sh_node_bsdf_velvet_in, sh_node_bsdf_velvet_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_emission.c b/source/blender/nodes/intern/SHD_nodes/SHD_emission.c index 7a88db3380d..e8b1d58a85a 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_emission.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_emission.c @@ -33,12 +33,12 @@ static bNodeSocketType sh_node_emission_in[]= { { SOCK_RGBA, 1, "Color", 0.8f, 0.8f, 0.8f, 1.0f, 0.0f, 1.0f}, - { SOCK_VALUE, 1, "Strength", 100.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f}, + { SOCK_VALUE, 1, "Strength", 30.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1000000.0f}, { -1, 0, "" } }; static bNodeSocketType sh_node_emission_out[]= { - { SOCK_CLOSURE, 0, "Emission", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "Emission", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -56,7 +56,7 @@ void register_node_type_sh_emission(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_EMISSION, "Emission", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_EMISSION, "Emission", NODE_CLASS_SHADER, 0, sh_node_emission_in, sh_node_emission_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c b/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c index 8e6d2545bb1..ac17faaaaa4 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c @@ -31,12 +31,12 @@ /* **************** Fresnel ******************** */ static bNodeSocketType sh_node_fresnel_in[]= { - { SOCK_VALUE, 1, "Fresnel", 0.3f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 1, "IOR", 1.45f, 0.0f, 0.0f, 0.0f, 1.0f, 1000.0f}, { -1, 0, "" } }; static bNodeSocketType sh_node_fresnel_out[]= { - { SOCK_VALUE, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_VALUE, 0, "Fac", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_holdout.c b/source/blender/nodes/intern/SHD_nodes/SHD_holdout.c index a96b621456a..f874eda786a 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_holdout.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_holdout.c @@ -36,7 +36,7 @@ static bNodeSocketType sh_node_holdout_in[]= { }; static bNodeSocketType sh_node_holdout_out[]= { - { SOCK_CLOSURE, 0, "Holdout", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 0, "Holdout", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; @@ -50,7 +50,7 @@ void register_node_type_sh_holdout(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_HOLDOUT, "Holdout", NODE_CLASS_CLOSURE, 0, + node_type_base(&ntype, SH_NODE_HOLDOUT, "Holdout", NODE_CLASS_SHADER, 0, sh_node_holdout_in, sh_node_holdout_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c b/source/blender/nodes/intern/SHD_nodes/SHD_mix_shader.c index 55838365756..3f486c4b469 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_mix_shader.c @@ -31,39 +31,39 @@ /* **************** OUTPUT ******************** */ -static bNodeSocketType sh_node_mix_closure_in[]= { +static bNodeSocketType sh_node_mix_shader_in[]= { { SOCK_VALUE, 1, "Fac", 0.5f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_CLOSURE, 1, "Closure1", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_CLOSURE, 1, "Closure2", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Shader1", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Shader2", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; -static bNodeSocketType sh_node_mix_closure_out[]= { - { SOCK_CLOSURE, 0, "Closure", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, +static bNodeSocketType sh_node_mix_shader_out[]= { + { SOCK_SHADER, 0, "Shader", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; -static void node_shader_exec_mix_closure(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) +static void node_shader_exec_mix_shader(void *UNUSED(data), bNode *UNUSED(node), bNodeStack **UNUSED(in), bNodeStack **UNUSED(out)) { } -static int node_shader_gpu_mix_closure(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) +static int node_shader_gpu_mix_shader(GPUMaterial *mat, bNode *UNUSED(node), GPUNodeStack *in, GPUNodeStack *out) { - return GPU_stack_link(mat, "node_mix_closure", in, out); + return GPU_stack_link(mat, "node_mix_shader", in, out); } /* node type definition */ -void register_node_type_sh_mix_closure(ListBase *lb) +void register_node_type_sh_mix_shader(ListBase *lb) { static bNodeType ntype; - node_type_base(&ntype, SH_NODE_MIX_CLOSURE, "Mix Closure", NODE_CLASS_CLOSURE, 0, - sh_node_mix_closure_in, sh_node_mix_closure_out); + node_type_base(&ntype, SH_NODE_MIX_SHADER, "Mix Shader", NODE_CLASS_SHADER, 0, + sh_node_mix_shader_in, sh_node_mix_shader_out); node_type_size(&ntype, 150, 60, 200); node_type_init(&ntype, NULL); node_type_storage(&ntype, "", NULL, NULL); - node_type_exec(&ntype, node_shader_exec_mix_closure); - node_type_gpu(&ntype, node_shader_gpu_mix_closure); + node_type_exec(&ntype, node_shader_exec_mix_shader); + node_type_gpu(&ntype, node_shader_gpu_mix_shader); nodeRegisterType(lb, &ntype); }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_output_lamp.c b/source/blender/nodes/intern/SHD_nodes/SHD_output_lamp.c index 6665c727f48..5be9a1f6948 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_output_lamp.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_output_lamp.c @@ -32,7 +32,7 @@ /* **************** OUTPUT ******************** */ static bNodeSocketType sh_node_output_lamp_in[]= { - { SOCK_CLOSURE, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c b/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c index 06ab6b67dac..c0cdde3fb8b 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_output_material.c @@ -32,8 +32,8 @@ /* **************** OUTPUT ******************** */ static bNodeSocketType sh_node_output_material_in[]= { - { SOCK_CLOSURE, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_CLOSURE, 1, "Volume", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Volume", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { SOCK_VALUE, 1, "Displacement", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f, SOCK_NO_VALUE}, { -1, 0, "" } }; diff --git a/source/blender/nodes/intern/SHD_nodes/SHD_output_world.c b/source/blender/nodes/intern/SHD_nodes/SHD_output_world.c index d140fb2408c..410ddd25bff 100644 --- a/source/blender/nodes/intern/SHD_nodes/SHD_output_world.c +++ b/source/blender/nodes/intern/SHD_nodes/SHD_output_world.c @@ -32,8 +32,8 @@ /* **************** OUTPUT ******************** */ static bNodeSocketType sh_node_output_world_in[]= { - { SOCK_CLOSURE, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, - { SOCK_CLOSURE, 1, "Volume", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Surface", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, + { SOCK_SHADER, 1, "Volume", 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 1.0f}, { -1, 0, "" } }; |