Merge branch 'master' into blender2.8
[blender.git] / source / blender / nodes / shader / nodes / node_shader_ambient_occlusion.c
index 995ff0cfd4017354be74597da52e1b6c064282a4..4c770984717b56e9f4822d10245612aace163920 100644 (file)
@@ -42,9 +42,12 @@ static bNodeSocketTemplate sh_node_ambient_occlusion_out[] = {
        {       -1, 0, ""       }
 };
 
-static int node_shader_gpu_ambient_occlusion(GPUMaterial *mat, bNode *UNUSED(node), bNodeExecData *UNUSED(execdata), GPUNodeStack *in, GPUNodeStack *out)
+static int node_shader_gpu_ambient_occlusion(GPUMaterial *mat, bNode *node, bNodeExecData *UNUSED(execdata), GPUNodeStack *in, GPUNodeStack *out)
 {
-       return GPU_stack_link(mat, "node_ambient_occlusion", in, out, GPU_builtin(GPU_VIEW_NORMAL));
+       if (!in[2].link)
+               GPU_link(mat, "world_normals_get", &in[2].link);
+
+       return GPU_stack_link(mat, node, "node_ambient_occlusion", in, out);
 }
 
 static void node_shader_init_ambient_occlusion(bNodeTree *UNUSED(ntree), bNode *node)