diff options
Diffstat (limited to 'source/blender/draw')
-rw-r--r-- | source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl | 3 | ||||
-rw-r--r-- | source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl | 6 |
2 files changed, 4 insertions, 5 deletions
diff --git a/source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl b/source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl index d6bcffb12c6..f1ebb419d60 100644 --- a/source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl +++ b/source/blender/draw/modes/shaders/edit_mesh_overlay_vert.glsl @@ -63,8 +63,7 @@ void main() int v_0 = (gl_VertexID / 3) * 3; int vidx = gl_VertexID % 3; - barycentric = vec3(0.0); - barycentric[vidx] = 1.0; + barycentric = vec3(equal(ivec3(0, 1, 2), ivec3(vidx))); /* Edge */ ivec4 vData[3], data = ivec4(0); 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 460bed14a8b..b472ab43666 100644 --- a/source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl +++ b/source/blender/draw/modes/shaders/overlay_face_wireframe_vert.glsl @@ -139,9 +139,9 @@ void main() pos[v_n] = get_vertex_pos(v_id[v_n]); gl_Position = p_pos[v_n] = ModelViewProjectionMatrix * vec4(pos[v_n], 1.0); - barycentric[v_n] = do_edge[v_n] ? 0.0 : 1.0; - barycentric[v_n1] = 1.0; - barycentric[v_n2] = do_edge[v_n2] ? 0.0 : 1.0; + bvec3 bary = equal(ivec3(0, 1, 2), ivec3(v_n1)); + /* This is equivalent to component wise : (do_edge ? bary : 1.0) */ + barycentric = vec3(lessThanEqual(ivec3(do_edge), ivec3(bary))); # ifndef LIGHT_EDGES vec3 nor = get_vertex_nor(v_id[v_n]); |