forked from bartvdbraak/blender
Fix T40795: Dot output is inverted in viewport with Cycles
This commit is contained in:
parent
cb95544e41
commit
7dbedf6d4a
@ -147,6 +147,7 @@ void GPU_material_vertex_attributes(GPUMaterial *material,
|
|||||||
struct GPUVertexAttribs *attrib);
|
struct GPUVertexAttribs *attrib);
|
||||||
|
|
||||||
bool GPU_material_do_color_management(GPUMaterial *mat);
|
bool GPU_material_do_color_management(GPUMaterial *mat);
|
||||||
|
bool GPU_material_use_new_shading_nodes(GPUMaterial *mat);
|
||||||
|
|
||||||
/* Exported shading */
|
/* Exported shading */
|
||||||
|
|
||||||
|
@ -417,6 +417,11 @@ bool GPU_material_do_color_management(GPUMaterial *mat)
|
|||||||
return !((mat->scene->gm.flag & GAME_GLSL_NO_COLOR_MANAGEMENT));
|
return !((mat->scene->gm.flag & GAME_GLSL_NO_COLOR_MANAGEMENT));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GPU_material_use_new_shading_nodes(GPUMaterial *mat)
|
||||||
|
{
|
||||||
|
return BKE_scene_use_new_shading_nodes(mat->scene);
|
||||||
|
}
|
||||||
|
|
||||||
static GPUNodeLink *lamp_get_visibility(GPUMaterial *mat, GPULamp *lamp, GPUNodeLink **lv, GPUNodeLink **dist)
|
static GPUNodeLink *lamp_get_visibility(GPUMaterial *mat, GPULamp *lamp, GPUNodeLink **lv, GPUNodeLink **dist)
|
||||||
{
|
{
|
||||||
GPUNodeLink *visifac, *inpr;
|
GPUNodeLink *visifac, *inpr;
|
||||||
|
@ -61,7 +61,12 @@ static void node_shader_exec_normal(void *UNUSED(data), int UNUSED(thread), bNod
|
|||||||
static int gpu_shader_normal(GPUMaterial *mat, bNode *UNUSED(node), bNodeExecData *UNUSED(execdata), GPUNodeStack *in, GPUNodeStack *out)
|
static int gpu_shader_normal(GPUMaterial *mat, bNode *UNUSED(node), bNodeExecData *UNUSED(execdata), GPUNodeStack *in, GPUNodeStack *out)
|
||||||
{
|
{
|
||||||
GPUNodeLink *vec = GPU_uniform(out[0].vec);
|
GPUNodeLink *vec = GPU_uniform(out[0].vec);
|
||||||
return GPU_stack_link(mat, "normal", in, out, 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);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
void register_node_type_sh_normal(void)
|
void register_node_type_sh_normal(void)
|
||||||
|
Loading…
Reference in New Issue
Block a user