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-08-23 19:05:50 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-08-23 23:29:45 +0300
commitfb7fc3be194ba324b84eaa1c538bf3f8b74c726e (patch)
tree3d06966c287fadc0203a8c93fabba897a68aa172 /source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl
parent13ac92d057e5c916d170d000554ec000a3c30358 (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.glsl11
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;