Changeset View
Changeset View
Standalone View
Standalone View
source/blender/nodes/shader/nodes/node_shader_normal_map.c
| Context not available. | |||||
| else | else | ||||
| strength = GPU_uniform(in[0].vec); | strength = GPU_uniform(in[0].vec); | ||||
| if (in[1].link) { | if (in[1].link) | ||||
| GPU_link(mat, "color_to_normal", in[1].link, &realnorm); | realnorm = in[1].link; | ||||
| GPU_link(mat, "mtex_negate_texnormal", realnorm, &realnorm); | else | ||||
| } | realnorm = GPU_uniform(in[1].vec); | ||||
| negnorm = GPU_builtin(GPU_VIEW_NORMAL); | |||||
| GPU_link(mat, "math_max", strength, GPU_uniform(d), &strength); | GPU_link(mat, "math_max", strength, GPU_uniform(d), &strength); | ||||
| GPU_link(mat, "vec_math_negate", GPU_builtin(GPU_VIEW_NORMAL), &negnorm); | |||||
| if (in[1].link) { | if (GPU_material_use_new_shading_nodes(mat)) { | ||||
| /* **************** CYCLES ******************** */ | |||||
| GPU_link(mat, "direction_transform_m4v3", negnorm, GPU_builtin(GPU_INVERSE_VIEW_MATRIX), &negnorm); | |||||
| switch (nm->space) { | switch (nm->space) { | ||||
| case SHD_NORMAL_MAP_TANGENT: | case SHD_NORMAL_MAP_TANGENT: | ||||
| GPU_link(mat, "node_normal_map", GPU_attribute(CD_TANGENT, nm->uv_map), negnorm, realnorm, &out[0].link); | GPU_link(mat, "color_to_normal_new_shading", realnorm, &realnorm); | ||||
| GPU_link(mat, "node_normal_map", GPU_attribute(CD_TANGENT, nm->uv_map), negnorm, realnorm, &realnorm); | |||||
| break; | break; | ||||
| case SHD_NORMAL_MAP_OBJECT: | case SHD_NORMAL_MAP_OBJECT: | ||||
| GPU_link(mat, "color_to_normal_new_shading", realnorm, &realnorm); | |||||
| GPU_link(mat, "direction_transform_m4v3", realnorm, GPU_builtin(GPU_OBJECT_MATRIX), &realnorm); | |||||
| break; | |||||
| case SHD_NORMAL_MAP_BLENDER_OBJECT: | case SHD_NORMAL_MAP_BLENDER_OBJECT: | ||||
| GPU_link(mat, "direction_transform_m4v3", realnorm, GPU_builtin(GPU_LOC_TO_VIEW_MATRIX), &out[0].link); | GPU_link(mat, "color_to_blender_normal_new_shading", realnorm, &realnorm); | ||||
| GPU_link(mat, "direction_transform_m4v3", realnorm, GPU_builtin(GPU_OBJECT_MATRIX), &realnorm); | |||||
| break; | break; | ||||
| case SHD_NORMAL_MAP_WORLD: | case SHD_NORMAL_MAP_WORLD: | ||||
| GPU_link(mat, "color_to_normal_new_shading", realnorm, &realnorm); | |||||
| break; | |||||
| case SHD_NORMAL_MAP_BLENDER_WORLD: | case SHD_NORMAL_MAP_BLENDER_WORLD: | ||||
| GPU_link(mat, "direction_transform_m4v3", realnorm, GPU_builtin(GPU_VIEW_MATRIX), &out[0].link); | GPU_link(mat, "color_to_blender_normal_new_shading", realnorm, &realnorm); | ||||
| break; | break; | ||||
| GPU_link(mat, "vect_normalize", realnorm, &realnorm); | |||||
a.romanov: Broken indentation | |||||
Not Done Inline ActionsRearranged and fixed, thanks! cheleb: Rearranged and fixed, thanks! | |||||
| } | } | ||||
| } | |||||
| if (out[0].link) { | } else { | ||||
| GPU_link(mat, "vec_math_mix", strength, out[0].link, negnorm, &out[0].link); | |||||
| GPU_link(mat, "vect_normalize", out[0].link, &out[0].link); | /* *********** BLENDER INTERNAL *************** */ | ||||
| GPU_link(mat, "color_to_normal", realnorm, &realnorm); | |||||
| GPU_link(mat, "mtex_negate_texnormal", realnorm, &realnorm); | |||||
| GPU_link(mat, "vec_math_negate", negnorm, &negnorm); | |||||
| switch (nm->space) { | |||||
| case SHD_NORMAL_MAP_TANGENT: | |||||
| GPU_link(mat, "node_normal_map", GPU_attribute(CD_TANGENT, nm->uv_map), negnorm, realnorm, &realnorm); | |||||
| break; | |||||
| case SHD_NORMAL_MAP_OBJECT: | |||||
| case SHD_NORMAL_MAP_BLENDER_OBJECT: | |||||
| GPU_link(mat, "direction_transform_m4v3", realnorm, GPU_builtin(GPU_LOC_TO_VIEW_MATRIX), &realnorm); | |||||
| break; | |||||
| case SHD_NORMAL_MAP_WORLD: | |||||
| case SHD_NORMAL_MAP_BLENDER_WORLD: | |||||
| GPU_link(mat, "direction_transform_m4v3", realnorm, GPU_builtin(GPU_VIEW_MATRIX), &realnorm); | |||||
| break; | |||||
| } | |||||
| } | } | ||||
| GPU_link(mat, "vec_math_mix", strength, realnorm, negnorm, &out[0].link); | |||||
| GPU_link(mat, "vect_normalize", out[0].link, &out[0].link); | |||||
| return true; | return true; | ||||
| } | } | ||||
| Context not available. | |||||
| nodeRegisterType(&ntype); | nodeRegisterType(&ntype); | ||||
| } | } | ||||
| Context not available. | |||||
Broken indentation