diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2018-08-23 19:05:50 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2018-08-23 23:29:45 +0300 |
commit | fb7fc3be194ba324b84eaa1c538bf3f8b74c726e (patch) | |
tree | 3d06966c287fadc0203a8c93fabba897a68aa172 /source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl | |
parent | 13ac92d057e5c916d170d000554ec000a3c30358 (diff) |
Wireframe: Add support for sculpt mode
Now wireframe does update in sculpt mode using the sculpt mesh VBOs.
The only thing that does not work is simplified wireframe (the wireframe
slider) when the mesh is shaded flat. In this case all edges are shown.
Diffstat (limited to 'source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl')
-rw-r--r-- | source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl b/source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl index fe3c2021b7e..9a34fc740db 100644 --- a/source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl +++ b/source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl @@ -11,6 +11,11 @@ uniform float nearDist; uniform samplerBuffer vertData; uniform usamplerBuffer faceIds; +#ifdef USE_SCULPT +in vec3 pos; +in vec3 nor; +#endif + #ifdef USE_GEOM_SHADER out vec2 ssPos; out float facingOut; /* abs(facing) > 1.0 if we do edge */ @@ -99,6 +104,7 @@ float get_edge_sharpness(vec3 fnor, vec3 vnor) void main() { #ifdef USE_GEOM_SHADER +#ifndef USE_SCULPT uint v_id = texelFetch(faceIds, gl_VertexID).r; bool do_edge = (v_id & (1u << 30u)) != 0u; @@ -107,6 +113,11 @@ void main() vec3 pos = get_vertex_pos(v_id); vec3 nor = get_vertex_nor(v_id); +#else + const bool do_edge = true; + const bool force_edge = false; +#endif + facingOut = normalize(NormalMatrix * nor).z; facingOut += (do_edge) ? ((facingOut > 0.0) ? 2.0 : -2.0) : 0.0; |