diff options
author | Pablo Dobarro <pablodp606@gmail.com> | 2020-05-14 16:27:11 +0300 |
---|---|---|
committer | Pablo Dobarro <pablodp606@gmail.com> | 2020-05-14 17:47:50 +0300 |
commit | 78e3b7c28d858ca256c99338cf195b9d60f2c3d6 (patch) | |
tree | c5f06c01a65543dcbbd875b4a6d6765904bd8473 /source/blender/draw/engines/overlay/shaders | |
parent | e58525706328f902baaa0252cb28b4a33534259c (diff) |
Sculpt: Render Face Sets always as flat shading
This removes the smooth shading rendering from the face set overlay when
smooth shading is enabled.
Reviewed By: jbakker
Maniphest Tasks: T74906, T74622, T75331, T76530
Differential Revision: https://developer.blender.org/D7105
Diffstat (limited to 'source/blender/draw/engines/overlay/shaders')
-rw-r--r-- | source/blender/draw/engines/overlay/shaders/sculpt_mask_frag.glsl | 10 | ||||
-rw-r--r-- | source/blender/draw/engines/overlay/shaders/sculpt_mask_vert.glsl | 7 |
2 files changed, 15 insertions, 2 deletions
diff --git a/source/blender/draw/engines/overlay/shaders/sculpt_mask_frag.glsl b/source/blender/draw/engines/overlay/shaders/sculpt_mask_frag.glsl new file mode 100644 index 00000000000..a778e518392 --- /dev/null +++ b/source/blender/draw/engines/overlay/shaders/sculpt_mask_frag.glsl @@ -0,0 +1,10 @@ + +flat in vec3 faceset_color; +in float mask_color; + +out vec4 fragColor; + +void main() +{ + fragColor = vec4(faceset_color * vec3(mask_color), 1.0); +} diff --git a/source/blender/draw/engines/overlay/shaders/sculpt_mask_vert.glsl b/source/blender/draw/engines/overlay/shaders/sculpt_mask_vert.glsl index 5d79195a40b..f2b827738ac 100644 --- a/source/blender/draw/engines/overlay/shaders/sculpt_mask_vert.glsl +++ b/source/blender/draw/engines/overlay/shaders/sculpt_mask_vert.glsl @@ -8,13 +8,16 @@ in float msk; out vec4 finalColor; +flat out vec3 faceset_color; +out float mask_color; + void main() { vec3 world_pos = point_object_to_world(pos); gl_Position = point_world_to_ndc(world_pos); - finalColor = vec4(mix(vec3(1.0), fset, faceSetsOpacity), 1.0); - finalColor.rgb *= (1.0 - (msk * maskOpacity)); + faceset_color = mix(vec3(1.0), fset, faceSetsOpacity); + mask_color = 1.0 - (msk * maskOpacity); #ifdef USE_WORLD_CLIP_PLANES world_clip_planes_calc_clip_distance(world_pos); |