Fix for wrong flip of Normal node Dot output for new shading system

It was wrong to use invert(), we need to multiply by -1 instead.
This commit is contained in:
Sergey Sharybin
2014-12-10 18:50:30 +05:00
parent 01bda15832
commit 668ffcd6e9

View File

@@ -63,8 +63,8 @@ static int gpu_shader_normal(GPUMaterial *mat, bNode *UNUSED(node), bNodeExecDat
GPUNodeLink *vec = GPU_uniform(out[0].vec);
int ret = GPU_stack_link(mat, "normal", in, out, vec);
if (ret && GPU_material_use_new_shading_nodes(mat)) {
float fac[3] = {1.0f, 0.0f, 0.0f};
GPU_link(mat, "invert", GPU_uniform(fac), out[1].link, &out[1].link);
float fac[3] = {-1.0f, -1.0f, -1.0f};
GPU_link(mat, "math_multiply", GPU_uniform(fac), out[1].link, &out[1].link);
}
return ret;
}