Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2018-06-05 20:35:08 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-06-05 20:35:36 +0300
commitd5ce40a5ed627e9fd37ab094094b2ff5ef286dd2 (patch)
tree9a9044a73e916eedba2f3ddb2e31048e9babba1a /source/blender/draw/modes/shaders/overlay_face_wireframe_frag.glsl
parent7ff07ddd01af7923f32cfff087ec1f566cb4a0a8 (diff)
Wireframe: Add slider to hide edges from coplanar faces
The default behaviour is to show the same amount of edges as 2.7. The slider makes it possible to show all edges or even less.
Diffstat (limited to 'source/blender/draw/modes/shaders/overlay_face_wireframe_frag.glsl')
-rw-r--r--source/blender/draw/modes/shaders/overlay_face_wireframe_frag.glsl21
1 files changed, 19 insertions, 2 deletions
diff --git a/source/blender/draw/modes/shaders/overlay_face_wireframe_frag.glsl b/source/blender/draw/modes/shaders/overlay_face_wireframe_frag.glsl
index a714de9579a..5dfbb4352e4 100644
--- a/source/blender/draw/modes/shaders/overlay_face_wireframe_frag.glsl
+++ b/source/blender/draw/modes/shaders/overlay_face_wireframe_frag.glsl
@@ -6,9 +6,14 @@ flat in vec3 ssVec1;
flat in vec3 ssVec2;
in float facing;
+#ifdef LIGHT_EDGES
+flat in vec3 edgeSharpness;
+#endif
+
out vec4 fragColor;
float min_v3(vec3 v) { return min(v.x, min(v.y, v.z)); }
+float max_v3(vec3 v) { return max(v.x, max(v.y, v.z)); }
/* In pixels */
const float wire_size = 0.0; /* Expands the core of the wire (part that is 100% wire color) */
@@ -27,10 +32,22 @@ void main()
dot(ss_pos, ssVec2)
);
- float fac = smoothstep(wire_size, wire_size + wire_smooth, min_v3(abs(dist_to_edge)));
+#ifdef LIGHT_EDGES
+ vec3 fac = abs(dist_to_edge);
+#else
+ float fac = min_v3(abs(dist_to_edge));
+#endif
+
+ fac = smoothstep(wire_size + wire_smooth, wire_size, fac);
+
float facing_clamped = clamp((gl_FrontFacing) ? facing : -facing, 0.0, 1.0);
vec3 final_front_col = mix(rimColor, wireColor, 0.05);
fragColor = mix(vec4(rimColor, rim_alpha), vec4(final_front_col, front_alpha), facing_clamped);
- fragColor.a *= (1.0 - fac);
+
+#ifdef LIGHT_EDGES
+ fragColor.a *= max_v3(fac * edgeSharpness);
+#else
+ fragColor.a *= fac;
+#endif
}