Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenkernel/BKE_node.h7
-rw-r--r--source/blender/blenkernel/intern/node.c11
-rw-r--r--source/blender/blenloader/intern/readfile.c59
-rw-r--r--source/blender/editors/interface/interface_node.c10
-rw-r--r--source/blender/editors/space_node/node_draw.c2
-rw-r--r--source/blender/editors/space_node/node_edit.c12
-rw-r--r--source/blender/editors/space_node/node_header.c6
-rw-r--r--source/blender/gpu/intern/gpu_shader_material.glsl20
-rw-r--r--source/blender/makesdna/DNA_node_types.h2
-rw-r--r--source/blender/makesrna/intern/rna_nodetree.c12
-rw-r--r--source/blender/makesrna/intern/rna_nodetree_types.h5
-rw-r--r--source/blender/nodes/CMakeLists.txt5
-rw-r--r--source/blender/nodes/SHD_node.h5
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_add_shader.c (renamed from source/blender/nodes/intern/SHD_nodes/SHD_add_closure.c)26
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_background.c4
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_blend_weight.c68
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_bsdf_anisotropic.c4
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_bsdf_diffuse.c4
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glass.c6
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_bsdf_glossy.c5
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_bsdf_translucent.c4
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_bsdf_transparent.c4
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_bsdf_velvet.c5
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_emission.c6
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_fresnel.c4
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_holdout.c4
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_mix_shader.c (renamed from source/blender/nodes/intern/SHD_nodes/SHD_mix_closure.c)26
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_output_lamp.c2
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_output_material.c4
-rw-r--r--source/blender/nodes/intern/SHD_nodes/SHD_output_world.c4
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, "" }
};