diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2019-05-09 13:46:29 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2019-05-09 13:46:29 +0300 |
commit | f877022956df3b55e30c312b20f364fd2657805c (patch) | |
tree | f17b9d330750ebb16ef4f4f5a2a06a57fa331280 | |
parent | 209c01a6ba6468f234a826d1eea38f4341f58cac (diff) |
Fix T64363 Eevee: Texture coordinates node turns material color to pink
Sorry for that :(
-rw-r--r-- | source/blender/gpu/shaders/gpu_shader_material.glsl | 4 | ||||
-rw-r--r-- | source/blender/nodes/shader/nodes/node_shader_tex_coord.c | 5 |
2 files changed, 3 insertions, 6 deletions
diff --git a/source/blender/gpu/shaders/gpu_shader_material.glsl b/source/blender/gpu/shaders/gpu_shader_material.glsl index 59eb463635e..37e03be7be3 100644 --- a/source/blender/gpu/shaders/gpu_shader_material.glsl +++ b/source/blender/gpu/shaders/gpu_shader_material.glsl @@ -2086,6 +2086,7 @@ void generated_texco(vec3 I, vec3 attr_orco, out vec3 generated) void node_tex_coord(vec3 I, vec3 wN, + mat4 obmatinv, vec4 camerafac, vec3 attr_orco, vec3 attr_uv, @@ -2100,7 +2101,7 @@ void node_tex_coord(vec3 I, generated = attr_orco; normal = normalize(transform_normal_world_to_object(wN)); uv = attr_uv; - object = transform_point_view_to_object(I); + object = (obmatinv * (ViewMatrixInverse * vec4(I, 1.0))).xyz; camera = vec3(I.xy, -I.z); vec4 projvec = ProjectionMatrix * vec4(I, 1.0); window = vec3(mtex_2d_mapping(projvec.xyz / projvec.w).xy * camerafac.xy + camerafac.zw, 0.0); @@ -2109,6 +2110,7 @@ void node_tex_coord(vec3 I, void node_tex_coord_background(vec3 I, vec3 N, + mat4 obmatinv, vec4 camerafac, vec3 attr_orco, vec3 attr_uv, diff --git a/source/blender/nodes/shader/nodes/node_shader_tex_coord.c b/source/blender/nodes/shader/nodes/node_shader_tex_coord.c index eed53f5c286..0e34f2ca9b1 100644 --- a/source/blender/nodes/shader/nodes/node_shader_tex_coord.c +++ b/source/blender/nodes/shader/nodes/node_shader_tex_coord.c @@ -42,10 +42,6 @@ static int node_shader_gpu_tex_coord(GPUMaterial *mat, { Object *ob = (Object *)node->id; - if (ob != NULL) { - invert_m4_m4(ob->imat, ob->obmat); - } - GPUNodeLink *inv_obmat = (ob != NULL) ? GPU_uniform(&ob->imat[0][0]) : GPU_builtin(GPU_INVERSE_OBJECT_MATRIX); @@ -61,7 +57,6 @@ static int node_shader_gpu_tex_coord(GPUMaterial *mat, out, GPU_builtin(GPU_VIEW_POSITION), GPU_builtin(GPU_WORLD_NORMAL), - GPU_builtin(GPU_INVERSE_VIEW_MATRIX), inv_obmat, GPU_builtin(GPU_CAMERA_TEXCO_FACTORS), orco, |