diff options
author | Danila Shutov <dcbrwn2@gmail.com> | 2020-06-09 22:38:09 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-09 21:38:09 +0200 |
commit | fe3e69eb4029626cd7ef3f7a1c2beaec13ba7364 (patch) | |
tree | 238d4eafd2a4ada76f79f0810c77c546a1b35a8f /client | |
parent | 7148834440d10bc211628aa2652e31166bdd58a0 (diff) | |
download | minetest-fe3e69eb4029626cd7ef3f7a1c2beaec13ba7364.tar.gz minetest-fe3e69eb4029626cd7ef3f7a1c2beaec13ba7364.tar.bz2 minetest-fe3e69eb4029626cd7ef3f7a1c2beaec13ba7364.zip |
Fix broken coloring of wielditems (#9969)
Fixes a regression that appeared in 5.3.0-dev.
Diffstat (limited to 'client')
-rw-r--r-- | client/shaders/object_shader/opengl_fragment.glsl | 4 | ||||
-rw-r--r-- | client/shaders/object_shader/opengl_vertex.glsl | 7 |
2 files changed, 9 insertions, 2 deletions
diff --git a/client/shaders/object_shader/opengl_fragment.glsl b/client/shaders/object_shader/opengl_fragment.glsl index 32f3e974e..0534dc049 100644 --- a/client/shaders/object_shader/opengl_fragment.glsl +++ b/client/shaders/object_shader/opengl_fragment.glsl @@ -145,8 +145,10 @@ void main(void) vec4 col = vec4(color.rgb, base.a); + col.rgb *= gl_Color.rgb; + col.rgb *= emissiveColor.rgb * vIDiff; - + #ifdef ENABLE_TONE_MAPPING col = applyToneMapping(col); #endif diff --git a/client/shaders/object_shader/opengl_vertex.glsl b/client/shaders/object_shader/opengl_vertex.glsl index 488089392..59171145f 100644 --- a/client/shaders/object_shader/opengl_vertex.glsl +++ b/client/shaders/object_shader/opengl_vertex.glsl @@ -38,7 +38,12 @@ void main(void) lightVec = sunPosition - worldPosition; eyeVec = -(gl_ModelViewMatrix * gl_Vertex).xyz; - vIDiff = directional_ambient(normalize(gl_Normal)); + + // This is intentional comparison with zero without any margin. + // If normal is not equal to zero exactly, then we assume it's a valid, just not normalized vector + vIDiff = length(gl_Normal) == 0.0 + ? 1.0 + : directional_ambient(normalize(gl_Normal)); gl_FrontColor = gl_BackColor = gl_Color; } |