[Bf-blender-cvs] [3e555d3d785] blender2.8: Merge branch 'master' into blender2.8

Campbell Barton noreply at git.blender.org
Mon Aug 21 07:37:40 CEST 2017


Commit: 3e555d3d785b17bf9398d7666d5131c994da8c6b
Author: Campbell Barton
Date:   Mon Aug 21 15:41:03 2017 +1000
Branches: blender2.8
https://developer.blender.org/rB3e555d3d785b17bf9398d7666d5131c994da8c6b

Merge branch 'master' into blender2.8

===================================================================



===================================================================

diff --cc source/blender/nodes/shader/nodes/node_shader_fresnel.c
index e78bb2b0b24,8262b70fc44..b285f1a8a3e
--- a/source/blender/nodes/shader/nodes/node_shader_fresnel.c
+++ b/source/blender/nodes/shader/nodes/node_shader_fresnel.c
@@@ -48,17 -48,26 +48,26 @@@ static int node_shader_gpu_fresnel(GPUM
  		GPU_link(mat, "direction_transform_m4v3", in[1].link, GPU_builtin(GPU_VIEW_MATRIX), &in[1].link);
  	}
  	
 -	return GPU_stack_link(mat, "node_fresnel", in, out, GPU_builtin(GPU_VIEW_POSITION));
 +	return GPU_stack_link(mat, node, "node_fresnel", in, out, GPU_builtin(GPU_VIEW_POSITION));
  }
  
- static void node_shader_exec_fresnel(void *data, int UNUSED(thread), bNode *UNUSED(node), bNodeExecData *UNUSED(execdata), bNodeStack **in, bNodeStack **out)
+ static void node_shader_exec_fresnel(void *data, int UNUSED(thread), bNode *node, bNodeExecData *UNUSED(execdata), bNodeStack **in, bNodeStack **out)
  {
  	ShadeInput *shi = ((ShaderCallData *)data)->shi;
- 	float eta = max_ff(in[0]->vec[0], 0.00001);
+ 
+ 	/* Compute IOR. */
+ 	float eta;
+ 	nodestack_get_vec(&eta, SOCK_FLOAT, in[0]);
+ 	eta = max_ff(eta, 0.00001);
+ 	eta = shi->flippednor ? 1 / eta : eta;
+ 
+ 	/* Get normal from socket, but only if linked. */
+ 	bNodeSocket *sock_normal = node->inputs.first;
+ 	sock_normal = sock_normal->next;
  
  	float n[3];
- 	if (in[1]->hasinput) {
- 		copy_v3_v3(n, in[1]->vec);
+ 	if (sock_normal->link) {
+ 		nodestack_get_vec(n, SOCK_VECTOR, in[1]);
  	}
  	else {
  		copy_v3_v3(n, shi->vn);
diff --cc source/blender/nodes/shader/nodes/node_shader_layer_weight.c
index e84d8e7241c,998e1a5687e..3ab73fdde18
--- a/source/blender/nodes/shader/nodes/node_shader_layer_weight.c
+++ b/source/blender/nodes/shader/nodes/node_shader_layer_weight.c
@@@ -49,18 -49,26 +49,26 @@@ static int node_shader_gpu_layer_weight
  		GPU_link(mat, "direction_transform_m4v3", in[1].link, GPU_builtin(GPU_VIEW_MATRIX), &in[1].link);
  	}
  
 -	return GPU_stack_link(mat, "node_layer_weight", in, out, GPU_builtin(GPU_VIEW_POSITION));
 +	return GPU_stack_link(mat, node, "node_layer_weight", in, out, GPU_builtin(GPU_VIEW_POSITION));
  }
  
- static void node_shader_exec_layer_weight(void *data, int UNUSED(thread), bNode *UNUSED(node), bNodeExecData *UNUSED(execdata), bNodeStack **in, bNodeStack **out)
+ static void node_shader_exec_layer_weight(void *data, int UNUSED(thread), bNode *node, bNodeExecData *UNUSED(execdata), bNodeStack **in, bNodeStack **out)
  {
  	ShadeInput *shi = ((ShaderCallData *)data)->shi;
- 	float blend = in[0]->vec[0];
+ 
+ 	/* Compute IOR. */
+ 	float blend;
+ 	nodestack_get_vec(&blend, SOCK_FLOAT, in[0]);
  	float eta = max_ff(1 - blend, 0.00001);
+ 	eta = shi->flippednor ? eta : 1 / eta;
+ 
+ 	/* Get normal from socket, but only if linked. */
+ 	bNodeSocket *sock_normal = node->inputs.first;
+ 	sock_normal = sock_normal->next;
  
  	float n[3];
- 	if (in[1]->hasinput) {
- 		copy_v3_v3(n, in[1]->vec);
+ 	if (sock_normal->link) {
+ 		nodestack_get_vec(n, SOCK_VECTOR, in[1]);
  	}
  	else {
  		copy_v3_v3(n, shi->vn);



More information about the Bf-blender-cvs mailing list